RetroArch
Classes | Macros | Typedefs | Functions | Variables
elf_abi.h File Reference
#include <stdint.h>
#include <gctypes.h>
Include dependency graph for elf_abi.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  elfhdr
 
struct  Elf32_Shdr
 
struct  elf32_sym
 
struct  Elf32_Rel
 
struct  Elf32_Rela
 
struct  Elf32_Phdr
 
struct  Elf32_Dyn
 

Macros

#define EI_MAG0   0 /* file ID */
 
#define EI_MAG1   1 /* file ID */
 
#define EI_MAG2   2 /* file ID */
 
#define EI_MAG3   3 /* file ID */
 
#define EI_CLASS   4 /* file class */
 
#define EI_DATA   5 /* data encoding */
 
#define EI_VERSION   6 /* ELF header version */
 
#define EI_OSABI   7 /* OS/ABI specific ELF extensions */
 
#define EI_ABIVERSION   8 /* ABI target version */
 
#define EI_PAD   9 /* start of pad bytes */
 
#define EI_NIDENT   16 /* Size of e_ident[] */
 
#define ELFMAG0   0x7f /* e_ident[EI_MAG0] */
 
#define ELFMAG1   'E' /* e_ident[EI_MAG1] */
 
#define ELFMAG2   'L' /* e_ident[EI_MAG2] */
 
#define ELFMAG3   'F' /* e_ident[EI_MAG3] */
 
#define ELFMAG   "\177ELF" /* magic */
 
#define SELFMAG   4 /* size of magic */
 
#define ELFCLASSNONE   0 /* invalid */
 
#define ELFCLASS32   1 /* 32-bit objs */
 
#define ELFCLASS64   2 /* 64-bit objs */
 
#define ELFCLASSNUM   3 /* number of classes */
 
#define ELFDATANONE   0 /* invalid */
 
#define ELFDATA2LSB   1 /* Little-Endian */
 
#define ELFDATA2MSB   2 /* Big-Endian */
 
#define ELFDATANUM   3 /* number of data encode defines */
 
#define ELFOSABI_NONE   0 /* No extension specified */
 
#define ELFOSABI_HPUX   1 /* Hewlett-Packard HP-UX */
 
#define ELFOSABI_NETBSD   2 /* NetBSD */
 
#define ELFOSABI_LINUX   3 /* Linux */
 
#define ELFOSABI_SOLARIS   6 /* Sun Solaris */
 
#define ELFOSABI_AIX   7 /* AIX */
 
#define ELFOSABI_IRIX   8 /* 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 ELFABIVERSION   0
 
#define IS_ELF(ehdr)
 
#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 types */
 
#define ET_LOOS   0xfe00 /* reserved range for operating */
 
#define ET_HIOS   0xfeff /* system specific e_type */
 
#define ET_LOPROC   0xff00 /* reserved range for processor */
 
#define ET_HIPROC   0xffff /* specific e_type */
 
#define EM_NONE   0 /* No Machine */
 
#define EM_M32   1 /* AT&T WE 32100 */
 
#define EM_SPARC   2 /* SPARC */
 
#define EM_386   3 /* Intel 80386 */
 
#define EM_68K   4 /* Motorola 68000 */
 
#define EM_88K   5 /* Motorola 88000 */
 
#define EM_860   7 /* Intel 80860 */
 
#define EM_MIPS   8 /* MIPS R3000 Big-Endian only */
 
#define EM_S370   9 /* IBM System/370 Processor */
 
#define EM_MIPS_RS4_BE   10 /* MIPS R4000 Big-Endian */
 
#define EM_PARISC   15 /* HPPA */
 
#define EM_VPP500   17 /* Fujitsu VPP500 */
 
#define EM_SPARC32PLUS   18 /* Enhanced instruction set SPARC */
 
#define EM_960   19 /* Intel 80960 */
 
#define EM_PPC   20 /* PowerPC */
 
#define EM_PPC64   21 /* 64-bit PowerPC */
 
#define EM_S390   22 /* IBM System/390 Processor */
 
#define EM_V800   36 /* NEC V800 */
 
#define EM_FR20   37 /* Fujitsu FR20 */
 
#define EM_RH32   38 /* TRW RH-32 */
 
#define EM_RCE   39 /* Motorola RCE */
 
#define EM_ARM   40 /* Advanced Risc Machines ARM */
 
#define EM_ALPHA   41 /* Digital Alpha */
 
#define EM_SH   42 /* Hitachi SH */
 
#define EM_SPARCV9   43 /* SPARC Version 9 */
 
#define EM_TRICORE   44 /* Siemens TriCore embedded processor */
 
#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 embedded 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 */
 
#define EM_PDSP   63 /* Sony DSP Processor */
 
#define EM_FX66   66 /* Siemens FX66 microcontroller */
 
#define EM_ST9PLUS   67 /* STMicroelectronics ST9+ 8/16 mc */
 
#define EM_ST7   68 /* STmicroelectronics ST7 8 bit mc */
 
#define EM_68HC16   69 /* Motorola MC68HC16 microcontroller */
 
#define EM_68HC11   70 /* Motorola MC68HC11 microcontroller */
 
#define EM_68HC08   71 /* Motorola MC68HC08 microcontroller */
 
#define EM_68HC05   72 /* Motorola MC68HC05 microcontroller */
 
#define EM_SVX   73 /* Silicon Graphics SVx */
 
#define EM_ST19   74 /* STMicroelectronics ST19 8 bit mc */
 
#define EM_VAX   75 /* Digital VAX */
 
#define EM_CHRIS   76 /* Axis Communications embedded proc. */
 
#define EM_JAVELIN   77 /* Infineon Technologies emb. proc. */
 
#define EM_FIREPATH   78 /* Element 14 64-bit DSP Processor */
 
#define EM_ZSP   79 /* LSI Logic 16-bit DSP Processor */
 
#define EM_MMIX   80 /* Donald Knuth's edu 64-bit proc. */
 
#define EM_HUANY   81 /* Harvard University mach-indep objs */
 
#define EM_PRISM   82 /* SiTera Prism */
 
#define EM_AVR   83 /* Atmel AVR 8-bit microcontroller */
 
#define EM_FR30   84 /* Fujitsu FR30 */
 
#define EM_D10V   85 /* Mitsubishi DV10V */
 
#define EM_D30V   86 /* Mitsubishi DV30V */
 
#define EM_V850   87 /* NEC v850 */
 
#define EM_M32R   88 /* Mitsubishi M32R */
 
#define EM_MN10300   89 /* Matsushita MN10200 */
 
#define EM_MN10200   90 /* Matsushita MN10200 */
 
#define EM_PJ   91 /* picoJava */
 
#define EM_NUM   92 /* number of machine types */
 
#define EV_NONE   0 /* Invalid */
 
#define EV_CURRENT   1 /* Current */
 
#define EV_NUM   2 /* number of versions */
 
#define SHN_UNDEF   0 /* undefined */
 
#define SHN_LORESERVE   0xff00 /* lower bounds of reserved indexes */
 
#define SHN_LOPROC   0xff00 /* reserved range for processor */
 
#define SHN_HIPROC   0xff1f /* specific section indexes */
 
#define SHN_LOOS   0xff20 /* reserved range for operating */
 
#define SHN_HIOS   0xff3f /* specific semantics */
 
#define SHN_ABS   0xfff1 /* absolute value */
 
#define SHN_COMMON   0xfff2 /* common symbol */
 
#define SHN_XINDEX   0xffff /* Index is an extra table */
 
#define SHN_HIRESERVE   0xffff /* upper bounds of reserved indexes */
 
#define SHT_NULL   0 /* inactive */
 
#define SHT_PROGBITS   1 /* program defined information */
 
#define SHT_SYMTAB   2 /* symbol table section */
 
#define SHT_STRTAB   3 /* string table section */
 
#define SHT_RELA   4 /* relocation section with addends*/
 
#define SHT_HASH   5 /* symbol hash table section */
 
#define SHT_DYNAMIC   6 /* dynamic section */
 
#define SHT_NOTE   7 /* note section */
 
#define SHT_NOBITS   8 /* no space section */
 
#define SHT_REL   9 /* relation section without addends */
 
#define SHT_SHLIB   10 /* reserved - purpose unknown */
 
#define SHT_DYNSYM   11 /* dynamic symbol table section */
 
#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 section types */
 
#define SHT_LOOS   0x60000000 /* Start OS-specific */
 
#define SHT_HIOS   0x6fffffff /* End OS-specific */
 
#define SHT_LOPROC   0x70000000 /* reserved range for processor */
 
#define SHT_HIPROC   0x7fffffff /* specific section header types */
 
#define SHT_LOUSER   0x80000000 /* reserved range for application */
 
#define SHT_HIUSER   0xffffffff /* specific indexes */
 
#define ELF_BSS   ".bss" /* uninitialized data */
 
#define ELF_COMMENT   ".comment" /* version control information */
 
#define ELF_DATA   ".data" /* initialized data */
 
#define ELF_DATA1   ".data1" /* initialized data */
 
#define ELF_DEBUG   ".debug" /* debug */
 
#define ELF_DYNAMIC   ".dynamic" /* dynamic linking information */
 
#define ELF_DYNSTR   ".dynstr" /* dynamic string table */
 
#define ELF_DYNSYM   ".dynsym" /* dynamic symbol table */
 
#define ELF_FINI   ".fini" /* termination code */
 
#define ELF_FINI_ARRAY   ".fini_array" /* Array of destructors */
 
#define ELF_GOT   ".got" /* global offset table */
 
#define ELF_HASH   ".hash" /* symbol hash table */
 
#define ELF_INIT   ".init" /* initialization code */
 
#define ELF_INIT_ARRAY   ".init_array" /* Array of constuctors */
 
#define ELF_INTERP   ".interp" /* Pathname of program interpreter */
 
#define ELF_LINE   ".line" /* Symbolic line numnber information */
 
#define ELF_NOTE   ".note" /* Contains note section */
 
#define ELF_PLT   ".plt" /* Procedure linkage table */
 
#define ELF_PREINIT_ARRAY   ".preinit_array" /* Array of pre-constructors */
 
#define ELF_REL_DATA   ".rel.data" /* relocation data */
 
#define ELF_REL_FINI   ".rel.fini" /* relocation termination code */
 
#define ELF_REL_INIT   ".rel.init" /* relocation initialization code */
 
#define ELF_REL_DYN   ".rel.dyn" /* relocaltion dynamic link info */
 
#define ELF_REL_RODATA   ".rel.rodata" /* relocation read-only data */
 
#define ELF_REL_TEXT   ".rel.text" /* relocation code */
 
#define ELF_RODATA   ".rodata" /* read-only data */
 
#define ELF_RODATA1   ".rodata1" /* read-only data */
 
#define ELF_SHSTRTAB   ".shstrtab" /* section header string table */
 
#define ELF_STRTAB   ".strtab" /* string table */
 
#define ELF_SYMTAB   ".symtab" /* symbol table */
 
#define ELF_SYMTAB_SHNDX   ".symtab_shndx"/* symbol table section index */
 
#define ELF_TBSS   ".tbss" /* thread local uninit data */
 
#define ELF_TDATA   ".tdata" /* thread local init data */
 
#define ELF_TDATA1   ".tdata1" /* thread local init data */
 
#define ELF_TEXT   ".text" /* code */
 
#define SHF_WRITE   0x1 /* Writable */
 
#define SHF_ALLOC   0x2 /* occupies memory */
 
#define SHF_EXECINSTR   0x4 /* executable */
 
#define SHF_MERGE   0x10 /* Might be merged */
 
#define SHF_STRINGS   0x20 /* Contains NULL terminated strings */
 
#define SHF_INFO_LINK   0x40 /* sh_info contains SHT index */
 
#define SHF_LINK_ORDER   0x80 /* Preserve order after combining*/
 
#define SHF_OS_NONCONFORMING   0x100 /* Non-standard OS specific handling */
 
#define SHF_GROUP   0x200 /* Member of section group */
 
#define SHF_TLS   0x400 /* Thread local storage */
 
#define SHF_MASKOS   0x0ff00000 /* OS specific */
 
#define SHF_MASKPROC   0xf0000000 /* reserved bits for processor */
 
#define GRP_COMDAT   0x1 /* COMDAT group */
 
#define GRP_MASKOS   0x0ff00000 /* Mask OS specific flags */
 
#define GRP_MASKPROC   0xf0000000 /* Mask processor specific flags */
 
#define STN_UNDEF   0 /* undefined */
 
#define ELF32_ST_BIND(x)   ((x) >> 4)
 
#define ELF32_ST_TYPE(x)   (((unsigned int) x) & 0xf)
 
#define ELF32_ST_INFO(b, t)   (((b) << 4) + ((t) & 0xf))
 
#define ELF32_ST_VISIBILITY(x)   ((x) & 0x3)
 
#define STB_LOCAL   0 /* Local symbol */
 
#define STB_GLOBAL   1 /* Global symbol */
 
#define STB_WEAK   2 /* like global - lower precedence */
 
#define STB_NUM   3 /* number of symbol bindings */
 
#define STB_LOOS   10 /* reserved range for operating */
 
#define STB_HIOS   12 /* system specific symbol bindings */
 
#define STB_LOPROC   13 /* reserved range for processor */
 
#define STB_HIPROC   15 /* specific symbol bindings */
 
#define STT_NOTYPE   0 /* not specified */
 
#define STT_OBJECT   1 /* data object */
 
#define STT_FUNC   2 /* function */
 
#define STT_SECTION   3 /* section */
 
#define STT_FILE   4 /* file */
 
#define STT_NUM   5 /* number of symbol types */
 
#define STT_TLS   6 /* Thread local storage symbol */
 
#define STT_LOOS   10 /* reserved range for operating */
 
#define STT_HIOS   12 /* system specific symbol types */
 
#define STT_LOPROC   13 /* reserved range for processor */
 
#define STT_HIPROC   15 /* specific symbol types */
 
#define STV_DEFAULT   0 /* Normal visibility rules */
 
#define STV_INTERNAL   1 /* Processor specific hidden class */
 
#define STV_HIDDEN   2 /* Symbol unavailable in other mods */
 
#define STV_PROTECTED   3 /* Not preemptible, not exported */
 
#define ELF32_R_SYM(i)   ((i) >> 8)
 
#define ELF32_R_TYPE(i)   ((unsigned char) (i))
 
#define ELF32_R_INFO(s, t)   (((s) << 8) + (unsigned char)(t))
 
#define PT_NULL   0 /* unused */
 
#define PT_LOAD   1 /* loadable segment */
 
#define PT_DYNAMIC   2 /* dynamic linking section */
 
#define PT_INTERP   3 /* the RTLD */
 
#define PT_NOTE   4 /* auxiliary information */
 
#define PT_SHLIB   5 /* reserved - purpose undefined */
 
#define PT_PHDR   6 /* program header */
 
#define PT_TLS   7 /* Thread local storage template */
 
#define PT_NUM   8 /* Number of segment types */
 
#define PT_LOOS   0x60000000 /* reserved range for operating */
 
#define PT_HIOS   0x6fffffff /* system specific segment types */
 
#define PT_LOPROC   0x70000000 /* reserved range for processor */
 
#define PT_HIPROC   0x7fffffff /* specific segment types */
 
#define PF_X   0x1 /* Executable */
 
#define PF_W   0x2 /* Writable */
 
#define PF_R   0x4 /* Readable */
 
#define PF_MASKOS   0x0ff00000 /* OS specific segment flags */
 
#define PF_MASKPROC   0xf0000000 /* reserved bits for processor */
 
#define DT_NULL   0 /* marks end of _DYNAMIC array */
 
#define DT_NEEDED   1 /* string table offset of needed lib */
 
#define DT_PLTRELSZ   2 /* size of relocation entries in PLT */
 
#define DT_PLTGOT   3 /* address PLT/GOT */
 
#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 relocation table */
 
#define DT_RELASZ   8 /* size of relocation table */
 
#define DT_RELAENT   9 /* size of relocation entry */
 
#define DT_STRSZ   10 /* size of string table */
 
#define DT_SYMENT   11 /* size of symbol table entry */
 
#define DT_INIT   12 /* address of initialization func. */
 
#define DT_FINI   13 /* address of termination function */
 
#define DT_SONAME   14 /* string table offset of shared obj */
 
#define DT_RPATH   15 /* string table offset of library search path */
 
#define DT_SYMBOLIC   16 /* start sym search in shared obj. */
 
#define DT_REL   17 /* address of rel. tbl. w addends */
 
#define DT_RELSZ   18 /* size of DT_REL relocation table */
 
#define DT_RELENT   19 /* size of DT_REL relocation entry */
 
#define DT_PLTREL   20 /* PLT referenced relocation entry */
 
#define DT_DEBUG   21 /* bugger */
 
#define DT_TEXTREL   22 /* Allow rel. mod. to unwritable seg */
 
#define DT_JMPREL   23 /* add. of PLT's relocation entries */
 
#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   0x60000000 /* reserved range for OS */
 
#define DT_HIOS   0x6fffffff /* specific dynamic array tags */
 
#define DT_LOPROC   0x70000000 /* reserved range for processor */
 
#define DT_HIPROC   0x7fffffff /* specific dynamic array tags */
 
#define DF_ORIGIN   0x01 /* Object may use DF_ORIGIN */
 
#define DF_SYMBOLIC   0x02 /* Symbol resolutions starts here */
 
#define DF_TEXTRE   0x04 /* Object contains text relocations */
 
#define DF_BIND_NOW   0x08 /* No lazy binding for this object */
 
#define DF_STATIC_TLS   0x10 /* Static thread local storage */
 
#define ELF_TARG_VER   1 /* The ver for which this code is intended */
 
#define EF_PPC_EMB   0x80000000 /* PowerPC embedded flag */
 
#define EF_PPC_RELOCATABLE   0x00010000 /* PowerPC -mrelocatable flag*/
 
#define EF_PPC_RELOCATABLE_LIB
 
#define R_PPC_NONE   0
 
#define R_PPC_ADDR32   1 /* 32bit absolute address */
 
#define R_PPC_ADDR24   2 /* 26bit address, 2 bits ignored. */
 
#define R_PPC_ADDR16   3 /* 16bit absolute address */
 
#define R_PPC_ADDR16_LO   4 /* lower 16bit of absolute address */
 
#define R_PPC_ADDR16_HI   5 /* high 16bit of absolute address */
 
#define R_PPC_ADDR16_HA   6 /* adjusted high 16bit */
 
#define R_PPC_ADDR14   7 /* 16bit address, 2 bits ignored */
 
#define R_PPC_ADDR14_BRTAKEN   8
 
#define R_PPC_ADDR14_BRNTAKEN   9
 
#define R_PPC_REL24   10 /* PC relative 26 bit */
 
#define R_PPC_REL14   11 /* PC relative 16 bit */
 
#define R_PPC_REL14_BRTAKEN   12
 
#define R_PPC_REL14_BRNTAKEN   13
 
#define R_PPC_GOT16   14
 
#define R_PPC_GOT16_LO   15
 
#define R_PPC_GOT16_HI   16
 
#define R_PPC_GOT16_HA   17
 
#define R_PPC_PLTREL24   18
 
#define R_PPC_COPY   19
 
#define R_PPC_GLOB_DAT   20
 
#define R_PPC_JMP_SLOT   21
 
#define R_PPC_RELATIVE   22
 
#define R_PPC_LOCAL24PC   23
 
#define R_PPC_UADDR32   24
 
#define R_PPC_UADDR16   25
 
#define R_PPC_REL32   26
 
#define R_PPC_PLT32   27
 
#define R_PPC_PLTREL32   28
 
#define R_PPC_PLT16_LO   29
 
#define R_PPC_PLT16_HI   30
 
#define R_PPC_PLT16_HA   31
 
#define R_PPC_SDAREL16   32
 
#define R_PPC_SECTOFF   33
 
#define R_PPC_SECTOFF_LO   34
 
#define R_PPC_SECTOFF_HI   35
 
#define R_PPC_SECTOFF_HA   36
 
#define R_PPC_NUM   37
 
#define R_PPC_EMB_NADDR32   101
 
#define R_PPC_EMB_NADDR16   102
 
#define R_PPC_EMB_NADDR16_LO   103
 
#define R_PPC_EMB_NADDR16_HI   104
 
#define R_PPC_EMB_NADDR16_HA   105
 
#define R_PPC_EMB_SDAI16   106
 
#define R_PPC_EMB_SDA2I16   107
 
#define R_PPC_EMB_SDA2REL   108
 
#define R_PPC_EMB_SDA21   109 /* 16 bit offset in SDA */
 
#define R_PPC_EMB_MRKREF   110
 
#define R_PPC_EMB_RELSEC16   111
 
#define R_PPC_EMB_RELST_LO   112
 
#define R_PPC_EMB_RELST_HI   113
 
#define R_PPC_EMB_RELST_HA   114
 
#define R_PPC_EMB_BIT_FLD   115
 
#define R_PPC_EMB_RELSDA   116 /* 16 bit relative offset in SDA */
 
#define R_PPC_DIAB_SDA21_LO   180 /* like EMB_SDA21, but lower 16 bit */
 
#define R_PPC_DIAB_SDA21_HI   181 /* like EMB_SDA21, but high 16 bit */
 
#define R_PPC_DIAB_SDA21_HA   182 /* like EMB_SDA21, adjusted high 16 */
 
#define R_PPC_DIAB_RELSDA_LO   183 /* like EMB_RELSDA, but lower 16 bit */
 
#define R_PPC_DIAB_RELSDA_HI   184 /* like EMB_RELSDA, but high 16 bit */
 
#define R_PPC_DIAB_RELSDA_HA   185 /* like EMB_RELSDA, adjusted high 16 */
 
#define R_PPC_TOC16   255
 

Typedefs

typedef uint32_t Elf32_Addr
 
typedef uint32_t Elf32_Off
 
typedef int32_t Elf32_Sword
 
typedef uint32_t Elf32_Word
 
typedef uint16_t Elf32_Half
 
typedef struct elfhdr Elf32_Ehdr
 
typedef struct elf32_sym Elf32_Sym
 

Functions

unsigned long elf_hash (const unsigned char *name)
 

Variables

Elf32_Dyn _DYNAMIC []
 

Macro Definition Documentation

◆ DF_BIND_NOW

#define DF_BIND_NOW   0x08 /* No lazy binding for this object */

◆ DF_ORIGIN

#define DF_ORIGIN   0x01 /* Object may use DF_ORIGIN */

◆ DF_STATIC_TLS

#define DF_STATIC_TLS   0x10 /* Static thread local storage */

◆ DF_SYMBOLIC

#define DF_SYMBOLIC   0x02 /* Symbol resolutions starts here */

◆ DF_TEXTRE

#define DF_TEXTRE   0x04 /* Object contains text relocations */

◆ DT_BIND_NOW

#define DT_BIND_NOW   24 /* Process relocations of object */

◆ DT_DEBUG

#define DT_DEBUG   21 /* bugger */

◆ DT_ENCODING

#define DT_ENCODING   32 /* Start of encoded range */

◆ DT_FINI

#define DT_FINI   13 /* address of termination function */

◆ DT_FINI_ARRAY

#define DT_FINI_ARRAY   26 /* Array with addresses of fini fct */

◆ DT_FINI_ARRAYSZ

#define DT_FINI_ARRAYSZ   28 /* Size in bytes of DT_FINI_ARRAY */

◆ DT_FLAGS

#define DT_FLAGS   30 /* Flags for the object being loaded */

◆ DT_HASH

#define DT_HASH   4 /* address of symbol hash table */

◆ DT_HIOS

#define DT_HIOS   0x6fffffff /* specific dynamic array tags */

◆ DT_HIPROC

#define DT_HIPROC   0x7fffffff /* specific dynamic array tags */

◆ DT_INIT

#define DT_INIT   12 /* address of initialization func. */

◆ DT_INIT_ARRAY

#define DT_INIT_ARRAY   25 /* Array with addresses of init fct */

◆ DT_INIT_ARRAYSZ

#define DT_INIT_ARRAYSZ   27 /* Size in bytes of DT_INIT_ARRAY */

◆ DT_JMPREL

#define DT_JMPREL   23 /* add. of PLT's relocation entries */

◆ DT_LOOS

#define DT_LOOS   0x60000000 /* reserved range for OS */

◆ DT_LOPROC

#define DT_LOPROC   0x70000000 /* reserved range for processor */

◆ DT_NEEDED

#define DT_NEEDED   1 /* string table offset of needed lib */

◆ DT_NULL

#define DT_NULL   0 /* marks end of _DYNAMIC array */

◆ DT_NUM

#define DT_NUM   34 /* Number used. */

◆ DT_PLTGOT

#define DT_PLTGOT   3 /* address PLT/GOT */

◆ DT_PLTREL

#define DT_PLTREL   20 /* PLT referenced relocation entry */

◆ DT_PLTRELSZ

#define DT_PLTRELSZ   2 /* size of relocation entries in PLT */

◆ DT_PREINIT_ARRAY

#define DT_PREINIT_ARRAY   32 /* Array with addresses of preinit fct*/

◆ DT_PREINIT_ARRAYSZ

#define DT_PREINIT_ARRAYSZ   33 /* size in bytes of DT_PREINIT_ARRAY */

◆ DT_REL

#define DT_REL   17 /* address of rel. tbl. w addends */

◆ DT_RELA

#define DT_RELA   7 /* address of relocation table */

◆ DT_RELAENT

#define DT_RELAENT   9 /* size of relocation entry */

◆ DT_RELASZ

#define DT_RELASZ   8 /* size of relocation table */

◆ DT_RELENT

#define DT_RELENT   19 /* size of DT_REL relocation entry */

◆ DT_RELSZ

#define DT_RELSZ   18 /* size of DT_REL relocation table */

◆ DT_RPATH

#define DT_RPATH   15 /* string table offset of library search path */

◆ DT_RUNPATH

#define DT_RUNPATH   29 /* Library search path */

◆ DT_SONAME

#define DT_SONAME   14 /* string table offset of shared obj */

◆ DT_STRSZ

#define DT_STRSZ   10 /* size of string table */

◆ DT_STRTAB

#define DT_STRTAB   5 /* address of string table */

◆ DT_SYMBOLIC

#define DT_SYMBOLIC   16 /* start sym search in shared obj. */

◆ DT_SYMENT

#define DT_SYMENT   11 /* size of symbol table entry */

◆ DT_SYMTAB

#define DT_SYMTAB   6 /* address of symbol table */

◆ DT_TEXTREL

#define DT_TEXTREL   22 /* Allow rel. mod. to unwritable seg */

◆ EF_PPC_EMB

#define EF_PPC_EMB   0x80000000 /* PowerPC embedded flag */

◆ EF_PPC_RELOCATABLE

#define EF_PPC_RELOCATABLE   0x00010000 /* PowerPC -mrelocatable flag*/

◆ EF_PPC_RELOCATABLE_LIB

#define EF_PPC_RELOCATABLE_LIB
Value:
0x00008000 /* PowerPC -mrelocatable-lib
flag */

◆ EI_ABIVERSION

#define EI_ABIVERSION   8 /* ABI target version */

◆ EI_CLASS

#define EI_CLASS   4 /* file class */

◆ EI_DATA

#define EI_DATA   5 /* data encoding */

◆ EI_MAG0

#define EI_MAG0   0 /* file ID */

◆ EI_MAG1

#define EI_MAG1   1 /* file ID */

◆ EI_MAG2

#define EI_MAG2   2 /* file ID */

◆ EI_MAG3

#define EI_MAG3   3 /* file ID */

◆ EI_NIDENT

#define EI_NIDENT   16 /* Size of e_ident[] */

◆ EI_OSABI

#define EI_OSABI   7 /* OS/ABI specific ELF extensions */

◆ EI_PAD

#define EI_PAD   9 /* start of pad bytes */

◆ EI_VERSION

#define EI_VERSION   6 /* ELF header version */

◆ ELF32_R_INFO

#define ELF32_R_INFO (   s,
  t 
)    (((s) << 8) + (unsigned char)(t))

◆ ELF32_R_SYM

#define ELF32_R_SYM (   i)    ((i) >> 8)

◆ ELF32_R_TYPE

#define ELF32_R_TYPE (   i)    ((unsigned char) (i))

◆ ELF32_ST_BIND

#define ELF32_ST_BIND (   x)    ((x) >> 4)

◆ ELF32_ST_INFO

#define ELF32_ST_INFO (   b,
  t 
)    (((b) << 4) + ((t) & 0xf))

◆ ELF32_ST_TYPE

#define ELF32_ST_TYPE (   x)    (((unsigned int) x) & 0xf)

◆ ELF32_ST_VISIBILITY

#define ELF32_ST_VISIBILITY (   x)    ((x) & 0x3)

◆ ELF_BSS

#define ELF_BSS   ".bss" /* uninitialized data */

◆ ELF_COMMENT

#define ELF_COMMENT   ".comment" /* version control information */

◆ ELF_DATA

#define ELF_DATA   ".data" /* initialized data */

◆ ELF_DATA1

#define ELF_DATA1   ".data1" /* initialized data */

◆ ELF_DEBUG

#define ELF_DEBUG   ".debug" /* debug */

◆ ELF_DYNAMIC

#define ELF_DYNAMIC   ".dynamic" /* dynamic linking information */

◆ ELF_DYNSTR

#define ELF_DYNSTR   ".dynstr" /* dynamic string table */

◆ ELF_DYNSYM

#define ELF_DYNSYM   ".dynsym" /* dynamic symbol table */

◆ ELF_FINI

#define ELF_FINI   ".fini" /* termination code */

◆ ELF_FINI_ARRAY

#define ELF_FINI_ARRAY   ".fini_array" /* Array of destructors */

◆ ELF_GOT

#define ELF_GOT   ".got" /* global offset table */

◆ ELF_HASH

#define ELF_HASH   ".hash" /* symbol hash table */

◆ ELF_INIT

#define ELF_INIT   ".init" /* initialization code */

◆ ELF_INIT_ARRAY

#define ELF_INIT_ARRAY   ".init_array" /* Array of constuctors */

◆ ELF_INTERP

#define ELF_INTERP   ".interp" /* Pathname of program interpreter */

◆ ELF_LINE

#define ELF_LINE   ".line" /* Symbolic line numnber information */

◆ ELF_NOTE

#define ELF_NOTE   ".note" /* Contains note section */

◆ ELF_PLT

#define ELF_PLT   ".plt" /* Procedure linkage table */

◆ ELF_PREINIT_ARRAY

#define ELF_PREINIT_ARRAY   ".preinit_array" /* Array of pre-constructors */

◆ ELF_REL_DATA

#define ELF_REL_DATA   ".rel.data" /* relocation data */

◆ ELF_REL_DYN

#define ELF_REL_DYN   ".rel.dyn" /* relocaltion dynamic link info */

◆ ELF_REL_FINI

#define ELF_REL_FINI   ".rel.fini" /* relocation termination code */

◆ ELF_REL_INIT

#define ELF_REL_INIT   ".rel.init" /* relocation initialization code */

◆ ELF_REL_RODATA

#define ELF_REL_RODATA   ".rel.rodata" /* relocation read-only data */

◆ ELF_REL_TEXT

#define ELF_REL_TEXT   ".rel.text" /* relocation code */

◆ ELF_RODATA

#define ELF_RODATA   ".rodata" /* read-only data */

◆ ELF_RODATA1

#define ELF_RODATA1   ".rodata1" /* read-only data */

◆ ELF_SHSTRTAB

#define ELF_SHSTRTAB   ".shstrtab" /* section header string table */

◆ ELF_STRTAB

#define ELF_STRTAB   ".strtab" /* string table */

◆ ELF_SYMTAB

#define ELF_SYMTAB   ".symtab" /* symbol table */

◆ ELF_SYMTAB_SHNDX

#define ELF_SYMTAB_SHNDX   ".symtab_shndx"/* symbol table section index */

◆ ELF_TARG_VER

#define ELF_TARG_VER   1 /* The ver for which this code is intended */

◆ ELF_TBSS

#define ELF_TBSS   ".tbss" /* thread local uninit data */

◆ ELF_TDATA

#define ELF_TDATA   ".tdata" /* thread local init data */

◆ ELF_TDATA1

#define ELF_TDATA1   ".tdata1" /* thread local init data */

◆ ELF_TEXT

#define ELF_TEXT   ".text" /* code */

◆ ELFABIVERSION

#define ELFABIVERSION   0

◆ ELFCLASS32

#define ELFCLASS32   1 /* 32-bit objs */

◆ ELFCLASS64

#define ELFCLASS64   2 /* 64-bit objs */

◆ ELFCLASSNONE

#define ELFCLASSNONE   0 /* invalid */

◆ ELFCLASSNUM

#define ELFCLASSNUM   3 /* number of classes */

◆ ELFDATA2LSB

#define ELFDATA2LSB   1 /* Little-Endian */

◆ ELFDATA2MSB

#define ELFDATA2MSB   2 /* Big-Endian */

◆ ELFDATANONE

#define ELFDATANONE   0 /* invalid */

◆ ELFDATANUM

#define ELFDATANUM   3 /* number of data encode defines */

◆ ELFMAG

#define ELFMAG   "\177ELF" /* magic */

◆ ELFMAG0

#define ELFMAG0   0x7f /* e_ident[EI_MAG0] */

◆ ELFMAG1

#define ELFMAG1   'E' /* e_ident[EI_MAG1] */

◆ ELFMAG2

#define ELFMAG2   'L' /* e_ident[EI_MAG2] */

◆ ELFMAG3

#define ELFMAG3   'F' /* e_ident[EI_MAG3] */

◆ ELFOSABI_AIX

#define ELFOSABI_AIX   7 /* AIX */

◆ ELFOSABI_FREEBSD

#define ELFOSABI_FREEBSD   9 /* FreeBSD */

◆ ELFOSABI_HPUX

#define ELFOSABI_HPUX   1 /* Hewlett-Packard HP-UX */

◆ ELFOSABI_IRIX

#define ELFOSABI_IRIX   8 /* IRIX */

◆ ELFOSABI_LINUX

#define ELFOSABI_LINUX   3 /* Linux */

◆ ELFOSABI_MODESTO

#define ELFOSABI_MODESTO   11 /* Novell Modesto */

◆ ELFOSABI_NETBSD

#define ELFOSABI_NETBSD   2 /* NetBSD */

◆ ELFOSABI_NONE

#define ELFOSABI_NONE   0 /* No extension specified */

◆ ELFOSABI_OPENBSD

#define ELFOSABI_OPENBSD   12 /* OpenBSD */

◆ ELFOSABI_SOLARIS

#define ELFOSABI_SOLARIS   6 /* Sun Solaris */

◆ ELFOSABI_TRU64

#define ELFOSABI_TRU64   10 /* Compaq TRU64 UNIX */

◆ EM_386

#define EM_386   3 /* Intel 80386 */

◆ EM_68HC05

#define EM_68HC05   72 /* Motorola MC68HC05 microcontroller */

◆ EM_68HC08

#define EM_68HC08   71 /* Motorola MC68HC08 microcontroller */

◆ EM_68HC11

#define EM_68HC11   70 /* Motorola MC68HC11 microcontroller */

◆ EM_68HC12

#define EM_68HC12   53 /* Motorola M68HC12 */

◆ EM_68HC16

#define EM_68HC16   69 /* Motorola MC68HC16 microcontroller */

◆ EM_68K

#define EM_68K   4 /* Motorola 68000 */

◆ EM_860

#define EM_860   7 /* Intel 80860 */

◆ EM_88K

#define EM_88K   5 /* Motorola 88000 */

◆ EM_960

#define EM_960   19 /* Intel 80960 */

◆ EM_ALPHA

#define EM_ALPHA   41 /* Digital Alpha */

◆ EM_ARC

#define EM_ARC   45 /* Argonaut RISC Core */

◆ EM_ARM

#define EM_ARM   40 /* Advanced Risc Machines ARM */

◆ EM_AVR

#define EM_AVR   83 /* Atmel AVR 8-bit microcontroller */

◆ EM_CHRIS

#define EM_CHRIS   76 /* Axis Communications embedded proc. */

◆ EM_COLDFIRE

#define EM_COLDFIRE   52 /* Motorola Coldfire */

◆ EM_D10V

#define EM_D10V   85 /* Mitsubishi DV10V */

◆ EM_D30V

#define EM_D30V   86 /* Mitsubishi DV30V */

◆ EM_FIREPATH

#define EM_FIREPATH   78 /* Element 14 64-bit DSP Processor */

◆ EM_FR20

#define EM_FR20   37 /* Fujitsu FR20 */

◆ EM_FR30

#define EM_FR30   84 /* Fujitsu FR30 */

◆ EM_FX66

#define EM_FX66   66 /* Siemens FX66 microcontroller */

◆ EM_H8_300

#define EM_H8_300   46 /* Hitachi H8/300 */

◆ EM_H8_300H

#define EM_H8_300H   47 /* Hitachi H8/300H */

◆ EM_H8_500

#define EM_H8_500   49 /* Hitachi H8/500 */

◆ EM_H8S

#define EM_H8S   48 /* Hitachi H8S */

◆ EM_HUANY

#define EM_HUANY   81 /* Harvard University mach-indep objs */

◆ EM_IA_64

#define EM_IA_64   50 /* Intel Merced */

◆ EM_JAVELIN

#define EM_JAVELIN   77 /* Infineon Technologies emb. proc. */

◆ EM_M32

#define EM_M32   1 /* AT&T WE 32100 */

◆ EM_M32R

#define EM_M32R   88 /* Mitsubishi M32R */

◆ EM_ME16

#define EM_ME16   59 /* Toyota ME16 processor */

◆ EM_MIPS

#define EM_MIPS   8 /* MIPS R3000 Big-Endian only */

◆ EM_MIPS_RS4_BE

#define EM_MIPS_RS4_BE   10 /* MIPS R4000 Big-Endian */

◆ EM_MIPS_X

#define EM_MIPS_X   51 /* Stanford MIPS-X */

◆ EM_MMA

#define EM_MMA   54 /* Fujitsu MMA Multimedia Accelerator*/

◆ EM_MMIX

#define EM_MMIX   80 /* Donald Knuth's edu 64-bit proc. */

◆ EM_MN10200

#define EM_MN10200   90 /* Matsushita MN10200 */

◆ EM_MN10300

#define EM_MN10300   89 /* Matsushita MN10200 */

◆ EM_NCPU

#define EM_NCPU   56 /* Sony nCPU embedded RISC */

◆ EM_NDR1

#define EM_NDR1   57 /* Denso NDR1 microprocessor */

◆ EM_NONE

#define EM_NONE   0 /* No Machine */

◆ EM_NUM

#define EM_NUM   92 /* number of machine types */

◆ EM_PARISC

#define EM_PARISC   15 /* HPPA */

◆ EM_PCP

#define EM_PCP   55 /* Siemens PCP */

◆ EM_PDSP

#define EM_PDSP   63 /* Sony DSP Processor */

◆ EM_PJ

#define EM_PJ   91 /* picoJava */

◆ EM_PPC

#define EM_PPC   20 /* PowerPC */

◆ EM_PPC64

#define EM_PPC64   21 /* 64-bit PowerPC */

◆ EM_PRISM

#define EM_PRISM   82 /* SiTera Prism */

◆ EM_RCE

#define EM_RCE   39 /* Motorola RCE */

◆ EM_RH32

#define EM_RH32   38 /* TRW RH-32 */

◆ EM_S370

#define EM_S370   9 /* IBM System/370 Processor */

◆ EM_S390

#define EM_S390   22 /* IBM System/390 Processor */

◆ EM_SH

#define EM_SH   42 /* Hitachi SH */

◆ EM_SPARC

#define EM_SPARC   2 /* SPARC */

◆ EM_SPARC32PLUS

#define EM_SPARC32PLUS   18 /* Enhanced instruction set SPARC */

◆ EM_SPARCV9

#define EM_SPARCV9   43 /* SPARC Version 9 */

◆ EM_ST100

#define EM_ST100   60 /* STMicroelectronic ST100 processor */

◆ EM_ST19

#define EM_ST19   74 /* STMicroelectronics ST19 8 bit mc */

◆ EM_ST7

#define EM_ST7   68 /* STmicroelectronics ST7 8 bit mc */

◆ EM_ST9PLUS

#define EM_ST9PLUS   67 /* STMicroelectronics ST9+ 8/16 mc */

◆ EM_STARCORE

#define EM_STARCORE   58 /* Motorola Start*Core processor */

◆ EM_SVX

#define EM_SVX   73 /* Silicon Graphics SVx */

◆ EM_TINYJ

#define EM_TINYJ   61 /* Advanced Logic Corp. Tinyj emb.fam*/

◆ EM_TRICORE

#define EM_TRICORE   44 /* Siemens TriCore embedded processor */

◆ EM_V800

#define EM_V800   36 /* NEC V800 */

◆ EM_V850

#define EM_V850   87 /* NEC v850 */

◆ EM_VAX

#define EM_VAX   75 /* Digital VAX */

◆ EM_VPP500

#define EM_VPP500   17 /* Fujitsu VPP500 */

◆ EM_X86_64

#define EM_X86_64   62 /* AMD x86-64 */

◆ EM_ZSP

#define EM_ZSP   79 /* LSI Logic 16-bit DSP Processor */

◆ ET_CORE

#define ET_CORE   4 /* core file */

◆ ET_DYN

#define ET_DYN   3 /* shared object file */

◆ ET_EXEC

#define ET_EXEC   2 /* executable file */

◆ ET_HIOS

#define ET_HIOS   0xfeff /* system specific e_type */

◆ ET_HIPROC

#define ET_HIPROC   0xffff /* specific e_type */

◆ ET_LOOS

#define ET_LOOS   0xfe00 /* reserved range for operating */

◆ ET_LOPROC

#define ET_LOPROC   0xff00 /* reserved range for processor */

◆ ET_NONE

#define ET_NONE   0 /* No file type */

◆ ET_NUM

#define ET_NUM   5 /* number of types */

◆ ET_REL

#define ET_REL   1 /* relocatable file */

◆ EV_CURRENT

#define EV_CURRENT   1 /* Current */

◆ EV_NONE

#define EV_NONE   0 /* Invalid */

◆ EV_NUM

#define EV_NUM   2 /* number of versions */

◆ GRP_COMDAT

#define GRP_COMDAT   0x1 /* COMDAT group */

◆ GRP_MASKOS

#define GRP_MASKOS   0x0ff00000 /* Mask OS specific flags */

◆ GRP_MASKPROC

#define GRP_MASKPROC   0xf0000000 /* Mask processor specific flags */

◆ IS_ELF

#define IS_ELF (   ehdr)
Value:
((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
(ehdr).e_ident[EI_MAG1] == ELFMAG1 && \
(ehdr).e_ident[EI_MAG2] == ELFMAG2 && \
(ehdr).e_ident[EI_MAG3] == ELFMAG3)
#define EI_MAG0
Definition: elf_abi.h:49
#define EI_MAG3
Definition: elf_abi.h:52
#define ELFMAG2
Definition: elf_abi.h:65
#define EI_MAG1
Definition: elf_abi.h:50
#define ELFMAG0
Definition: elf_abi.h:63
#define EI_MAG2
Definition: elf_abi.h:51
#define ELFMAG3
Definition: elf_abi.h:66
#define ELFMAG1
Definition: elf_abi.h:64

◆ PF_MASKOS

#define PF_MASKOS   0x0ff00000 /* OS specific segment flags */

◆ PF_MASKPROC

#define PF_MASKPROC   0xf0000000 /* reserved bits for processor */

◆ PF_R

#define PF_R   0x4 /* Readable */

◆ PF_W

#define PF_W   0x2 /* Writable */

◆ PF_X

set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro pixld1_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl else error unsupported endif endm macro pixld2_s mem_operand if mov asr add asl add asl mov asr sub UNIT_X add asl mov asr add asl add asl mov asr add UNIT_X add asl else pixld1_s mem_operand pixld1_s mem_operand endif endm macro pixld0_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl endif endm macro pixld_s_internal mem_operand if mem_operand pixld2_s mem_operand pixdeinterleave basereg elseif mem_operand elseif mem_operand elseif mem_operand elseif mem_operand pixld0_s mem_operand else pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else error unsupported mem_operand if bpp mem_operand endif endm macro vuzp8 reg2 vuzp d d &reg2 endm macro vzip8 reg2 vzip d d &reg2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge PF_X   0x1 /* Executable */

◆ PT_DYNAMIC

#define PT_DYNAMIC   2 /* dynamic linking section */

◆ PT_HIOS

#define PT_HIOS   0x6fffffff /* system specific segment types */

◆ PT_HIPROC

#define PT_HIPROC   0x7fffffff /* specific segment types */

◆ PT_INTERP

#define PT_INTERP   3 /* the RTLD */

◆ PT_LOAD

#define PT_LOAD   1 /* loadable segment */

◆ PT_LOOS

#define PT_LOOS   0x60000000 /* reserved range for operating */

◆ PT_LOPROC

#define PT_LOPROC   0x70000000 /* reserved range for processor */

◆ PT_NOTE

#define PT_NOTE   4 /* auxiliary information */

◆ PT_NULL

#define PT_NULL   0 /* unused */

◆ PT_NUM

#define PT_NUM   8 /* Number of segment types */

◆ PT_PHDR

#define PT_PHDR   6 /* program header */

◆ PT_SHLIB

#define PT_SHLIB   5 /* reserved - purpose undefined */

◆ PT_TLS

#define PT_TLS   7 /* Thread local storage template */

◆ R_PPC_ADDR14

#define R_PPC_ADDR14   7 /* 16bit address, 2 bits ignored */

◆ R_PPC_ADDR14_BRNTAKEN

#define R_PPC_ADDR14_BRNTAKEN   9

◆ R_PPC_ADDR14_BRTAKEN

#define R_PPC_ADDR14_BRTAKEN   8

◆ R_PPC_ADDR16

#define R_PPC_ADDR16   3 /* 16bit absolute address */

◆ R_PPC_ADDR16_HA

#define R_PPC_ADDR16_HA   6 /* adjusted high 16bit */

◆ R_PPC_ADDR16_HI

#define R_PPC_ADDR16_HI   5 /* high 16bit of absolute address */

◆ R_PPC_ADDR16_LO

#define R_PPC_ADDR16_LO   4 /* lower 16bit of absolute address */

◆ R_PPC_ADDR24

#define R_PPC_ADDR24   2 /* 26bit address, 2 bits ignored. */

◆ R_PPC_ADDR32

#define R_PPC_ADDR32   1 /* 32bit absolute address */

◆ R_PPC_COPY

#define R_PPC_COPY   19

◆ R_PPC_DIAB_RELSDA_HA

#define R_PPC_DIAB_RELSDA_HA   185 /* like EMB_RELSDA, adjusted high 16 */

◆ R_PPC_DIAB_RELSDA_HI

#define R_PPC_DIAB_RELSDA_HI   184 /* like EMB_RELSDA, but high 16 bit */

◆ R_PPC_DIAB_RELSDA_LO

#define R_PPC_DIAB_RELSDA_LO   183 /* like EMB_RELSDA, but lower 16 bit */

◆ R_PPC_DIAB_SDA21_HA

#define R_PPC_DIAB_SDA21_HA   182 /* like EMB_SDA21, adjusted high 16 */

◆ R_PPC_DIAB_SDA21_HI

#define R_PPC_DIAB_SDA21_HI   181 /* like EMB_SDA21, but high 16 bit */

◆ R_PPC_DIAB_SDA21_LO

#define R_PPC_DIAB_SDA21_LO   180 /* like EMB_SDA21, but lower 16 bit */

◆ R_PPC_EMB_BIT_FLD

#define R_PPC_EMB_BIT_FLD   115

◆ R_PPC_EMB_MRKREF

#define R_PPC_EMB_MRKREF   110

◆ R_PPC_EMB_NADDR16

#define R_PPC_EMB_NADDR16   102

◆ R_PPC_EMB_NADDR16_HA

#define R_PPC_EMB_NADDR16_HA   105

◆ R_PPC_EMB_NADDR16_HI

#define R_PPC_EMB_NADDR16_HI   104

◆ R_PPC_EMB_NADDR16_LO

#define R_PPC_EMB_NADDR16_LO   103

◆ R_PPC_EMB_NADDR32

#define R_PPC_EMB_NADDR32   101

◆ R_PPC_EMB_RELSDA

#define R_PPC_EMB_RELSDA   116 /* 16 bit relative offset in SDA */

◆ R_PPC_EMB_RELSEC16

#define R_PPC_EMB_RELSEC16   111

◆ R_PPC_EMB_RELST_HA

#define R_PPC_EMB_RELST_HA   114

◆ R_PPC_EMB_RELST_HI

#define R_PPC_EMB_RELST_HI   113

◆ R_PPC_EMB_RELST_LO

#define R_PPC_EMB_RELST_LO   112

◆ R_PPC_EMB_SDA21

#define R_PPC_EMB_SDA21   109 /* 16 bit offset in SDA */

◆ R_PPC_EMB_SDA2I16

#define R_PPC_EMB_SDA2I16   107

◆ R_PPC_EMB_SDA2REL

#define R_PPC_EMB_SDA2REL   108

◆ R_PPC_EMB_SDAI16

#define R_PPC_EMB_SDAI16   106

◆ R_PPC_GLOB_DAT

#define R_PPC_GLOB_DAT   20

◆ R_PPC_GOT16

#define R_PPC_GOT16   14

◆ R_PPC_GOT16_HA

#define R_PPC_GOT16_HA   17

◆ R_PPC_GOT16_HI

#define R_PPC_GOT16_HI   16

◆ R_PPC_GOT16_LO

#define R_PPC_GOT16_LO   15

◆ R_PPC_JMP_SLOT

#define R_PPC_JMP_SLOT   21

◆ R_PPC_LOCAL24PC

#define R_PPC_LOCAL24PC   23

◆ R_PPC_NONE

#define R_PPC_NONE   0

◆ R_PPC_NUM

#define R_PPC_NUM   37

◆ R_PPC_PLT16_HA

#define R_PPC_PLT16_HA   31

◆ R_PPC_PLT16_HI

#define R_PPC_PLT16_HI   30

◆ R_PPC_PLT16_LO

#define R_PPC_PLT16_LO   29

◆ R_PPC_PLT32

#define R_PPC_PLT32   27

◆ R_PPC_PLTREL24

#define R_PPC_PLTREL24   18

◆ R_PPC_PLTREL32

#define R_PPC_PLTREL32   28

◆ R_PPC_REL14

#define R_PPC_REL14   11 /* PC relative 16 bit */

◆ R_PPC_REL14_BRNTAKEN

#define R_PPC_REL14_BRNTAKEN   13

◆ R_PPC_REL14_BRTAKEN

#define R_PPC_REL14_BRTAKEN   12

◆ R_PPC_REL24

#define R_PPC_REL24   10 /* PC relative 26 bit */

◆ R_PPC_REL32

#define R_PPC_REL32   26

◆ R_PPC_RELATIVE

#define R_PPC_RELATIVE   22

◆ R_PPC_SDAREL16

#define R_PPC_SDAREL16   32

◆ R_PPC_SECTOFF

#define R_PPC_SECTOFF   33

◆ R_PPC_SECTOFF_HA

#define R_PPC_SECTOFF_HA   36

◆ R_PPC_SECTOFF_HI

#define R_PPC_SECTOFF_HI   35

◆ R_PPC_SECTOFF_LO

#define R_PPC_SECTOFF_LO   34

◆ R_PPC_TOC16

#define R_PPC_TOC16   255

◆ R_PPC_UADDR16

#define R_PPC_UADDR16   25

◆ R_PPC_UADDR32

#define R_PPC_UADDR32   24

◆ SELFMAG

#define SELFMAG   4 /* size of magic */

◆ SHF_ALLOC

#define SHF_ALLOC   0x2 /* occupies memory */

◆ SHF_EXECINSTR

#define SHF_EXECINSTR   0x4 /* executable */

◆ SHF_GROUP

#define SHF_GROUP   0x200 /* Member of section group */

◆ SHF_INFO_LINK

#define SHF_INFO_LINK   0x40 /* sh_info contains SHT index */

◆ SHF_LINK_ORDER

#define SHF_LINK_ORDER   0x80 /* Preserve order after combining*/

◆ SHF_MASKOS

#define SHF_MASKOS   0x0ff00000 /* OS specific */

◆ SHF_MASKPROC

#define SHF_MASKPROC   0xf0000000 /* reserved bits for processor */

◆ SHF_MERGE

#define SHF_MERGE   0x10 /* Might be merged */

◆ SHF_OS_NONCONFORMING

#define SHF_OS_NONCONFORMING   0x100 /* Non-standard OS specific handling */

◆ SHF_STRINGS

#define SHF_STRINGS   0x20 /* Contains NULL terminated strings */

◆ SHF_TLS

#define SHF_TLS   0x400 /* Thread local storage */

◆ SHF_WRITE

#define SHF_WRITE   0x1 /* Writable */

◆ SHN_ABS

#define SHN_ABS   0xfff1 /* absolute value */

◆ SHN_COMMON

#define SHN_COMMON   0xfff2 /* common symbol */

◆ SHN_HIOS

#define SHN_HIOS   0xff3f /* specific semantics */

◆ SHN_HIPROC

#define SHN_HIPROC   0xff1f /* specific section indexes */

◆ SHN_HIRESERVE

#define SHN_HIRESERVE   0xffff /* upper bounds of reserved indexes */

◆ SHN_LOOS

#define SHN_LOOS   0xff20 /* reserved range for operating */

◆ SHN_LOPROC

#define SHN_LOPROC   0xff00 /* reserved range for processor */

◆ SHN_LORESERVE

#define SHN_LORESERVE   0xff00 /* lower bounds of reserved indexes */

◆ SHN_UNDEF

#define SHN_UNDEF   0 /* undefined */

◆ SHN_XINDEX

#define SHN_XINDEX   0xffff /* Index is an extra table */

◆ SHT_DYNAMIC

#define SHT_DYNAMIC   6 /* dynamic section */

◆ SHT_DYNSYM

#define SHT_DYNSYM   11 /* dynamic symbol table section */

◆ SHT_FINI_ARRAY

#define SHT_FINI_ARRAY   15 /* Array of destructors */

◆ SHT_GROUP

#define SHT_GROUP   17 /* Section group */

◆ SHT_HASH

#define SHT_HASH   5 /* symbol hash table section */

◆ SHT_HIOS

#define SHT_HIOS   0x6fffffff /* End OS-specific */

◆ SHT_HIPROC

#define SHT_HIPROC   0x7fffffff /* specific section header types */

◆ SHT_HIUSER

#define SHT_HIUSER   0xffffffff /* specific indexes */

◆ SHT_INIT_ARRAY

#define SHT_INIT_ARRAY   14 /* Array of constructors */

◆ SHT_LOOS

#define SHT_LOOS   0x60000000 /* Start OS-specific */

◆ SHT_LOPROC

#define SHT_LOPROC   0x70000000 /* reserved range for processor */

◆ SHT_LOUSER

#define SHT_LOUSER   0x80000000 /* reserved range for application */

◆ SHT_NOBITS

#define SHT_NOBITS   8 /* no space section */

◆ SHT_NOTE

#define SHT_NOTE   7 /* note section */

◆ SHT_NULL

#define SHT_NULL   0 /* inactive */

◆ SHT_NUM

#define SHT_NUM   19 /* number of section types */

◆ SHT_PREINIT_ARRAY

#define SHT_PREINIT_ARRAY   16 /* Array of pre-constructors */

◆ SHT_PROGBITS

#define SHT_PROGBITS   1 /* program defined information */

◆ SHT_REL

#define SHT_REL   9 /* relation section without addends */

◆ SHT_RELA

#define SHT_RELA   4 /* relocation section with addends*/

◆ SHT_SHLIB

#define SHT_SHLIB   10 /* reserved - purpose unknown */

◆ SHT_STRTAB

#define SHT_STRTAB   3 /* string table section */

◆ SHT_SYMTAB

#define SHT_SYMTAB   2 /* symbol table section */

◆ SHT_SYMTAB_SHNDX

#define SHT_SYMTAB_SHNDX   18 /* Extended section indeces */

◆ STB_GLOBAL

#define STB_GLOBAL   1 /* Global symbol */

◆ STB_HIOS

#define STB_HIOS   12 /* system specific symbol bindings */

◆ STB_HIPROC

#define STB_HIPROC   15 /* specific symbol bindings */

◆ STB_LOCAL

#define STB_LOCAL   0 /* Local symbol */

◆ STB_LOOS

#define STB_LOOS   10 /* reserved range for operating */

◆ STB_LOPROC

#define STB_LOPROC   13 /* reserved range for processor */

◆ STB_NUM

#define STB_NUM   3 /* number of symbol bindings */

◆ STB_WEAK

#define STB_WEAK   2 /* like global - lower precedence */

◆ STN_UNDEF

#define STN_UNDEF   0 /* undefined */

◆ STT_FILE

#define STT_FILE   4 /* file */

◆ STT_FUNC

#define STT_FUNC   2 /* function */

◆ STT_HIOS

#define STT_HIOS   12 /* system specific symbol types */

◆ STT_HIPROC

#define STT_HIPROC   15 /* specific symbol types */

◆ STT_LOOS

#define STT_LOOS   10 /* reserved range for operating */

◆ STT_LOPROC

#define STT_LOPROC   13 /* reserved range for processor */

◆ STT_NOTYPE

#define STT_NOTYPE   0 /* not specified */

◆ STT_NUM

#define STT_NUM   5 /* number of symbol types */

◆ STT_OBJECT

#define STT_OBJECT   1 /* data object */

◆ STT_SECTION

#define STT_SECTION   3 /* section */

◆ STT_TLS

#define STT_TLS   6 /* Thread local storage symbol */

◆ STV_DEFAULT

#define STV_DEFAULT   0 /* Normal visibility rules */

◆ STV_HIDDEN

#define STV_HIDDEN   2 /* Symbol unavailable in other mods */

◆ STV_INTERNAL

#define STV_INTERNAL   1 /* Processor specific hidden class */

◆ STV_PROTECTED

#define STV_PROTECTED   3 /* Not preemptible, not exported */

Typedef Documentation

◆ Elf32_Addr

◆ Elf32_Ehdr

typedef struct elfhdr Elf32_Ehdr

◆ Elf32_Half

◆ Elf32_Off

◆ Elf32_Sword

◆ Elf32_Sym

typedef struct elf32_sym Elf32_Sym

◆ Elf32_Word

Function Documentation

◆ elf_hash()

unsigned long elf_hash ( const unsigned char *  name)

Variable Documentation

◆ _DYNAMIC

Elf32_Dyn _DYNAMIC[]