|
Zephyr Project API 4.0.0
A Scalable Open Source RTOS
|
Data structures and constants defined in the ELF specification. More...
#include <stdint.h>Go to the source code of this file.
Data Structures | |
| struct | elf32_ehdr |
| ELF Header(32-bit) More... | |
| struct | elf64_ehdr |
| ELF Header(64-bit) More... | |
| struct | elf32_shdr |
| Section Header(32-bit) More... | |
| struct | elf64_shdr |
| Section Header(64-bit) More... | |
| struct | elf32_sym |
| Symbol table entry(32-bit) More... | |
| struct | elf64_sym |
| Symbol table entry(64-bit) More... | |
| struct | elf32_rel |
| Relocation entry for 32-bit ELFs. More... | |
| struct | elf32_rela |
| Relocation entry for 32-bit ELFs with addend. More... | |
| struct | elf64_rel |
| Relocation entry for 64-bit ELFs. More... | |
| struct | elf64_rela |
| Relocation entry for 64-bit ELFs with addend. More... | |
Macros | |
| #define | EI_NIDENT 16 |
| ELF identifier block. | |
| #define | ET_REL 1 |
| Relocatable (unlinked) ELF. | |
| #define | ET_EXEC 2 |
| Executable (without PIC/PIE) ELF. | |
| #define | ET_DYN 3 |
| Dynamic (executable with PIC/PIE or shared lib) ELF. | |
| #define | ET_CORE 4 |
| Core Dump. | |
| #define | SHT_NULL 0x0 |
| ELF section types. | |
| #define | SHT_PROGBITS 0x1 |
| Program data. | |
| #define | SHT_SYMTAB 0x2 |
| Symbol table. | |
| #define | SHT_STRTAB 0x3 |
| String table. | |
| #define | SHT_RELA 0x4 |
| Relocation entries with addends. | |
| #define | SHT_NOBITS 0x8 |
| Program data with no file image. | |
| #define | SHT_REL 0x9 |
| Relocation entries without addends. | |
| #define | SHT_DYNSYM 0xB |
| Dynamic linking symbol table. | |
| #define | SHT_INIT_ARRAY 0xe |
| Array of pointers to init functions. | |
| #define | SHT_FINI_ARRAY 0xf |
| Array of pointers to termination functions. | |
| #define | SHT_PREINIT_ARRAY 0x10 |
| Array of pointers to early init functions. | |
| #define | SHF_WRITE 0x1 |
| ELF section flags. | |
| #define | SHF_ALLOC 0x2 |
| Section is present in memory. | |
| #define | SHF_EXECINSTR 0x4 |
| Section contains executable instructions. | |
| #define | SHF_BASIC_TYPE_MASK (SHF_WRITE | SHF_ALLOC | SHF_EXECINSTR) |
| #define | SHN_UNDEF 0 |
| ELF section numbers. | |
| #define | SHN_LORESERVE 0xff00 |
| Start of reserved section numbers. | |
| #define | SHN_ABS 0xfff1 |
| Special value for absolute symbols. | |
| #define | SHN_COMMON 0xfff2 |
| Common block. | |
| #define | SHN_HIRESERVE 0xffff |
| End of reserved section numbers. | |
| #define | STT_NOTYPE 0 |
| Symbol table entry types. | |
| #define | STT_OBJECT 1 |
| Data or object. | |
| #define | STT_FUNC 2 |
| Function. | |
| #define | STT_SECTION 3 |
| Section. | |
| #define | STT_FILE 4 |
| File name. | |
| #define | STT_COMMON 5 |
| Common block. | |
| #define | STT_LOOS 10 |
| Start of OS specific. | |
| #define | STT_HIOS 12 |
| End of OS specific. | |
| #define | STT_LOPROC 13 |
| Start of processor specific. | |
| #define | STT_HIPROC 15 |
| End of processor specific. | |
| #define | STB_LOCAL 0 |
| Symbol table entry bindings. | |
| #define | STB_GLOBAL 1 |
| Global symbol. | |
| #define | STB_WEAK 2 |
| Weak symbol. | |
| #define | STB_LOOS 10 |
| Start of OS specific. | |
| #define | STB_HIOS 12 |
| End of OS specific. | |
| #define | STB_LOPROC 13 |
| Start of processor specific. | |
| #define | STB_HIPROC 15 |
| End of processor specific. | |
| #define | ELF32_ST_BIND(i) ((i) >> 4) |
| Symbol binding from 32bit st_info. | |
| #define | ELF32_ST_TYPE(i) ((i) & 0xf) |
| Symbol type from 32bit st_info. | |
| #define | ELF64_ST_BIND(i) ((i) >> 4) |
| Symbol binding from 32bit st_info. | |
| #define | ELF64_ST_TYPE(i) ((i) & 0xf) |
| Symbol type from 32bit st_info. | |
| #define | ELF32_R_SYM(i) ((i) >> 8) |
| Relocation symbol index from r_info. | |
| #define | ELF32_R_TYPE(i) ((i) & 0xff) |
| Relocation type from r_info. | |
| #define | ELF64_R_SYM(i) ((i) >> 32) |
| Relocation symbol from r_info. | |
| #define | ELF64_R_TYPE(i) ((i) & 0xffffffff) |
| Relocation type from r_info. | |
| #define | ELF_R_SYM ELF64_R_SYM |
| Machine sized macro alias for obtaining a relocation symbol. | |
| #define | ELF_R_TYPE ELF64_R_TYPE |
| Machine sized macro alias for obtaining a relocation type. | |
| #define | ELF_ST_BIND ELF64_ST_BIND |
| Machine sized macro alias for obtaining a symbol bind. | |
| #define | ELF_ST_TYPE ELF64_ST_TYPE |
| Machine sized macro alias for obtaining a symbol type. | |
Typedefs | |
| typedef uint32_t | elf32_addr |
| Unsigned program address. | |
| typedef uint16_t | elf32_half |
| Unsigned medium integer. | |
| typedef uint32_t | elf32_off |
| Unsigned file offset. | |
| typedef int32_t | elf32_sword |
| Signed integer. | |
| typedef uint32_t | elf32_word |
| Unsigned integer. | |
| typedef uint64_t | elf64_addr |
| Unsigned program address. | |
| typedef uint16_t | elf64_half |
| Unsigned medium integer. | |
| typedef uint64_t | elf64_off |
| Unsigned file offset. | |
| typedef int32_t | elf64_sword |
| Signed integer. | |
| typedef uint32_t | elf64_word |
| Unsigned integer. | |
| typedef int64_t | elf64_sxword |
| Signed long integer. | |
| typedef uint64_t | elf64_xword |
| Unsigned long integer. | |
| typedef struct elf64_ehdr | elf_ehdr_t |
| Dynamic features currently not used by LLEXT. | |
| typedef struct elf64_shdr | elf_shdr_t |
| Machine sized section header structure. | |
| typedef struct elf64_phdr | elf_phdr_t |
| Machine sized program header structure. | |
| typedef elf64_addr | elf_addr |
| Machine sized program address. | |
| typedef elf64_half | elf_half |
| Machine sized small integer. | |
| typedef elf64_xword | elf_word |
| Machine sized integer. | |
| typedef struct elf64_rel | elf_rel_t |
| Machine sized relocation struct. | |
| typedef struct elf64_rela | elf_rela_t |
| Machine sized relocation struct with addend. | |
| typedef struct elf64_sym | elf_sym_t |
| Machine sized symbol struct. | |
Data structures and constants defined in the ELF specification.
Reference documents can be found here: https://refspecs.linuxfoundation.org/elf/