L4Re – L4 Runtime Environment
elf.h File Reference

ELF definition. More...

#include <l4/sys/l4int.h>
+ Include dependency graph for elf.h:

Go to the source code of this file.

Data Structures

struct  Elf32_Ehdr
 ELF32 header. More...
 
struct  Elf64_Ehdr
 ELF64 header. More...
 
struct  Elf32_Shdr
 ELF32 section header - figure 1-9, page 1-9. More...
 
struct  Elf64_Shdr
 ELF64 section header. More...
 
struct  Elf32_Phdr
 ELF32 program header. More...
 
struct  Elf64_Phdr
 ELF64 program header. More...
 
struct  Elf32_Dyn
 ELF32 dynamic entry. More...
 
struct  Elf64_Dyn
 ELF64 dynamic entry. More...
 
struct  Elf32_Sym
 ELF32 symbol table entry. More...
 
struct  Elf64_Sym
 ELF64 symbol table entry. More...
 

ELF types

#define ElfW(type)   _ElfW(Elf, 32, type)
 
#define _ElfW(e, w, t)   __ElfW(e, w, _##t)
 
#define __ElfW(e, w, t)   e##w##t
 
#define EI_NIDENT   16
 number of characters
 
#define EI_CLASS   4
 ELF class byte index. More...
 
#define ELFCLASSNONE   0
 Invalid ELF class. More...
 
#define ELFCLASS32   1
 32-bit objects
 
#define ELFCLASS64   2
 64-bit objects
 
#define ELFCLASSNUM   3
 Mask for 32-bit or 64-bit class.
 
#define EI_DATA   5
 Data encoding byte index. More...
 
#define ELFDATANONE   0
 Invalid data encoding. More...
 
#define ELFDATA2LSB   1
 2's complement, little endian More...
 
#define ELFDATA2MSB   2
 2's complement, big endian More...
 
#define ELFDATANUM   3
 
#define EI_VERSION   6
 File version byte index. More...
 
#define EI_OSABI   7
 OS ABI identification. More...
 
#define ELFOSABI_NONE   0
 UNIX System V ABI.
 
#define ELFOSABI_SYSV   0
 Alias. More...
 
#define ELFOSABI_HPUX   1
 HP-UX. More...
 
#define ELFOSABI_NETBSD   2
 NetBSD. More...
 
#define ELFOSABI_LINUX   3
 Linux. More...
 
#define ELFOSABI_SOLARIS   6
 Sun Solaris. More...
 
#define ELFOSABI_AIX   7
 IBM AIX. More...
 
#define ELFOSABI_IRIX   8
 SGI Irix. More...
 
#define ELFOSABI_FREEBSD   9
 FreeBSD. More...
 
#define ELFOSABI_TRU64   10
 Compaq TRU64 UNIX. More...
 
#define ELFOSABI_MODESTO   11
 Novell Modesto. More...
 
#define ELFOSABI_OPENBSD   12
 OpenBSD. More...
 
#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. More...
 
#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_LOPROC   0xff00
 processor-specific
 
#define ET_HIPROC   0xffff
 processor-specific
 
#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 RS3000 big-endian.
 
#define EM_MIPS_RS4_BE   10
 MIPS RS4000 big-endian.
 
#define EM_SPARC64   11
 SPARC 64-bit.
 
#define EM_PARISC   15
 HP PA-RISC.
 
#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_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 SuperH.
 
#define EM_SPARCV9   43
 SPARC v9 64-bit.
 
#define EM_TRICORE   44
 Siemens Tricore embedded processor.
 
#define EM_ARC   45
 Argonaut RISC Core, Argonaut Techn Inc.
 
#define EM_H8_300   46
 Hitachi H8/300.
 
#define EM_H8_300H   47
 Hitachi H8/300H.
 
#define EM_H8S   48
 Hitachi H8/S.
 
#define EM_H8_500   49
 Hitachi H8/500.
 
#define EM_IA_64   50
 HP/Intel IA-64.
 
#define EM_MIPS_X   51
 Stanford MIPS-X.
 
#define EM_COLDFIRE   52
 Motorola Coldfire.
 
#define EM_68HC12   53
 Motorola M68HC12.
 
#define EM_X86_64   62
 Advanced Micro Devices 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_CRIS   76
 Axis Communications 32-bit embedded processor.
 
#define EM_JAVELIN   77
 Infineon Technologies 32-bit embedded processor.
 
#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 educational 64-bit processor.
 
#define EM_HUANY   81
 Harvard University machine-independent object files.
 
#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_ALTERA_NIOS2   113
 Altera Nios II.
 
#define EM_AARCH64   183
 ARM AARCH64.
 
#define EM_TILEPRO   188
 Tilera TILEPro.
 
#define EM_MICROBLAZE   189
 Xilinx MicroBlaze.
 
#define EM_TILEGX   191
 Tilera TILE-Gx.
 
#define EM_NUM   192
 
#define EV_NONE   0
 Invalid version.
 
#define EV_CURRENT   1
 Current version.
 
#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
 ELF class byte index. More...
 
#define EI_DATA   5
 Data encoding byte index. More...
 
#define EI_VERSION   6
 File version byte index. More...
 
#define EI_OSABI   7
 OS ABI identification. More...
 
#define EI_ABIVERSION   8
 ABI version.
 
#define EI_PAD   9
 Byte index of padding bytes. More...
 
#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 ELFCLASSNONE   0
 Invalid ELF class. More...
 
#define ELFCLASSS32   1
 32-bit object
 
#define ELFCLASSS64   2
 64-bit object
 
#define ELFDATANONE   0
 Invalid data encoding. More...
 
#define ELFDATA2LSB   1
 2's complement, little endian More...
 
#define ELFDATA2MSB   2
 2's complement, big endian More...
 
#define ELFOSABI_SYSV   0
 Alias. More...
 
#define ELFOSABI_HPUX   1
 HP-UX. More...
 
#define ELFOSABI_STANDALONE   255
 Standalone (embedded) application.
 
#define SHN_UNDEF   0
 undefined section header entry
 
#define SHN_LORESERVE   0xff00
 lower bound of reserved indexes
 
#define SHN_LOPROC   0xff00
 lower bound of proc spec entr
 
#define SHN_HIPROC   0xff1f
 upper bound of proc spec entr
 
#define SHN_ABS   0xfff1
 absolute values for ref
 
#define SHN_COMMON   0xfff2
 common symbols
 
#define SHN_HIRESERVE   0xffff
 upper bound of reserved indexes
 
#define SHT_NULL   0
 
#define SHT_PROGBITS   1
 
#define SHT_SYMTAB   2
 
#define SHT_STRTAB   3
 
#define SHT_RELA   4
 
#define SHT_HASH   5
 
#define SHT_DYNAMIC   6
 
#define SHT_NOTE   7
 
#define SHT_NOBITS   8
 
#define SHT_REL   9
 
#define SHT_SHLIB   10
 
#define SHT_DYNSYM   11
 
#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. More...
 
#define SHT_LOOS   0x60000000
 
#define SHT_HIOS   0x6fffffff
 
#define SHT_LOPROC   0x70000000
 
#define SHT_HIPROC   0x7fffffff
 
#define SHT_LOUSER   0x80000000
 
#define SHT_HIUSER   0xffffffff
 
#define SHF_WRITE   0x1
 writeable during execution
 
#define SHF_ALLOC   0x2
 section occupies virt memory
 
#define SHF_EXECINSTR   0x4
 code section
 
#define SHF_MERGE   0x10
 Might be merged.
 
#define SHF_STRINGS   0x20
 Contains nul-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 required.
 
#define SHF_GROUP   0x200
 Section is member of a group. More...
 
#define SHF_TLS   0x400
 Section hold thread-local data. More...
 
#define SHF_MASKOS   0x0ff00000
 OS-specific. More...
 
#define SHF_MASKPROC   0xf0000000
 proc spec mask
 
#define PT_NULL   0
 array is unused
 
#define PT_LOAD   1
 loadable
 
#define PT_DYNAMIC   2
 dynamic linking information
 
#define PT_INTERP   3
 path to interpreter
 
#define PT_NOTE   4
 auxiliary information
 
#define PT_SHLIB   5
 reserved
 
#define PT_PHDR   6
 location of the pht itself
 
#define PT_TLS   7
 Thread-local storage segment.
 
#define PT_NUM   8
 Number of defined types.
 
#define PT_LOOS   0x60000000
 os spec.
 
#define PT_HIOS   0x6fffffff
 os spec.
 
#define PT_LOPROC   0x70000000
 processor spec.
 
#define PT_HIPROC   0x7fffffff
 processor spec.
 
#define PT_GNU_EH_FRAME   (PT_LOOS + 0x474e550)
 EH frame information.
 
#define PT_GNU_STACK   (PT_LOOS + 0x474e551)
 Flags for stack.
 
#define PT_GNU_RELRO   (PT_LOOS + 0x474e552)
 Read only after reloc.
 
#define PT_L4_STACK   (PT_LOOS + 0x12)
 Address of the stack.
 
#define PT_L4_KIP   (PT_LOOS + 0x13)
 Address of the KIP.
 
#define PT_L4_AUX   (PT_LOOS + 0x14)
 Address of the AUX strcutures.
 
#define PF_X   0x1
 
#define PF_W   0x2
 
#define PF_R   0x4
 
#define PF_MASKOS   0x0ff00000
 
#define PF_MASKPROC   0x7fffffff
 
#define NT_PRSTATUS   1
 Contains copy of prstatus struct.
 
#define NT_FPREGSET   2
 Contains copy of fpregset struct.
 
#define NT_PRPSINFO   3
 Contains copy of prpsinfo struct.
 
#define NT_PRXREG   4
 Contains copy of prxregset struct.
 
#define NT_TASKSTRUCT   4
 Contains copy of task structure.
 
#define NT_PLATFORM   5
 String from sysinfo(SI_PLATFORM)
 
#define NT_AUXV   6
 Contains copy of auxv array.
 
#define NT_GWINDOWS   7
 Contains copy of gwindows struct.
 
#define NT_ASRS   8
 Contains copy of asrset struct.
 
#define NT_PSTATUS   10
 Contains copy of pstatus struct.
 
#define NT_PSINFO   13
 Contains copy of psinfo struct.
 
#define NT_PRCRED   14
 Contains copy of prcred struct.
 
#define NT_UTSNAME   15
 Contains copy of utsname struct.
 
#define NT_LWPSTATUS   16
 Contains copy of lwpstatus struct.
 
#define NT_LWPSINFO   17
 Contains copy of lwpinfo struct.
 
#define NT_PRFPXREG   20
 Contains copy of fprxregset struct.
 
#define NT_VERSION   1
 Contains a version string. More...
 
#define DT_NULL   0
 Dynamic Array Tags, d_tag - figure 2-10, page 2-12. More...
 
#define DT_NEEDED   1
 name of a needed library
 
#define DT_PLTRELSZ   2
 total size of relocation entry
 
#define DT_PLTGOT   3
 address assoc with prog link table
 
#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
 total size of relocation table
 
#define DT_RELAENT   9
 size of DT_RELA relocation entry
 
#define DT_STRSZ   10
 size of the string table
 
#define DT_SYMENT   11
 size of a symbol table entry
 
#define DT_INIT   12
 address of initialization function
 
#define DT_FINI   13
 address of termination function
 
#define DT_SONAME   14
 name of the shared object
 
#define DT_RPATH   15
 search library path
 
#define DT_SYMBOLIC   16
 alter symbol resolution algorithm
 
#define DT_REL   17
 address of relocation table
 
#define DT_RELSZ   18
 total size of DT_REL relocation table
 
#define DT_RELENT   19
 size of the DT_REL relocation entry
 
#define DT_PTRREL   20
 type of relocation entry
 
#define DT_DEBUG   21
 for debugging purposes
 
#define DT_TEXTREL   22
 at least on entry changes r/o section
 
#define DT_JMPREL   23
 address of 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   0x6000000d
 Start of OS-specific.
 
#define DT_HIOS   0x6ffff000
 End of OS-specific.
 
#define DT_LOPROC   0x70000000
 processor spec.
 
#define DT_HIPROC   0x7fffffff
 processor spec.
 
#define DF_ORIGIN   0x00000001
 Object may use DF_ORIGIN.
 
#define DF_SYMBOLIC   0x00000002
 Symbol resolutions starts here.
 
#define DF_TEXTREL   0x00000004
 Object contains text relocations.
 
#define DF_BIND_NOW   0x00000008
 No lazy binding for this object.
 
#define DF_STATIC_TLS   0x00000010
 Module uses the static TLS model.
 
#define DF_1_NOW   0x00000001
 Set RTLD_NOW for this object. More...
 
#define DF_1_GLOBAL   0x00000002
 Set RTLD_GLOBAL for this object. More...
 
#define DF_1_GROUP   0x00000004
 Set RTLD_GROUP for this object. More...
 
#define DF_1_NODELETE   0x00000008
 Set RTLD_NODELETE for this object.
 
#define DF_1_LOADFLTR   0x00000010
 Trigger filtee loading at runtime.
 
#define DF_1_INITFIRST   0x00000020
 Set RTLD_INITFIRST for this object.
 
#define DF_1_NOOPEN   0x00000040
 Set RTLD_NOOPEN for this object. More...
 
#define DF_1_ORIGIN   0x00000080
 $ORIGIN must be handled. More...
 
#define DF_1_DIRECT   0x00000100
 Direct binding enabled. More...
 
#define DF_1_TRANS   0x00000200
 
#define DF_1_INTERPOSE   0x00000400
 Object is used to interpose. More...
 
#define DF_1_NODEFLIB   0x00000800
 Ignore default lib search path. More...
 
#define DF_1_NODUMP   0x00001000
 Object can't be dldump'ed. More...
 
#define DF_1_CONFALT   0x00002000
 Configuration alternative created.
 
#define DF_1_ENDFILTEE   0x00004000
 Filtee terminates filters search.
 
#define DF_1_DISPRELDNE   0x00008000
 Disp reloc applied at build time.
 
#define DF_1_DISPRELPND   0x00010000
 Disp reloc applied at run-time. More...
 
#define DTF_1_PARINIT   0x00000001
 
#define DTF_1_CONFEXP   0x00000002
 
#define DF_P1_LAZYLOAD   0x00000001
 Lazyload following object. More...
 
#define DF_P1_GROUPPERM   0x00000002
 Symbols from next object are not generally available. More...
 
#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 ELF64_R_SYM(i)   ((i)>>32)
 
#define ELF64_R_TYPE(i)   ((i)&0xffffffffL)
 
#define ELF64_R_INFO(s, t)   (((s)<<32)+(t)&0xffffffffL)
 
#define R_386_NONE   0
 none
 
#define R_386_32   1
 S + A.
 
#define R_386_PC32   2
 S + A - P.
 
#define R_386_GOT32   3
 G + A - P.
 
#define R_386_PLT32   4
 L + A - P.
 
#define R_386_COPY   5
 none
 
#define R_386_GLOB_DAT   6
 S.
 
#define R_386_JMP_SLOT   7
 S.
 
#define R_386_RELATIVE   8
 B + A.
 
#define R_386_GOTOFF   9
 S + A - GOT.
 
#define R_386_GOTPC   10
 GOT + A - P.
 
#define R_386_32PLT   11
 
#define R_386_TLS_TPOFF   14 /* Offset in static TLS block */
 
#define R_386_TLS_IE
 
#define R_386_TLS_GOTIE
 
#define R_386_TLS_LE
 
#define R_386_TLS_GD
 
#define R_386_TLS_LDM
 
#define R_386_16   20
 
#define R_386_PC16   21
 
#define R_386_8   22
 
#define R_386_PC8   23
 
#define R_386_TLS_GD_32
 
#define R_386_TLS_GD_PUSH   25 /* Tag for pushl in GD TLS code */
 
#define R_386_TLS_GD_CALL
 
#define R_386_TLS_GD_POP   27 /* Tag for popl in GD TLS code */
 
#define R_386_TLS_LDM_32
 
#define R_386_TLS_LDM_PUSH   29 /* Tag for pushl in LDM TLS code */
 
#define R_386_TLS_LDM_CALL
 
#define R_386_TLS_LDM_POP   31 /* Tag for popl in LDM TLS code */
 
#define R_386_TLS_LDO_32   32 /* Offset relative to TLS block */
 
#define R_386_TLS_IE_32
 
#define R_386_TLS_LE_32
 
#define R_386_TLS_DTPMOD32   35 /* ID of module containing symbol */
 
#define R_386_TLS_DTPOFF32   36 /* Offset in TLS block */
 
#define R_386_TLS_TPOFF32   37 /* Negated offset in static TLS block */
 
#define R_386_NUM   38
 
#define EF_ARM_RELEXEC   0x01
 
#define EF_ARM_HASENTRY   0x02
 
#define EF_ARM_INTERWORK   0x04
 
#define EF_ARM_APCS_26   0x08
 
#define EF_ARM_APCS_FLOAT   0x10
 
#define EF_ARM_PIC   0x20
 
#define EF_ARM_ALIGN8   0x40 /* 8-bit structure alignment is in use */
 
#define EF_ARM_NEW_ABI   0x80
 
#define EF_ARM_OLD_ABI   0x100
 
#define EF_ARM_SYMSARESORTED   0x04
 
#define EF_ARM_DYNSYMSUSESEGIDX   0x08
 
#define EF_ARM_MAPSYMSFIRST   0x10
 
#define EF_ARM_EABIMASK   0XFF000000
 
#define EF_ARM_EABI_VERSION(flags)   ((flags) & EF_ARM_EABIMASK)
 
#define EF_ARM_EABI_UNKNOWN   0x00000000
 
#define EF_ARM_EABI_VER1   0x01000000
 
#define EF_ARM_EABI_VER2   0x02000000
 
#define STT_ARM_TFUNC   0xd
 
#define SHF_ARM_ENTRYSECT   0x10000000 /* Section contains an entry point */
 
#define SHF_ARM_COMDEF
 
#define PF_ARM_SB
 
#define R_ARM_NONE   0 /* No reloc */
 
#define R_ARM_PC24   1 /* PC relative 26 bit branch */
 
#define R_ARM_ABS32   2 /* Direct 32 bit */
 
#define R_ARM_REL32   3 /* PC relative 32 bit */
 
#define R_ARM_PC13   4
 
#define R_ARM_ABS16   5 /* Direct 16 bit */
 
#define R_ARM_ABS12   6 /* Direct 12 bit */
 
#define R_ARM_THM_ABS5   7
 
#define R_ARM_ABS8   8 /* Direct 8 bit */
 
#define R_ARM_SBREL32   9
 
#define R_ARM_THM_PC22   10
 
#define R_ARM_THM_PC8   11
 
#define R_ARM_AMP_VCALL9   12
 
#define R_ARM_SWI24   13
 
#define R_ARM_THM_SWI8   14
 
#define R_ARM_XPC25   15
 
#define R_ARM_THM_XPC22   16
 
#define R_ARM_COPY   20 /* Copy symbol at runtime */
 
#define R_ARM_GLOB_DAT   21 /* Create GOT entry */
 
#define R_ARM_JUMP_SLOT   22 /* Create PLT entry */
 
#define R_ARM_RELATIVE   23 /* Adjust by program base */
 
#define R_ARM_GOTOFF   24 /* 32 bit offset to GOT */
 
#define R_ARM_GOTPC   25 /* 32 bit PC relative offset to GOT */
 
#define R_ARM_GOT32   26 /* 32 bit GOT entry */
 
#define R_ARM_PLT32   27 /* 32 bit PLT address */
 
#define R_ARM_ALU_PCREL_7_0   32
 
#define R_ARM_ALU_PCREL_15_8   33
 
#define R_ARM_ALU_PCREL_23_15   34
 
#define R_ARM_LDR_SBREL_11_0   35
 
#define R_ARM_ALU_SBREL_19_12   36
 
#define R_ARM_ALU_SBREL_27_20   37
 
#define R_ARM_GNU_VTENTRY   100
 
#define R_ARM_GNU_VTINHERIT   101
 
#define R_ARM_THM_PC11   102 /* thumb unconditional branch */
 
#define R_ARM_THM_PC9   103 /* thumb conditional branch */
 
#define R_ARM_RXPC25   249
 
#define R_ARM_RSBREL32   250
 
#define R_ARM_THM_RPC22   251
 
#define R_ARM_RREL32   252
 
#define R_ARM_RABS22   253
 
#define R_ARM_RPC24   254
 
#define R_ARM_RBASE   255
 
#define R_ARM_NUM   256
 
#define R_X86_64_NONE   0 /* No reloc */
 
#define R_X86_64_64   1 /* Direct 64 bit */
 
#define R_X86_64_PC32   2 /* PC relative 32 bit signed */
 
#define R_X86_64_GOT32   3 /* 32 bit GOT entry */
 
#define R_X86_64_PLT32   4 /* 32 bit PLT address */
 
#define R_X86_64_COPY   5 /* Copy symbol at runtime */
 
#define R_X86_64_GLOB_DAT   6 /* Create GOT entry */
 
#define R_X86_64_JUMP_SLOT   7 /* Create PLT entry */
 
#define R_X86_64_RELATIVE   8 /* Adjust by program base */
 
#define R_X86_64_GOTPCREL
 
#define R_X86_64_32   10 /* Direct 32 bit zero extended */
 
#define R_X86_64_32S   11 /* Direct 32 bit sign extended */
 
#define R_X86_64_16   12 /* Direct 16 bit zero extended */
 
#define R_X86_64_PC16   13 /* 16 bit sign extended pc relative */
 
#define R_X86_64_8   14 /* Direct 8 bit sign extended */
 
#define R_X86_64_PC8   15 /* 8 bit sign extended pc relative */
 
#define R_X86_64_DTPMOD64   16 /* ID of module containing symbol */
 
#define R_X86_64_DTPOFF64   17 /* Offset in module's TLS block */
 
#define R_X86_64_TPOFF64   18 /* Offset in initial TLS block */
 
#define R_X86_64_TLSGD
 
#define R_X86_64_TLSLD
 
#define R_X86_64_DTPOFF32   21 /* Offset in TLS block */
 
#define R_X86_64_GOTTPOFF
 
#define R_X86_64_TPOFF32   23 /* Offset in initial TLS block */
 
#define R_X86_64_NUM   24
 
#define STN_UNDEF   0
 
#define ELF32_ST_BIND(i)   ((i)>>4)
 
#define ELF32_ST_TYPE(i)   ((i)&0xf)
 
#define ELF32_ST_INFO(b, t)   (((b)<<4)+((t)&0xf))
 
#define ELF64_ST_BIND(i)   ((i)>>4)
 
#define ELF64_ST_TYPE(i)   ((i)&0xf)
 
#define ELF64_ST_INFO(b, t)   (((b)<<4)+((t)&0xf))
 
#define STB_LOCAL   0
 not visible outside object file
 
#define STB_GLOBAL   1
 visible to all objects beeing combined
 
#define STB_WEAK   2
 resemble global symbols
 
#define STB_LOOS   10
 os specific
 
#define STB_HIOS   12
 os specific
 
#define STB_LOPROC   13
 proc specific
 
#define STB_HIPROC   15
 proc specific
 
#define STT_NOTYPE   0
 symbol's type not specified
 
#define STT_OBJECT   1
 associated with a data object
 
#define STT_FUNC   2
 associated with a function or other code
 
#define STT_SECTION   3
 associated with a section
 
#define STT_FILE   4
 source file name associated with object
 
#define STT_LOOS   10
 os specific
 
#define STT_HIOS   12
 os specific
 
#define STT_LOPROC   13
 proc specific
 
#define STT_HIPROC   15
 proc specific
 
enum  Elf_ATs
 
typedef l4_uint32_t Elf32_Addr
 size 4 align 4
 
typedef l4_uint32_t Elf32_Off
 size 4 align 4
 
typedef l4_uint16_t Elf32_Half
 size 2 align 2
 
typedef l4_uint32_t Elf32_Word
 size 4 align 4
 
typedef l4_int32_t Elf32_Sword
 size 4 align 4
 
typedef l4_uint64_t Elf64_Addr
 size 8 align 8
 
typedef l4_uint64_t Elf64_Off
 size 8 align 8
 
typedef l4_uint16_t Elf64_Half
 size 2 align 2
 
typedef l4_uint32_t Elf64_Word
 size 4 align 4
 
typedef l4_int32_t Elf64_Sword
 size 4 align 4
 
typedef l4_uint64_t Elf64_Xword
 size 8 align 8
 
typedef l4_int64_t Elf64_Sxword
 size 8 align 8
 
typedef struct Elf32_Auxv Elf32_Auxv
 
typedef struct Elf64_Auxv Elf64_Auxv
 

Detailed Description

ELF definition.

Date
08/18/2000
Author
Frank Mehnert fm3@o.nosp@m.s.in.nosp@m.f.tu-.nosp@m.dres.nosp@m.den.d.nosp@m.e Alexander Warg aw11@.nosp@m.os.i.nosp@m.nf.tu.nosp@m.-dre.nosp@m.sden..nosp@m.de

Many structs from "Executable and Linkable Format (ELF)", Portable Formats Specification, Version 1.1 and "System V Application Binary Interface - DRAFT - April 29, 1998" The Santa Cruz Operation, Inc. (see http://www.sco.com/developer/gabi/contents.html)

Definition in file elf.h.

Macro Definition Documentation

◆ DF_1_DIRECT

#define DF_1_DIRECT   0x00000100

Direct binding enabled.


Definition at line 575 of file elf.h.

◆ DF_1_DISPRELPND

#define DF_1_DISPRELPND   0x00010000

Disp reloc applied at run-time.


Definition at line 583 of file elf.h.

◆ DF_1_GLOBAL

#define DF_1_GLOBAL   0x00000002

Set RTLD_GLOBAL for this object.


Definition at line 568 of file elf.h.

◆ DF_1_GROUP

#define DF_1_GROUP   0x00000004

Set RTLD_GROUP for this object.


Definition at line 569 of file elf.h.

◆ DF_1_INTERPOSE

#define DF_1_INTERPOSE   0x00000400

Object is used to interpose.


Definition at line 577 of file elf.h.

◆ DF_1_NODEFLIB

#define DF_1_NODEFLIB   0x00000800

Ignore default lib search path.


Definition at line 578 of file elf.h.

◆ DF_1_NODUMP

#define DF_1_NODUMP   0x00001000

Object can't be dldump'ed.


Definition at line 579 of file elf.h.

◆ DF_1_NOOPEN

#define DF_1_NOOPEN   0x00000040

Set RTLD_NOOPEN for this object.


Definition at line 573 of file elf.h.

◆ DF_1_NOW

#define DF_1_NOW   0x00000001

Set RTLD_NOW for this object.


Definition at line 567 of file elf.h.

◆ DF_1_ORIGIN

#define DF_1_ORIGIN   0x00000080

$ORIGIN must be handled.


Definition at line 574 of file elf.h.

◆ DF_P1_GROUPPERM

#define DF_P1_GROUPPERM   0x00000002

Symbols from next object are not generally available.


Definition at line 592 of file elf.h.

◆ DF_P1_LAZYLOAD

#define DF_P1_LAZYLOAD   0x00000001

Lazyload following object.


Definition at line 590 of file elf.h.

◆ DT_NULL

#define DT_NULL   0

Dynamic Array Tags, d_tag - figure 2-10, page 2-12.

end of _DYNAMIC array

Definition at line 518 of file elf.h.

◆ EI_CLASS [1/2]

#define EI_CLASS   4

ELF class byte index.

file class

Definition at line 294 of file elf.h.

◆ EI_CLASS [2/2]

#define EI_CLASS   4

ELF class byte index.

file class

Definition at line 294 of file elf.h.

◆ EI_DATA [1/2]

#define EI_DATA   5

Data encoding byte index.

data encoding

Definition at line 295 of file elf.h.

◆ EI_DATA [2/2]

#define EI_DATA   5

Data encoding byte index.

data encoding

Definition at line 295 of file elf.h.

◆ EI_OSABI [1/2]

#define EI_OSABI   7

OS ABI identification.

Operating system / ABI identification.

Definition at line 297 of file elf.h.

◆ EI_OSABI [2/2]

#define EI_OSABI   7

OS ABI identification.

Operating system / ABI identification.

Definition at line 297 of file elf.h.

◆ EI_PAD [1/2]

#define EI_PAD   9

Byte index of padding bytes.

start of padding bytes

Definition at line 299 of file elf.h.

◆ EI_PAD [2/2]

#define EI_PAD   9

Byte index of padding bytes.

start of padding bytes

Definition at line 299 of file elf.h.

◆ EI_VERSION [1/2]

#define EI_VERSION   6

File version byte index.

file version

Value must be EV_CURRENT

Definition at line 296 of file elf.h.

◆ EI_VERSION [2/2]

#define EI_VERSION   6

File version byte index.

file version

Value must be EV_CURRENT

Definition at line 296 of file elf.h.

◆ ELFCLASSNONE [1/2]

#define ELFCLASSNONE   0

Invalid ELF class.

Invalid class.

Definition at line 310 of file elf.h.

◆ ELFCLASSNONE [2/2]

#define ELFCLASSNONE   0

Invalid ELF class.

Invalid class.

Definition at line 310 of file elf.h.

◆ ELFDATA2LSB [1/2]

#define ELFDATA2LSB   1

2's complement, little endian

0x01020304 => [ 0x04|0x03|0x02|0x01 ]

Definition at line 317 of file elf.h.

◆ ELFDATA2LSB [2/2]

#define ELFDATA2LSB   1

2's complement, little endian

0x01020304 => [ 0x04|0x03|0x02|0x01 ]

Definition at line 317 of file elf.h.

◆ ELFDATA2MSB [1/2]

#define ELFDATA2MSB   2

2's complement, big endian

0x01020304 => [ 0x01|0x02|0x03|0x04 ]

Definition at line 318 of file elf.h.

◆ ELFDATA2MSB [2/2]

#define ELFDATA2MSB   2

2's complement, big endian

0x01020304 => [ 0x01|0x02|0x03|0x04 ]

Definition at line 318 of file elf.h.

◆ ELFDATANONE [1/2]

#define ELFDATANONE   0

Invalid data encoding.

invalid data encoding

Definition at line 316 of file elf.h.

◆ ELFDATANONE [2/2]

#define ELFDATANONE   0

Invalid data encoding.

invalid data encoding

Definition at line 316 of file elf.h.

◆ ELFOSABI_AIX

#define ELFOSABI_AIX   7

IBM AIX.


Definition at line 181 of file elf.h.

◆ ELFOSABI_FREEBSD

#define ELFOSABI_FREEBSD   9

FreeBSD.


Definition at line 183 of file elf.h.

◆ ELFOSABI_HPUX [1/2]

#define ELFOSABI_HPUX   1

HP-UX.

HP-UX operating system.

Definition at line 323 of file elf.h.

◆ ELFOSABI_HPUX [2/2]

#define ELFOSABI_HPUX   1

HP-UX.

HP-UX operating system.

Definition at line 323 of file elf.h.

◆ ELFOSABI_IRIX

#define ELFOSABI_IRIX   8

SGI Irix.


Definition at line 182 of file elf.h.

◆ ELFOSABI_LINUX

#define ELFOSABI_LINUX   3

Linux.


Definition at line 179 of file elf.h.

◆ ELFOSABI_MODESTO

#define ELFOSABI_MODESTO   11

Novell Modesto.


Definition at line 185 of file elf.h.

◆ ELFOSABI_NETBSD

#define ELFOSABI_NETBSD   2

NetBSD.


Definition at line 178 of file elf.h.

◆ ELFOSABI_OPENBSD

#define ELFOSABI_OPENBSD   12

OpenBSD.


Definition at line 186 of file elf.h.

◆ ELFOSABI_SOLARIS

#define ELFOSABI_SOLARIS   6

Sun Solaris.


Definition at line 180 of file elf.h.

◆ ELFOSABI_SYSV [1/2]

#define ELFOSABI_SYSV   0

Alias.

UNIX System V ABI (this specification)


Definition at line 322 of file elf.h.

◆ ELFOSABI_SYSV [2/2]

#define ELFOSABI_SYSV   0

Alias.

UNIX System V ABI (this specification)


Definition at line 322 of file elf.h.

◆ ELFOSABI_TRU64

#define ELFOSABI_TRU64   10

Compaq TRU64 UNIX.


Definition at line 184 of file elf.h.

◆ NT_VERSION

#define NT_VERSION   1

Contains a version string.


Definition at line 494 of file elf.h.

◆ SHF_GROUP

#define SHF_GROUP   0x200

Section is member of a group.


Definition at line 407 of file elf.h.

◆ SHF_MASKOS

#define SHF_MASKOS   0x0ff00000

OS-specific.


Definition at line 409 of file elf.h.

◆ SHF_TLS

#define SHF_TLS   0x400

Section hold thread-local data.


Definition at line 408 of file elf.h.

◆ SHT_NUM

#define SHT_NUM   19

Number of defined types.


Definition at line 388 of file elf.h.