RTEMS CPU Kit with SuperCore  4.11.3
Data Structures | Macros | Typedefs
exec_elf.h File Reference
#include <inttypes.h>
#include <machine/elf_machdep.h>
Include dependency graph for exec_elf.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  Elf32_Ehdr
 
struct  Elf64_Ehdr
 
struct  Elf32_Phdr
 
struct  Elf64_Phdr
 
struct  Elf32_Shdr
 
struct  Elf64_Shdr
 
struct  Elf32_Sym
 
struct  Elf64_Sym
 
struct  Elf32_Rel
 
struct  Elf32_Rela
 
struct  Elf64_Rel
 
struct  Elf64_Rela
 
struct  Elf32_Move
 
struct  Elf64_Move
 
struct  Elf32_Cap
 
struct  Elf64_Cap
 
struct  Elf32_Dyn
 
struct  Elf64_Dyn
 
struct  Aux32Info
 
struct  Aux64Info
 
struct  Elf32_Nhdr
 
struct  Elf64_Nhdr
 
struct  netbsd_elfcore_procinfo
 
struct  Elf32_Syminfo
 
struct  Elf64_Syminfo
 
struct  Elf32_Verdef
 
struct  Elf32_Verdaux
 
struct  Elf32_Verneed
 
struct  Elf32_Vernaux
 
struct  Elf32_Versym
 

Macros

#define ELF32_FSZ_ADDR   4
 
#define ELF32_FSZ_OFF   4
 
#define ELF32_FSZ_SWORD   4
 
#define ELF32_FSZ_WORD   4
 
#define ELF32_FSZ_HALF   2
 
#define ELF32_FSZ_LWORD   8
 
#define ELF64_FSZ_ADDR   8
 
#define ELF64_FSZ_OFF   8
 
#define ELF64_FSZ_SHALF   4
 
#define ELF64_FSZ_SWORD   4
 
#define ELF64_FSZ_WORD   4
 
#define ELF64_FSZ_SXWORD   8
 
#define ELF64_FSZ_XWORD   8
 
#define ELF64_FSZ_LWORD   8
 
#define ELF64_FSZ_HALF   4
 
#define ELF64_FSZ_QUARTER   2
 
#define ELF_NIDENT   16
 
#define EI_MAG0   0 /* '\177' */
 
#define EI_MAG1   1 /* 'E' */
 
#define EI_MAG2   2 /* 'L' */
 
#define EI_MAG3   3 /* 'F' */
 
#define EI_CLASS   4 /* File class */
 
#define EI_DATA   5 /* Data encoding */
 
#define EI_VERSION   6 /* File version */
 
#define EI_OSABI   7 /* Operating system/ABI identification */
 
#define EI_ABIVERSION   8 /* ABI version */
 
#define EI_PAD   9 /* Start of padding bytes up to EI_NIDENT*/
 
#define EI_NIDENT   16 /* First non-ident header byte */
 
#define ELFMAG0   0x7f
 
#define ELFMAG1   'E'
 
#define ELFMAG2   'L'
 
#define ELFMAG3   'F'
 
#define ELFMAG   "\177ELF"
 
#define SELFMAG   4
 
#define ELFCLASSNONE   0 /* Invalid class */
 
#define ELFCLASS32   1 /* 32-bit objects */
 
#define ELFCLASS64   2 /* 64-bit objects */
 
#define ELFCLASSNUM   3
 
#define ELFDATANONE   0 /* Invalid data encoding */
 
#define ELFDATA2LSB   1 /* 2's complement values, LSB first */
 
#define ELFDATA2MSB   2 /* 2's complement values, MSB first */
 
#define EV_NONE   0 /* Invalid version */
 
#define EV_CURRENT   1 /* Current version */
 
#define EV_NUM   2
 
#define ELFOSABI_SYSV   0 /* UNIX System V ABI */
 
#define ELFOSABI_HPUX   1 /* HP-UX operating system */
 
#define ELFOSABI_NETBSD   2 /* NetBSD */
 
#define ELFOSABI_LINUX   3 /* GNU/Linux */
 
#define ELFOSABI_HURD   4 /* GNU/Hurd */
 
#define ELFOSABI_86OPEN   5 /* 86Open */
 
#define ELFOSABI_SOLARIS   6 /* Solaris */
 
#define ELFOSABI_MONTEREY   7 /* Monterey */
 
#define ELFOSABI_IRIX   8 /* IRIX */
 
#define ELFOSABI_FREEBSD   9 /* FreeBSD */
 
#define ELFOSABI_TRU64   10 /* TRU64 UNIX */
 
#define ELFOSABI_MODESTO   11 /* Novell Modesto */
 
#define ELFOSABI_OPENBSD   12 /* OpenBSD */
 
#define ELFOSABI_OPENVMS   13 /* OpenVMS */
 
#define ELFOSABI_NSK   14 /* HP Non-Stop Kernel */
 
#define ELFOSABI_AROS   15 /* Amiga Research OS */
 
#define ELFOSABI_ARM   97 /* ARM */
 
#define ELFOSABI_STANDALONE   255 /* Standalone (embedded) application */
 
#define ELFOSABI_NONE   ELFOSABI_SYSV
 
#define ELFOSABI_AIX   ELFOSABI_MONTEREY
 
#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
 
#define ET_LOOS   0xfe00 /* Operating system specific range */
 
#define ET_HIOS   0xfeff
 
#define ET_LOPROC   0xff00 /* Processor-specific range */
 
#define ET_HIPROC   0xffff
 
#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_486   6 /* Intel 80486 */
 
#define EM_860   7 /* Intel 80860 */
 
#define EM_MIPS   8 /* MIPS I Architecture */
 
#define EM_S370   9 /* Amdahl UTS on System/370 */
 
#define EM_MIPS_RS3_LE   10 /* MIPS RS3000 Little-endian */
 
#define EM_RS6000   11 /* IBM RS/6000 XXX reserved */
 
#define EM_PARISC   15 /* Hewlett-Packard PA-RISC */
 
#define EM_NCUBE   16 /* NCube XXX reserved */
 
#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 /* System/390 XXX reserved */
 
#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 Super-H */
 
#define EM_SPARCV9   43 /* SPARC Version 9 */
 
#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 Processor */
 
#define EM_MIPS_X   51 /* Stanford MIPS-X */
 
#define EM_COLDFIRE   52 /* Motorola Coldfire */
 
#define EM_68HC12   53 /* Motorola MC68HC12 */
 
#define EM_MMA   54 /* Fujitsu MMA Multimedia Accelerator */
 
#define EM_PCP   55 /* Siemens PCP */
 
#define EM_NCPU   56 /* Sony nCPU embedded RISC processor */
 
#define EM_NDR1   57 /* Denso NDR1 microprocessor */
 
#define EM_STARCORE   58 /* Motorola Star*Core processor */
 
#define EM_ME16   59 /* Toyota ME16 processor */
 
#define EM_ST100   60 /* STMicroelectronics ST100 processor */
 
#define EM_TINYJ   61 /* Advanced Logic Corp. TinyJ embedded family processor */
 
#define EM_X86_64   62 /* AMD x86-64 architecture */
 
#define EM_PDSP   63 /* Sony DSP Processor */
 
#define EM_PDP10   64 /* Digital Equipment Corp. PDP-10 */
 
#define EM_PDP11   65 /* Digital Equipment Corp. PDP-11 */
 
#define EM_FX66   66 /* Siemens FX66 microcontroller */
 
#define EM_ST9PLUS   67 /* STMicroelectronics ST9+ 8/16 bit microcontroller */
 
#define EM_ST7   68 /* STMicroelectronics ST7 8-bit microcontroller */
 
#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 CPU */
 
#define EM_VAX   75 /* Digital VAX */
 
#define EM_CRIS   76 /* Axis Communications 32-bit embedded processor */
 
#define EM_JAVELIN   77 /* Infineon Technologies 32-bit embedded CPU */
 
#define EM_FIREPATH   78 /* Element 14 64-bit DSP processor */
 
#define EM_ZSP   79 /* LSI Logic's 16-bit DSP processor */
 
#define EM_MMIX   80 /* Donald Knuth's educational 64-bit processor */
 
#define EM_HUANY   81 /* Harvard's machine-independent format */
 
#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 D10V */
 
#define EM_D30V   86 /* Mitsubishi D30V */
 
#define EM_V850   87 /* NEC v850 */
 
#define EM_M32R   88 /* Mitsubishi M32R */
 
#define EM_MN10300   89 /* Matsushita MN10300 */
 
#define EM_MN10200   90 /* Matsushita MN10200 */
 
#define EM_PJ   91 /* picoJava */
 
#define EM_OPENRISC   92 /* OpenRISC 32-bit embedded processor */
 
#define EM_ARC_A5   93 /* ARC Cores Tangent-A5 */
 
#define EM_XTENSA   94 /* Tensilica Xtensa Architecture */
 
#define EM_VIDEOCORE   95 /* Alphamosaic VideoCore processor */
 
#define EM_TMM_GPP   96 /* Thompson Multimedia General Purpose Processor */
 
#define EM_NS32K   97 /* National Semiconductor 32000 series */
 
#define EM_TPC   98 /* Tenor Network TPC processor */
 
#define EM_SNP1K   99 /* Trebia SNP 1000 processor */
 
#define EM_ST200   100 /* STMicroelectronics ST200 microcontroller */
 
#define EM_IP2K   101 /* Ubicom IP2xxx microcontroller family */
 
#define EM_MAX   102 /* MAX processor */
 
#define EM_CR   103 /* National Semiconductor CompactRISC micorprocessor */
 
#define EM_F2MC16   104 /* Fujitsu F2MC16 */
 
#define EM_MSP430   105 /* Texas Instruments MSP430 */
 
#define EM_BLACKFIN   106 /* Analog Devices Blackfin DSP */
 
#define EM_SE_C33   107 /* Seiko Epson S1C33 family */
 
#define EM_SEP   108 /* Sharp embedded microprocessor */
 
#define EM_ARCA   109 /* Arca RISC microprocessor */
 
#define EM_UNICORE   110 /* UNICORE from PKU-Unity Ltd. and MPRC Peking University */
 
#define EM_EXCESS   111 /* eXcess: 16/32/64-bit configurable embedded CPU */
 
#define EM_DXP   112 /* Icera Semiconductor Inc. Deep Execution Processor */
 
#define EM_ALTERA_NIOS2   113 /* Altera Nios II soft-core processor */
 
#define EM_CRX   114 /* National Semiconductor CRX */
 
#define EM_XGATE   115 /* Motorola XGATE embedded processor */
 
#define EM_C166   116 /* Infineon C16x/XC16x processor */
 
#define EM_M16C   117 /* Renesas M16C series microprocessors */
 
#define EM_DSPIC30F   118 /* Microchip Technology dsPIC30F Digital Signal Controller */
 
#define EM_CE   119 /* Freescale Communication Engine RISC core */
 
#define EM_M32C   120 /* Renesas M32C series microprocessors */
 
#define EM_LATTICEMICO32   138 /* RICS processor for Lattice FPGA architecture */
 
#define EM_MICROBLAZE   189 /* Xilinx MicroBlaze 32-bit RISC soft processor core */
 
#define EM_MOXIE   0xFEED
 
#define EM_AVR32   6317 /* used by NetBSD/avr32 */
 
#define EM_ALPHA_EXP   36902 /* used by NetBSD/alpha; obsolete */
 
#define EM_NUM   36903
 
#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, unspecified semantics */
 
#define PT_PHDR   6 /* Entry for header table itself */
 
#define PT_NUM   7
 
#define PT_LOOS   0x60000000 /* OS-specific range */
 
#define PT_HIOS   0x6fffffff
 
#define PT_LOPROC   0x70000000 /* Processor-specific range */
 
#define PT_HIPROC   0x7fffffff
 
#define PT_MIPS_REGINFO   0x70000000
 
#define PF_R   0x4 /* Segment is readable */
 
#define PF_W   0x2 /* Segment is writable */
 
#define PF_X   0x1 /* Segment is executable */
 
#define PF_MASKOS   0x0ff00000 /* Operating system specific values */
 
#define PF_MASKPROC   0xf0000000 /* Processor-specific values */
 
#define PN_XNUM   0xffff
 
#define SHT_NULL   0 /* Section header table entry unused */
 
#define SHT_PROGBITS   1 /* Program information */
 
#define SHT_SYMTAB   2 /* Symbol table */
 
#define SHT_STRTAB   3 /* String table */
 
#define SHT_RELA   4 /* Relocation information w/ addend */
 
#define SHT_HASH   5 /* Symbol hash table */
 
#define SHT_DYNAMIC   6 /* Dynamic linking information */
 
#define SHT_NOTE   7 /* Auxiliary information */
 
#define SHT_NOBITS   8 /* No space allocated in file image */
 
#define SHT_REL   9 /* Relocation information w/o addend */
 
#define SHT_SHLIB   10 /* Reserved, unspecified semantics */
 
#define SHT_DYNSYM   11 /* Symbol table for dynamic linker */
 
#define SHT_INIT_ARRAY   14 /* Initialization function pointers */
 
#define SHT_FINI_ARRAY   15 /* Termination function pointers */
 
#define SHT_PREINIT_ARRAY   16 /* Pre-initialization function ptrs */
 
#define SHT_GROUP   17 /* Section group */
 
#define SHT_SYMTAB_SHNDX   18 /* Section indexes (see SHN_XINDEX) */
 
#define SHT_NUM   19
 
#define SHT_LOOS   0x60000000 /* Operating system specific range */
 
#define SHT_SUNW_move   0x6ffffffa
 
#define SHT_SUNW_syminfo   0x6ffffffc
 
#define SHT_SUNW_verdef   0x6ffffffd /* Versions defined by file */
 
#define SHT_GNU_verdef   SHT_SUNW_verdef
 
#define SHT_SUNW_verneed   0x6ffffffe /* Versions needed by file */
 
#define SHT_GNU_verneed   SHT_SUNW_verneed
 
#define SHT_SUNW_versym   0x6fffffff /* Symbol versions */
 
#define SHT_GNU_versym   SHT_SUNW_versym
 
#define SHT_HIOS   0x6fffffff
 
#define SHT_LOPROC   0x70000000 /* Processor-specific range */
 
#define SHT_AMD64_UNWIND   0x70000001 /* unwind information */
 
#define SHT_HIPROC   0x7fffffff
 
#define SHT_LOUSER   0x80000000 /* Application-specific range */
 
#define SHT_HIUSER   0xffffffff
 
#define SHF_WRITE   0x1 /* Section contains writable data */
 
#define SHF_ALLOC   0x2 /* Section occupies memory */
 
#define SHF_EXECINSTR   0x4 /* Section contains executable insns */
 
#define SHF_MERGE   0x10 /* Section contains data that can be merged */
 
#define SHF_STRINGS   0x20 /* Section contains null-terminated strings */
 
#define SHF_INFO_LINK   0x40 /* Section header's sh_info holds table index */
 
#define SHF_LINK_ORDER   0x80 /* Section has special ordering requirements */
 
#define SHF_MASKOS   0x0f000000 /* Operating system specific values */
 
#define SHF_MASKPROC   0xf0000000 /* Processor-specific values */
 
#define ELF_SYM_UNDEFINED   0
 
#define STN_UNDEF   0 /* undefined index */
 
#define STB_LOCAL   0 /* local symbol */
 
#define STB_GLOBAL   1 /* global symbol */
 
#define STB_WEAK   2 /* weakly defined global symbol */
 
#define STB_NUM   3
 
#define STB_LOOS   10 /* Operating system specific range */
 
#define STB_HIOS   12
 
#define STB_LOPROC   13 /* Processor-specific range */
 
#define STB_HIPROC   15
 
#define STT_NOTYPE   0 /* Type not specified */
 
#define STT_OBJECT   1 /* Associated with a data object */
 
#define STT_FUNC   2 /* Associated with a function */
 
#define STT_SECTION   3 /* Associated with a section */
 
#define STT_FILE   4 /* Associated with a file name */
 
#define STT_COMMON   5 /* Uninitialised common block */
 
#define STT_TLS   6 /* Thread local data object */
 
#define STT_NUM   7
 
#define STT_LOOS   10 /* Operating system specific range */
 
#define STT_HIOS   12
 
#define STT_LOPROC   13 /* Processor-specific range */
 
#define STT_HIPROC   15
 
#define STV_DEFAULT   0 /* use binding type */
 
#define STV_INTERNAL   1 /* not referenced from outside */
 
#define STV_HIDDEN   2 /* not visible, may be used via ptr */
 
#define STV_PROTECTED   3 /* visible, not preemptible */
 
#define STV_EXPORTED   4
 
#define STV_SINGLETON   5
 
#define STV_ELIMINATE   6
 
#define ELF_ST_BIND(info)   ((uint32_t)(info) >> 4)
 
#define ELF_ST_TYPE(info)   ((uint32_t)(info) & 0xf)
 
#define ELF_ST_INFO(bind, type)
 
#define ELF_ST_VISIBILITY(other)   ((uint32_t)(other) & 3)
 
#define SHN_UNDEF   0 /* Undefined section */
 
#define SHN_LORESERVE   0xff00 /* Reserved range */
 
#define SHN_ABS   0xfff1 /* Absolute symbols */
 
#define SHN_COMMON   0xfff2 /* Common symbols */
 
#define SHN_XINDEX   0xffff /* Escape -- index stored elsewhere */
 
#define SHN_HIRESERVE   0xffff
 
#define SHN_LOPROC   0xff00 /* Processor-specific range */
 
#define SHN_HIPROC   0xff1f
 
#define SHN_LOOS   0xff20 /* Operating system specific range */
 
#define SHN_HIOS   0xff3f
 
#define SHN_MIPS_ACOMMON   0xff00
 
#define SHN_MIPS_TEXT   0xff01
 
#define SHN_MIPS_DATA   0xff02
 
#define SHN_MIPS_SCOMMON   0xff03
 
#define ELF32_R_SYM(info)   ((info) >> 8)
 
#define ELF32_R_TYPE(info)   ((info) & 0xff)
 
#define ELF32_R_INFO(sym, type)   (((sym) << 8) + (unsigned char)(type))
 
#define ELF64_R_SYM(info)   ((info) >> 32)
 
#define ELF64_R_TYPE(info)   ((info) & 0xffffffff)
 
#define ELF64_R_INFO(sym, type)   (((sym) << 32) + (type))
 
#define ELF32_M_SYM(info)   ((info) >> 8)
 
#define ELF32_M_SIZE(info)   (info) & 0xff)
 
#define ELF32_M_INFO(sym, size)   (((sym) << 8) + (unsigned char)(size))
 
#define ELF64_M_SYM(info)   ((info) >> 8)
 
#define ELF64_M_SIZE(info)   (info) & 0xff)
 
#define ELF64_M_INFO(sym, size)   (((sym) << 8) + (unsigned char)(size))
 
#define DT_NULL   0 /* Marks end of dynamic array */
 
#define DT_NEEDED   1 /* Name of needed library (DT_STRTAB offset) */
 
#define DT_PLTRELSZ   2 /* Size, in bytes, of relocations in PLT */
 
#define DT_PLTGOT   3 /* Address of PLT and/or 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 Rela relocation table */
 
#define DT_RELASZ   8 /* Size, in bytes, of DT_RELA table */
 
#define DT_RELAENT   9 /* Size, in bytes, of one DT_RELA entry */
 
#define DT_STRSZ   10 /* Size, in bytes, of DT_STRTAB table */
 
#define DT_SYMENT   11 /* Size, in bytes, of one DT_SYMTAB entry */
 
#define DT_INIT   12 /* Address of initialization function */
 
#define DT_FINI   13 /* Address of termination function */
 
#define DT_SONAME   14 /* Shared object name (DT_STRTAB offset) */
 
#define DT_RPATH   15 /* Library search path (DT_STRTAB offset) */
 
#define DT_SYMBOLIC   16 /* Start symbol search within local object */
 
#define DT_REL   17 /* Address of Rel relocation table */
 
#define DT_RELSZ   18 /* Size, in bytes, of DT_REL table */
 
#define DT_RELENT   19 /* Size, in bytes, of one DT_REL entry */
 
#define DT_PLTREL   20 /* Type of PLT relocation entries */
 
#define DT_DEBUG   21 /* Used for debugging; unspecified */
 
#define DT_TEXTREL   22 /* Relocations might modify non-writable seg */
 
#define DT_JMPREL   23 /* Address of relocations associated with PLT */
 
#define DT_BIND_NOW   24 /* Process all relocations at load-time */
 
#define DT_INIT_ARRAY   25 /* Address of initialization function array */
 
#define DT_FINI_ARRAY   26 /* Size, in bytes, of DT_INIT_ARRAY array */
 
#define DT_INIT_ARRAYSZ   27 /* Address of termination function array */
 
#define DT_FINI_ARRAYSZ   28 /* Size, in bytes, of DT_FINI_ARRAY array*/
 
#define DT_NUM   29
 
#define DT_LOOS   0x60000000 /* Operating system specific range */
 
#define DT_VERSYM   0x6ffffff0 /* Symbol versions */
 
#define DT_FLAGS_1   0x6ffffffb /* ELF dynamic flags */
 
#define DT_VERDEF   0x6ffffffc /* Versions defined by file */
 
#define DT_VERDEFNUM   0x6ffffffd /* Number of versions defined by file */
 
#define DT_VERNEED   0x6ffffffe /* Versions needed by file */
 
#define DT_VERNEEDNUM   0x6fffffff /* Number of versions needed by file */
 
#define DT_HIOS   0x6fffffff
 
#define DT_LOPROC   0x70000000 /* Processor-specific range */
 
#define DT_HIPROC   0x7fffffff
 
#define DF_1_INITFIRST   0x00000020 /* Object's init/fini take priority */
 
#define AT_NULL   0 /* Marks end of array */
 
#define AT_IGNORE   1 /* No meaning, a_un is undefined */
 
#define AT_EXECFD   2 /* Open file descriptor of object file */
 
#define AT_PHDR   3 /* &phdr[0] */
 
#define AT_PHENT   4 /* sizeof(phdr[0]) */
 
#define AT_PHNUM   5 /* # phdr entries */
 
#define AT_PAGESZ   6 /* PAGESIZE */
 
#define AT_BASE   7 /* Interpreter base addr */
 
#define AT_FLAGS   8 /* Processor flags */
 
#define AT_ENTRY   9 /* Entry address of executable */
 
#define AT_DCACHEBSIZE   10 /* Data cache block size */
 
#define AT_ICACHEBSIZE   11 /* Instruction cache block size */
 
#define AT_UCACHEBSIZE   12 /* Unified cache block size */
 
#define AT_MIPS_NOTELF   10 /* XXX a_val != 0 -> MIPS XCOFF executable */
 
#define AT_EUID   2000 /* euid (solaris compatible numbers) */
 
#define AT_RUID   2001 /* ruid (solaris compatible numbers) */
 
#define AT_EGID   2002 /* egid (solaris compatible numbers) */
 
#define AT_RGID   2003 /* rgid (solaris compatible numbers) */
 
#define AT_SUN_LDELF   2004 /* dynamic linker's ELF header */
 
#define AT_SUN_LDSHDR   2005 /* dynamic linker's section header */
 
#define AT_SUN_LDNAME   2006 /* dynamic linker's name */
 
#define AT_SUN_LPGSIZE   2007 /* large pagesize */
 
#define AT_SUN_PLATFORM   2008 /* sysinfo(SI_PLATFORM) */
 
#define AT_SUN_HWCAP   2009 /* process hardware capabilities */
 
#define AT_SUN_IFLUSH   2010 /* do we need to flush the instruction cache? */
 
#define AT_SUN_CPU   2011 /* CPU name */
 
#define AT_SUN_EMUL_ENTRY   2012 /* coff entry point */
 
#define AT_SUN_EMUL_EXECFD   2013 /* coff file descriptor */
 
#define AT_SUN_EXECNAME   2014
 
#define ELF_NOTE_TYPE_ABI_TAG   1
 
#define ELF_NOTE_ABI_NAMESZ   4
 
#define ELF_NOTE_ABI_DESCSZ   16
 
#define ELF_NOTE_ABI_NAME   "GNU\0"
 
#define ELF_NOTE_ABI_OS_LINUX   0
 
#define ELF_NOTE_ABI_OS_HURD   1
 
#define ELF_NOTE_ABI_OS_SOLARIS   2
 
#define ELF_NOTE_TYPE_NETBSD_TAG   1
 
#define ELF_NOTE_NETBSD_NAMESZ   7
 
#define ELF_NOTE_NETBSD_DESCSZ   4
 
#define ELF_NOTE_NETBSD_NAME   "NetBSD\0\0"
 
#define ELF_NOTE_TYPE_CHECKSUM_TAG   2
 
#define ELF_NOTE_CHECKSUM_CRC32   1
 
#define ELF_NOTE_CHECKSUM_MD5   2
 
#define ELF_NOTE_CHECKSUM_SHA1   3
 
#define ELF_NOTE_CHECKSUM_SHA256   4
 
#define ELF_NOTE_TYPE_PAX_TAG   3
 
#define ELF_NOTE_PAX_MPROTECT   0x01 /* Force enable Mprotect */
 
#define ELF_NOTE_PAX_NOMPROTECT   0x02 /* Force disable Mprotect */
 
#define ELF_NOTE_PAX_GUARD   0x04 /* Force enable Segvguard */
 
#define ELF_NOTE_PAX_NOGUARD   0x08 /* Force disable Servguard */
 
#define ELF_NOTE_PAX_ASLR   0x10 /* Force enable ASLR */
 
#define ELF_NOTE_PAX_NOASLR   0x20 /* Force disable ASLR */
 
#define ELF_NOTE_PAX_NAMESZ   4
 
#define ELF_NOTE_PAX_NAME   "PaX\0"
 
#define ELF_NOTE_PAX_DESCSZ   4
 
#define ELF_NOTE_NETBSD_CORE_NAME   "NetBSD-CORE"
 
#define ELF_NOTE_NETBSD_CORE_PROCINFO   1
 
#define NETBSD_ELFCORE_PROCINFO_VERSION   1
 
#define ELF32_ST_BIND(info)   ELF_ST_BIND(info)
 
#define ELF32_ST_TYPE(info)   ELF_ST_TYPE(info)
 
#define ELF32_ST_INFO(bind, type)   ELF_ST_INFO(bind,type)
 
#define ELF32_ST_VISIBILITY(other)   ELF_ST_VISIBILITY(other)
 
#define ELF64_ST_BIND(info)   ELF_ST_BIND(info)
 
#define ELF64_ST_TYPE(info)   ELF_ST_TYPE(info)
 
#define ELF64_ST_INFO(bind, type)   ELF_ST_INFO(bind,type)
 
#define ELF64_ST_VISIBILITY(other)   ELF_ST_VISIBILITY(other)
 
#define SYMINFO_FLG_DIRECT
 
#define SYMINFO_FLG_PASSTHRU   0x0002 /* ignored - see SYMINFO_FLG_FILTER */
 
#define SYMINFO_FLG_COPY   0x0004 /* symbol is a copy-reloc */
 
#define SYMINFO_FLG_LAZYLOAD
 
#define SYMINFO_FLG_DIRECTBIND
 
#define SYMINFO_FLG_NOEXTDIRECT
 
#define SYMINFO_FLG_FILTER   0x0002 /* symbol ref is associated to a */
 
#define SYMINFO_FLG_AUXILIARY   0x0040 /* standard or auxiliary filter */
 
#define SYMINFO_BT_SELF   0xffff /* symbol bound to self */
 
#define SYMINFO_BT_PARENT   0xfffe /* symbol bound to parent */
 
#define SYMINFO_BT_NONE   0xfffd /* no special symbol binding */
 
#define SYMINFO_BT_EXTERN   0xfffc /* symbol defined as external */
 
#define SYMINFO_BT_LOWRESERVE   0xff00 /* beginning of reserved entries */
 
#define SYMINFO_NONE   0 /* Syminfo version */
 
#define SYMINFO_CURRENT   1
 
#define SYMINFO_NUM   2
 
#define VER_DEF_NONE   0
 
#define VER_DEF_CURRENT   1
 
#define VER_FLG_BASE   0x1
 
#define VER_FLG_WEAK   0x2
 
#define VER_NDX_LOCAL   0
 
#define VER_NDX_GLOBAL   1
 
#define VER_NEED_NONE   0
 
#define VER_NEED_CURRENT   1
 
#define VERSYM_HIDDEN   0x8000
 
#define VERSYM_VERSION   0x7fff
 
#define ELF_VER_CHR   '@'
 

Typedefs

typedef uint8_t Elf_Byte
 
typedef uint32_t Elf32_Addr
 
typedef uint32_t Elf32_Off
 
typedef int32_t Elf32_SOff
 
typedef int32_t Elf32_Sword
 
typedef uint32_t Elf32_Word
 
typedef uint16_t Elf32_Half
 
typedef uint64_t Elf32_Lword
 
typedef uint64_t Elf64_Addr
 
typedef uint64_t Elf64_Off
 
typedef int64_t Elf64_SOff
 
typedef int32_t Elf64_Shalf
 
typedef int32_t Elf64_Sword
 
typedef uint32_t Elf64_Word
 
typedef int64_t Elf64_Sxword
 
typedef uint64_t Elf64_Xword
 
typedef uint64_t Elf64_Lword
 
typedef uint32_t Elf64_Half
 
typedef uint16_t Elf64_Quarter
 
typedef Elf32_Verdef Elf64_Verdef
 
typedef Elf32_Verdaux Elf64_Verdaux
 
typedef Elf32_Verneed Elf64_Verneed
 
typedef Elf32_Vernaux Elf64_Vernaux
 
typedef Elf32_Versym Elf64_Versym
 

Macro Definition Documentation

◆ ELF_ST_INFO

#define ELF_ST_INFO (   bind,
  type 
)
Value:
((Elf_Byte)(((bind) << 4) | \
((type) & 0xf)))

◆ SYMINFO_FLG_DIRECT

#define SYMINFO_FLG_DIRECT
Value:
0x0001 /* symbol ref has direct association
to object containing definition */

◆ SYMINFO_FLG_DIRECTBIND

#define SYMINFO_FLG_DIRECTBIND
Value:
0x0010 /* ref should be bound directly to
object containing definition */

◆ SYMINFO_FLG_LAZYLOAD

#define SYMINFO_FLG_LAZYLOAD
Value:
0x0008 /* object containing defn should be
lazily-loaded */

◆ SYMINFO_FLG_NOEXTDIRECT

#define SYMINFO_FLG_NOEXTDIRECT
Value:
0x0020 /* don't let an external reference
directly bind to this symbol */