|
#define | EI_NIDENT (16) |
|
#define | EI_MAG0 0 /* File identification byte 0 index */ |
|
#define | ELFMAG0 0x7f /* Magic number byte 0 */ |
|
#define | EI_MAG1 1 /* File identification byte 1 index */ |
|
#define | ELFMAG1 'E' /* Magic number byte 1 */ |
|
#define | EI_MAG2 2 /* File identification byte 2 index */ |
|
#define | ELFMAG2 'L' /* Magic number byte 2 */ |
|
#define | EI_MAG3 3 /* File identification byte 3 index */ |
|
#define | ELFMAG3 'F' /* Magic number byte 3 */ |
|
#define | ELFMAG "\177ELF" |
|
#define | SELFMAG 4 |
|
#define | EI_CLASS 4 /* File class byte index */ |
|
#define | ELFCLASSNONE 0 /* Invalid class */ |
|
#define | ELFCLASS32 1 /* 32-bit objects */ |
|
#define | ELFCLASS64 2 /* 64-bit objects */ |
|
#define | ELFCLASSNUM 3 |
|
#define | EI_DATA 5 /* Data encoding byte index */ |
|
#define | ELFDATANONE 0 /* Invalid data encoding */ |
|
#define | ELFDATA2LSB 1 /* 2's complement, little endian */ |
|
#define | ELFDATA2MSB 2 /* 2's complement, big endian */ |
|
#define | ELFDATANUM 3 |
|
#define | EI_VERSION 6 /* File version byte index */ |
|
#define | EI_OSABI 7 /* OS ABI identification */ |
|
#define | ELFOSABI_NONE 0 /* UNIX System V ABI */ |
|
#define | ELFOSABI_SYSV 0 /* Alias. */ |
|
#define | ELFOSABI_HPUX 1 /* HP-UX */ |
|
#define | ELFOSABI_NETBSD 2 /* NetBSD. */ |
|
#define | ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */ |
|
#define | ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */ |
|
#define | ELFOSABI_SOLARIS 6 /* Sun Solaris. */ |
|
#define | ELFOSABI_AIX 7 /* IBM AIX. */ |
|
#define | ELFOSABI_IRIX 8 /* SGI Irix. */ |
|
#define | ELFOSABI_FREEBSD 9 /* FreeBSD. */ |
|
#define | ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */ |
|
#define | ELFOSABI_MODESTO 11 /* Novell Modesto. */ |
|
#define | ELFOSABI_OPENBSD 12 /* OpenBSD. */ |
|
#define | ELFOSABI_ARM_AEABI 64 /* ARM EABI */ |
|
#define | ELFOSABI_ARM 97 /* ARM */ |
|
#define | ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ |
|
#define | EI_ABIVERSION 8 /* ABI version */ |
|
#define | EI_PAD 9 /* Byte index of padding bytes */ |
|
#define | ET_NONE 0 /* No file type */ |
|
#define | ET_REL 1 /* Relocatable file */ |
|
#define | ET_EXEC 2 /* Executable file */ |
|
#define | ET_DYN 3 /* Shared object file */ |
|
#define | ET_CORE 4 /* Core file */ |
|
#define | ET_NUM 5 /* Number of defined types */ |
|
#define | ET_LOOS 0xfe00 /* OS-specific range start */ |
|
#define | ET_HIOS 0xfeff /* OS-specific range end */ |
|
#define | ET_LOPROC 0xff00 /* Processor-specific range start */ |
|
#define | ET_HIPROC 0xffff /* Processor-specific range end */ |
|
#define | EM_NONE 0 /* No machine */ |
|
#define | EM_M32 1 /* AT&T WE 32100 */ |
|
#define | EM_SPARC 2 /* SUN SPARC */ |
|
#define | EM_386 3 /* Intel 80386 */ |
|
#define | EM_68K 4 /* Motorola m68k family */ |
|
#define | EM_88K 5 /* Motorola m88k family */ |
|
#define | EM_860 7 /* Intel 80860 */ |
|
#define | EM_MIPS 8 /* MIPS R3000 big-endian */ |
|
#define | EM_S370 9 /* IBM System/370 */ |
|
#define | EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ |
|
#define | EM_PARISC 15 /* HPPA */ |
|
#define | EM_VPP500 17 /* Fujitsu VPP500 */ |
|
#define | EM_SPARC32PLUS 18 /* Sun's "v8plus" */ |
|
#define | EM_960 19 /* Intel 80960 */ |
|
#define | EM_PPC 20 /* PowerPC */ |
|
#define | EM_PPC64 21 /* PowerPC 64-bit */ |
|
#define | EM_S390 22 /* IBM S390 */ |
|
#define | EM_V800 36 /* NEC V800 series */ |
|
#define | EM_FR20 37 /* Fujitsu FR20 */ |
|
#define | EM_RH32 38 /* TRW RH-32 */ |
|
#define | EM_RCE 39 /* Motorola RCE */ |
|
#define | EM_ARM 40 /* ARM */ |
|
#define | EM_FAKE_ALPHA 41 /* Digital Alpha */ |
|
#define | EM_SH 42 /* Hitachi SH */ |
|
#define | EM_SPARCV9 43 /* SPARC v9 64-bit */ |
|
#define | EM_TRICORE 44 /* Siemens Tricore */ |
|
#define | EM_ARC 45 /* Argonaut RISC Core */ |
|
#define | EM_H8_300 46 /* Hitachi H8/300 */ |
|
#define | EM_H8_300H 47 /* Hitachi H8/300H */ |
|
#define | EM_H8S 48 /* Hitachi H8S */ |
|
#define | EM_H8_500 49 /* Hitachi H8/500 */ |
|
#define | EM_IA_64 50 /* Intel Merced */ |
|
#define | EM_MIPS_X 51 /* Stanford MIPS-X */ |
|
#define | EM_COLDFIRE 52 /* Motorola Coldfire */ |
|
#define | EM_68HC12 53 /* Motorola M68HC12 */ |
|
#define | EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/ |
|
#define | EM_PCP 55 /* Siemens PCP */ |
|
#define | EM_NCPU 56 /* Sony nCPU embeeded RISC */ |
|
#define | EM_NDR1 57 /* Denso NDR1 microprocessor */ |
|
#define | EM_STARCORE 58 /* Motorola Start*Core processor */ |
|
#define | EM_ME16 59 /* Toyota ME16 processor */ |
|
#define | EM_ST100 60 /* STMicroelectronic ST100 processor */ |
|
#define | EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/ |
|
#define | EM_X86_64 62 /* AMD x86-64 architecture */ |
|
#define | EM_PDSP 63 /* Sony DSP Processor */ |
|
#define | EM_NUM 192 |
|
#define | EM_ALPHA 0x9026 |
|
#define | EV_NONE 0 /* Invalid ELF version */ |
|
#define | EV_CURRENT 1 /* Current version */ |
|
#define | EV_NUM 2 |
|
#define | SHN_UNDEF 0 /* Undefined section */ |
|
#define | SHN_LORESERVE 0xff00 /* Start of reserved indices */ |
|
#define | SHN_LOPROC 0xff00 /* Start of processor-specific */ |
|
#define | SHN_BEFORE |
|
#define | SHN_AFTER |
|
#define | SHN_HIPROC 0xff1f /* End of processor-specific */ |
|
#define | SHN_LOOS 0xff20 /* Start of OS-specific */ |
|
#define | SHN_HIOS 0xff3f /* End of OS-specific */ |
|
#define | SHN_ABS 0xfff1 /* Associated symbol is absolute */ |
|
#define | SHN_COMMON 0xfff2 /* Associated symbol is common */ |
|
#define | SHN_XINDEX 0xffff /* Index is in extra table. */ |
|
#define | SHN_HIRESERVE 0xffff /* End of reserved indices */ |
|
#define | SHT_NULL 0 /* Section header table entry unused */ |
|
#define | SHT_PROGBITS 1 /* Program data */ |
|
#define | SHT_SYMTAB 2 /* Symbol table */ |
|
#define | SHT_STRTAB 3 /* String table */ |
|
#define | SHT_RELA 4 /* Relocation entries with addends */ |
|
#define | SHT_HASH 5 /* Symbol hash table */ |
|
#define | SHT_DYNAMIC 6 /* Dynamic linking information */ |
|
#define | SHT_NOTE 7 /* Notes */ |
|
#define | SHT_NOBITS 8 /* Program space with no data (bss) */ |
|
#define | SHT_REL 9 /* Relocation entries, no addends */ |
|
#define | SHT_SHLIB 10 /* Reserved */ |
|
#define | SHT_DYNSYM 11 /* Dynamic linker symbol table */ |
|
#define | SHT_INIT_ARRAY 14 /* Array of constructors */ |
|
#define | SHT_FINI_ARRAY 15 /* Array of destructors */ |
|
#define | SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ |
|
#define | SHT_GROUP 17 /* Section group */ |
|
#define | SHT_SYMTAB_SHNDX 18 /* Extended section indeces */ |
|
#define | SHT_NUM 19 /* Number of defined types. */ |
|
#define | SHT_LOOS 0x60000000 /* Start OS-specific. */ |
|
#define | SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */ |
|
#define | SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */ |
|
#define | SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */ |
|
#define | SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ |
|
#define | SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ |
|
#define | SHT_SUNW_move 0x6ffffffa |
|
#define | SHT_SUNW_COMDAT 0x6ffffffb |
|
#define | SHT_SUNW_syminfo 0x6ffffffc |
|
#define | SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ |
|
#define | SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ |
|
#define | SHT_GNU_versym 0x6fffffff /* Version symbol table. */ |
|
#define | SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ |
|
#define | SHT_HIOS 0x6fffffff /* End OS-specific type */ |
|
#define | SHT_LOPROC 0x70000000 /* Start of processor-specific */ |
|
#define | SHT_HIPROC 0x7fffffff /* End of processor-specific */ |
|
#define | SHT_LOUSER 0x80000000 /* Start of application-specific */ |
|
#define | SHT_HIUSER 0x8fffffff /* End of application-specific */ |
|
#define | SHF_WRITE (1 << 0) /* Writable */ |
|
#define | SHF_ALLOC (1 << 1) /* Occupies memory during execution */ |
|
#define | SHF_EXECINSTR (1 << 2) /* Executable */ |
|
#define | SHF_MERGE (1 << 4) /* Might be merged */ |
|
#define | SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */ |
|
#define | SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */ |
|
#define | SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */ |
|
#define | SHF_OS_NONCONFORMING |
|
#define | SHF_GROUP (1 << 9) /* Section is member of a group. */ |
|
#define | SHF_TLS (1 << 10) /* Section hold thread-local data. */ |
|
#define | SHF_MASKOS 0x0ff00000 /* OS-specific. */ |
|
#define | SHF_MASKPROC 0xf0000000 /* Processor-specific */ |
|
#define | SHF_ORDERED |
|
#define | SHF_EXCLUDE |
|
#define | GRP_COMDAT 0x1 /* Mark group as COMDAT. */ |
|
#define | ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) |
|
#define | ELF32_ST_TYPE(val) ((val) & 0xf) |
|
#define | ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) |
|
#define | ELF64_ST_BIND(val) ELF32_ST_BIND (val) |
|
#define | ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) |
|
#define | ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) |
|
#define | STB_LOCAL 0 /* Local symbol */ |
|
#define | STB_GLOBAL 1 /* Global symbol */ |
|
#define | STB_WEAK 2 /* Weak symbol */ |
|
#define | STB_NUM 3 /* Number of defined types. */ |
|
#define | STB_LOOS 10 /* Start of OS-specific */ |
|
#define | STB_GNU_UNIQUE 10 /* Unique symbol. */ |
|
#define | STB_HIOS 12 /* End of OS-specific */ |
|
#define | STB_LOPROC 13 /* Start of processor-specific */ |
|
#define | STB_HIPROC 15 /* End of processor-specific */ |
|
#define | STT_NOTYPE 0 /* Symbol type is unspecified */ |
|
#define | STT_OBJECT 1 /* Symbol is a data object */ |
|
#define | STT_FUNC 2 /* Symbol is a code object */ |
|
#define | STT_SECTION 3 /* Symbol associated with a section */ |
|
#define | STT_FILE 4 /* Symbol's name is file name */ |
|
#define | STT_COMMON 5 /* Symbol is a common data object */ |
|
#define | STT_TLS 6 /* Symbol is thread-local data object*/ |
|
#define | STT_NUM 7 /* Number of defined types. */ |
|
#define | STT_LOOS 10 /* Start of OS-specific */ |
|
#define | STT_GNU_IFUNC 10 /* Symbol is indirect code object */ |
|
#define | STT_HIOS 12 /* End of OS-specific */ |
|
#define | STT_LOPROC 13 /* Start of processor-specific */ |
|
#define | STT_HIPROC 15 /* End of processor-specific */ |
|
#define | STN_UNDEF 0 /* End of a chain. */ |
|
#define | ELF32_ST_VISIBILITY(o) ((o) & 0x03) |
|
#define | ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) |
|
#define | STV_DEFAULT 0 /* Default symbol visibility rules */ |
|
#define | STV_INTERNAL 1 /* Processor specific hidden class */ |
|
#define | STV_HIDDEN 2 /* Sym unavailable in other modules */ |
|
#define | STV_PROTECTED 3 /* Not preemptible, not exported */ |
|
#define | ELF32_R_SYM(val) ((val) >> 8) |
|
#define | ELF32_R_TYPE(val) ((val) & 0xff) |
|
#define | ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) |
|
#define | ELF64_R_SYM(i) ((i) >> 32) |
|
#define | ELF64_R_TYPE(i) ((i) & 0xffffffff) |
|
#define | ELF64_R_INFO(sym, type) ((((Elf64_Xword) (sym)) << 32) + (type)) |
|
#define | PN_XNUM 0xffff |
|
#define | PT_NULL 0 /* Program header table entry unused */ |
|
#define | PT_LOAD 1 /* Loadable program segment */ |
|
#define | PT_DYNAMIC 2 /* Dynamic linking information */ |
|
#define | PT_INTERP 3 /* Program interpreter */ |
|
#define | PT_NOTE 4 /* Auxiliary information */ |
|
#define | PT_SHLIB 5 /* Reserved */ |
|
#define | PT_PHDR 6 /* Entry for header table itself */ |
|
#define | PT_TLS 7 /* Thread-local storage segment */ |
|
#define | PT_NUM 8 /* Number of defined types */ |
|
#define | PT_LOOS 0x60000000 /* Start of OS-specific */ |
|
#define | PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */ |
|
#define | PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ |
|
#define | PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ |
|
#define | PT_LOSUNW 0x6ffffffa |
|
#define | PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ |
|
#define | PT_SUNWSTACK 0x6ffffffb /* Stack segment */ |
|
#define | PT_HISUNW 0x6fffffff |
|
#define | PT_HIOS 0x6fffffff /* End of OS-specific */ |
|
#define | PT_LOPROC 0x70000000 /* Start of processor-specific */ |
|
#define | PT_HIPROC 0x7fffffff /* End of processor-specific */ |
|
#define | PF_X (1 << 0) /* Segment is executable */ |
|
#define | PF_W (1 << 1) /* Segment is writable */ |
|
#define | PF_R (1 << 2) /* Segment is readable */ |
|
#define | PF_MASKOS 0x0ff00000 /* OS-specific */ |
|
#define | PF_MASKPROC 0xf0000000 /* Processor-specific */ |
|
#define | ELF_NOTE_SOLARIS "SUNW Solaris" |
|
#define | ELF_NOTE_GNU "GNU" |
|
#define | ELF_NOTE_PAGESIZE_HINT 1 |
|
#define | NT_GNU_ABI_TAG 1 |
|
#define | ELF_NOTE_ABI NT_GNU_ABI_TAG /* Old name. */ |
|
#define | ELF_NOTE_OS_LINUX 0 |
|
#define | ELF_NOTE_OS_GNU 1 |
|
#define | ELF_NOTE_OS_SOLARIS2 2 |
|
#define | ELF_NOTE_OS_FREEBSD 3 |
|
#define | NT_GNU_HWCAP 2 |
|
#define | NT_GNU_BUILD_ID 3 |
|
#define | NT_GNU_GOLD_VERSION 4 |
|
#define | DT_NULL 0 /* Marks end of dynamic section */ |
|
#define | DT_NEEDED 1 /* Name of needed library */ |
|
#define | DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ |
|
#define | DT_PLTGOT 3 /* Processor defined value */ |
|
#define | DT_HASH 4 /* Address of symbol hash table */ |
|
#define | DT_STRTAB 5 /* Address of string table */ |
|
#define | DT_SYMTAB 6 /* Address of symbol table */ |
|
#define | DT_RELA 7 /* Address of Rela relocs */ |
|
#define | DT_RELASZ 8 /* Total size of Rela relocs */ |
|
#define | DT_RELAENT 9 /* Size of one Rela reloc */ |
|
#define | DT_STRSZ 10 /* Size of string table */ |
|
#define | DT_SYMENT 11 /* Size of one symbol table entry */ |
|
#define | DT_INIT 12 /* Address of init function */ |
|
#define | DT_FINI 13 /* Address of termination function */ |
|
#define | DT_SONAME 14 /* Name of shared object */ |
|
#define | DT_RPATH 15 /* Library search path (deprecated) */ |
|
#define | DT_SYMBOLIC 16 /* Start symbol search here */ |
|
#define | DT_REL 17 /* Address of Rel relocs */ |
|
#define | DT_RELSZ 18 /* Total size of Rel relocs */ |
|
#define | DT_RELENT 19 /* Size of one Rel reloc */ |
|
#define | DT_PLTREL 20 /* Type of reloc in PLT */ |
|
#define | DT_DEBUG 21 /* For debugging; unspecified */ |
|
#define | DT_TEXTREL 22 /* Reloc might modify .text */ |
|
#define | DT_JMPREL 23 /* Address of PLT relocs */ |
|
#define | DT_BIND_NOW 24 /* Process relocations of object */ |
|
#define | DT_INIT_ARRAY 25 /* Array with addresses of init fct */ |
|
#define | DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ |
|
#define | DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ |
|
#define | DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ |
|
#define | DT_RUNPATH 29 /* Library search path */ |
|
#define | DT_FLAGS 30 /* Flags for the object being loaded */ |
|
#define | DT_ENCODING 32 /* Start of encoded range */ |
|
#define | DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ |
|
#define | DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ |
|
#define | DT_NUM 34 /* Number used */ |
|
#define | DT_LOOS 0x6000000d /* Start of OS-specific */ |
|
#define | DT_HIOS 0x6ffff000 /* End of OS-specific */ |
|
#define | DT_LOPROC 0x70000000 /* Start of processor-specific */ |
|
#define | DT_HIPROC 0x7fffffff /* End of processor-specific */ |
|
#define | DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ |
|