mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 05:42:29 +00:00
Initial import
This commit is contained in:
commit
c91b3c5006
14915 changed files with 590219 additions and 0 deletions
13
libc/elf/struct/auxv.h
Normal file
13
libc/elf/struct/auxv.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_AUXV_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_AUXV_H_
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_auxv_t {
|
||||
uint64_t a_type;
|
||||
union {
|
||||
uint64_t a_val;
|
||||
} a_un;
|
||||
} Elf64_auxv_t;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_AUXV_H_ */
|
14
libc/elf/struct/chdr.h
Normal file
14
libc/elf/struct/chdr.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_CHDR_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_CHDR_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Chdr {
|
||||
Elf64_Word ch_type;
|
||||
Elf64_Word ch_reserved;
|
||||
Elf64_Xword ch_size;
|
||||
Elf64_Xword ch_addralign;
|
||||
} Elf64_Chdr;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_CHDR_H_ */
|
15
libc/elf/struct/dyn.h
Normal file
15
libc/elf/struct/dyn.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_DYN_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_DYN_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Dyn {
|
||||
Elf64_Sxword d_tag;
|
||||
union {
|
||||
Elf64_Xword d_val;
|
||||
Elf64_Addr d_ptr;
|
||||
} d_un;
|
||||
} Elf64_Dyn;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_DYN_H_ */
|
27
libc/elf/struct/ehdr.h
Normal file
27
libc/elf/struct/ehdr.h
Normal file
|
@ -0,0 +1,27 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_EHDR_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_EHDR_H_
|
||||
#include "libc/elf/def.h"
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
#define EI_NIDENT 16
|
||||
|
||||
typedef struct Elf64_Ehdr {
|
||||
unsigned char e_ident[EI_NIDENT];
|
||||
Elf64_Half e_type;
|
||||
Elf64_Half e_machine;
|
||||
Elf64_Word e_version;
|
||||
Elf64_Addr e_entry;
|
||||
Elf64_Off e_phoff;
|
||||
Elf64_Off e_shoff;
|
||||
Elf64_Word e_flags;
|
||||
Elf64_Half e_ehsize;
|
||||
Elf64_Half e_phentsize;
|
||||
Elf64_Half e_phnum;
|
||||
Elf64_Half e_shentsize;
|
||||
Elf64_Half e_shnum;
|
||||
Elf64_Half e_shstrndx;
|
||||
} Elf64_Ehdr;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_EHDR_H_ */
|
15
libc/elf/struct/lib.h
Normal file
15
libc/elf/struct/lib.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_LIB_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_LIB_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Lib {
|
||||
Elf64_Word l_name;
|
||||
Elf64_Word l_time_stamp;
|
||||
Elf64_Word l_checksum;
|
||||
Elf64_Word l_version;
|
||||
Elf64_Word l_flags;
|
||||
} Elf64_Lib;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_LIB_H_ */
|
15
libc/elf/struct/move.h
Normal file
15
libc/elf/struct/move.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_MOVE_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_MOVE_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Move {
|
||||
Elf64_Xword m_value;
|
||||
Elf64_Xword m_info;
|
||||
Elf64_Xword m_poffset;
|
||||
Elf64_Half m_repeat;
|
||||
Elf64_Half m_stride;
|
||||
} Elf64_Move;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_MOVE_H_ */
|
13
libc/elf/struct/nhdr.h
Normal file
13
libc/elf/struct/nhdr.h
Normal file
|
@ -0,0 +1,13 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_NHDR_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_NHDR_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Nhdr {
|
||||
Elf64_Word n_namesz;
|
||||
Elf64_Word n_descsz;
|
||||
Elf64_Word n_type;
|
||||
} Elf64_Nhdr;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_NHDR_H_ */
|
18
libc/elf/struct/phdr.h
Normal file
18
libc/elf/struct/phdr.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_PHDR_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_PHDR_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Phdr {
|
||||
Elf64_Word p_type;
|
||||
Elf64_Word p_flags;
|
||||
Elf64_Off p_offset;
|
||||
Elf64_Addr p_vaddr;
|
||||
Elf64_Addr p_paddr;
|
||||
Elf64_Xword p_filesz;
|
||||
Elf64_Xword p_memsz;
|
||||
Elf64_Xword p_align;
|
||||
} Elf64_Phdr;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_PHDR_H_ */
|
12
libc/elf/struct/rel.h
Normal file
12
libc/elf/struct/rel.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_REL_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_REL_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Rel {
|
||||
Elf64_Addr r_offset;
|
||||
Elf64_Xword r_info; /** @see ELF64_R_{SYM,SIZE,INFO} */
|
||||
} Elf64_Rel;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_REL_H_ */
|
18
libc/elf/struct/rela.h
Normal file
18
libc/elf/struct/rela.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_RELA_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_RELA_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Rela {
|
||||
/*u64*/ Elf64_Addr r_offset;
|
||||
/*
|
||||
* ELF64_R_SYM(r_info) → sym
|
||||
* ELF64_R_TYPE(r_info) → R_X86_64_{64,PC32,GOTPCRELX,...}
|
||||
* ELF64_R_INFO(sym, type) → r_info
|
||||
*/
|
||||
/*u64*/ Elf64_Xword r_info; /** @see ELF64_R_{SYM,SIZE,INFO} */
|
||||
/*i64*/ Elf64_Sxword r_addend;
|
||||
} Elf64_Rela;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_RELA_H_ */
|
32
libc/elf/struct/shdr.h
Normal file
32
libc/elf/struct/shdr.h
Normal file
|
@ -0,0 +1,32 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_SHDR_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_SHDR_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
/**
|
||||
* Section header.
|
||||
* @see https://docs.oracle.com/cd/E19683-01/816-1386/chapter6-94076/index.html
|
||||
*/
|
||||
typedef struct Elf64_Shdr {
|
||||
Elf64_Word sh_name;
|
||||
Elf64_Word sh_type; /* SHT_{PROGBITS,NOBITS,STRTAB,SYMTAB,RELA,...} */
|
||||
Elf64_Xword sh_flags; /* SHF_{WRITE,ALLOC,EXECINSTR,MERGE,STRINGS,...} */
|
||||
Elf64_Addr sh_addr;
|
||||
Elf64_Off sh_offset;
|
||||
Elf64_Xword sh_size;
|
||||
/*
|
||||
* If SHT_RELA: Index of section of associated symbol table.
|
||||
* If SHT_SYMTAB: Index of section of associated string table.
|
||||
*/
|
||||
Elf64_Word sh_link;
|
||||
/*
|
||||
* If SHT_RELA: Index of section to which relocations apply.
|
||||
* If SHT_SYMTAB: One greater than symbol table index of last local symbol.
|
||||
*/
|
||||
Elf64_Word sh_info;
|
||||
Elf64_Xword sh_addralign;
|
||||
Elf64_Xword sh_entsize;
|
||||
} Elf64_Shdr;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_SHDR_H_ */
|
18
libc/elf/struct/sym.h
Normal file
18
libc/elf/struct/sym.h
Normal file
|
@ -0,0 +1,18 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_SYM_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_SYM_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Sym {
|
||||
Elf64_Word st_name;
|
||||
/* ELF64_ST_TYPE(st_info) → STT_{NOTYPE,OBJECT,FUNC,SECTION,FILE,COMMON,...}
|
||||
* ELF64_ST_BIND(st_info) → STB_{LOCAL,GLOBAL,WEAK,...} */
|
||||
unsigned char st_info;
|
||||
unsigned char st_other;
|
||||
Elf64_Section st_shndx;
|
||||
Elf64_Addr st_value;
|
||||
Elf64_Xword st_size;
|
||||
} Elf64_Sym;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_SYM_H_ */
|
12
libc/elf/struct/syminfo.h
Normal file
12
libc/elf/struct/syminfo.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_SYMINFO_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_SYMINFO_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Syminfo {
|
||||
Elf64_Half si_boundto;
|
||||
Elf64_Half si_flags;
|
||||
} Elf64_Syminfo;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_SYMINFO_H_ */
|
12
libc/elf/struct/verdaux.h
Normal file
12
libc/elf/struct/verdaux.h
Normal file
|
@ -0,0 +1,12 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_VERDAUX_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_VERDAUX_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Verdaux {
|
||||
Elf64_Word vda_name;
|
||||
Elf64_Word vda_next;
|
||||
} Elf64_Verdaux;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_VERDAUX_H_ */
|
17
libc/elf/struct/verdef.h
Normal file
17
libc/elf/struct/verdef.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_VERDEF_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_VERDEF_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Verdef {
|
||||
Elf64_Half vd_version;
|
||||
Elf64_Half vd_flags;
|
||||
Elf64_Half vd_ndx;
|
||||
Elf64_Half vd_cnt;
|
||||
Elf64_Word vd_hash;
|
||||
Elf64_Word vd_aux;
|
||||
Elf64_Word vd_next;
|
||||
} Elf64_Verdef;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_VERDEF_H_ */
|
15
libc/elf/struct/vernaux.h
Normal file
15
libc/elf/struct/vernaux.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_VERNAUX_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_VERNAUX_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Vernaux {
|
||||
Elf64_Word vna_hash;
|
||||
Elf64_Half vna_flags;
|
||||
Elf64_Half vna_other;
|
||||
Elf64_Word vna_name;
|
||||
Elf64_Word vna_next;
|
||||
} Elf64_Vernaux;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_VERNAUX_H_ */
|
15
libc/elf/struct/verneed.h
Normal file
15
libc/elf/struct/verneed.h
Normal file
|
@ -0,0 +1,15 @@
|
|||
#ifndef COSMOPOLITAN_LIBC_ELF_STRUCT_VERNEED_H_
|
||||
#define COSMOPOLITAN_LIBC_ELF_STRUCT_VERNEED_H_
|
||||
#include "libc/elf/scalar.h"
|
||||
#if !(__ASSEMBLER__ + __LINKER__ + 0)
|
||||
|
||||
typedef struct Elf64_Verneed {
|
||||
Elf64_Half vn_version;
|
||||
Elf64_Half vn_cnt;
|
||||
Elf64_Word vn_file;
|
||||
Elf64_Word vn_aux;
|
||||
Elf64_Word vn_next;
|
||||
} Elf64_Verneed;
|
||||
|
||||
#endif /* !(__ASSEMBLER__ + __LINKER__ + 0) */
|
||||
#endif /* COSMOPOLITAN_LIBC_ELF_STRUCT_VERNEED_H_ */
|
Loading…
Add table
Add a link
Reference in a new issue