Zephyr API Documentation  3.6.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
elf.h File Reference
#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
 
struct  elf64_rel
 Relocation entry for 64-bit ELFs. More...
 
struct  elf64_rela
 
struct  elf32_phdr
 Program header(32-bit) More...
 
struct  elf64_phdr
 Program header(64-bit) More...
 
struct  elf32_dyn
 Dynamic section entry(32-bit) More...
 
struct  elf64_dyn
 Dynamic section entry(64-bit) 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_PROGBITS   0x1
 
#define SHT_SYMTAB   0x2
 
#define SHT_STRTAB   0x3
 
#define SHT_RELA   0x4
 
#define SHT_NOBITS   0x8
 
#define SHT_REL   0x9
 
#define SHT_DYNSYM   0xB
 
#define SHF_WRITE   0x1
 
#define SHF_ALLOC   0x2
 
#define SHF_EXECINSTR   0x4
 
#define SHN_UNDEF   0
 
#define SHN_ABS   0xfff1
 
#define SHN_COMMON   0xfff2
 
#define STT_NOTYPE   0
 
#define STT_OBJECT   1
 
#define STT_FUNC   2
 
#define STT_SECTION   3
 
#define STT_FILE   4
 
#define STT_COMMON   5
 
#define STT_LOOS   10
 
#define STT_HIOS   12
 
#define STT_LOPROC   13
 
#define STT_HIPROC   15
 
#define STB_LOCAL   0
 
#define STB_GLOBAL   1
 
#define STB_WEAK   2
 
#define STB_LOOS   10
 
#define STB_HIOS   12
 
#define STB_LOPROC   13
 
#define STB_HIPROC   15
 
#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 R_386_NONE   0
 
#define R_386_32   1
 
#define R_386_PC32   2
 
#define R_386_GOT32   3
 
#define R_386_PLT32   4
 
#define R_386_COPY   5
 
#define R_386_GLOB_DAT   6
 
#define R_386_JMP_SLOT   7
 
#define R_386_RELATIVE   8
 
#define R_386_GOTOFF   9
 
#define R_ARM_NONE   0
 
#define R_ARM_PC24   1
 
#define R_ARM_ABS32   2
 
#define R_ARM_REL32   3
 
#define R_ARM_COPY   20
 
#define R_ARM_GLOB_DAT   21
 
#define R_ARM_JUMP_SLOT   22
 
#define R_ARM_RELATIVE   23
 
#define R_ARM_CALL   28
 
#define R_ARM_JUMP24   29
 
#define R_ARM_TARGET1   38
 
#define R_ARM_V4BX   40
 
#define R_ARM_PREL31   42
 
#define R_ARM_MOVW_ABS_NC   43
 
#define R_ARM_MOVT_ABS   44
 
#define R_ARM_MOVW_PREL_NC   45
 
#define R_ARM_MOVT_PREL   46
 
#define R_ARM_ALU_PC_G0_NC   57
 
#define R_ARM_ALU_PC_G1_NC   59
 
#define R_ARM_LDR_PC_G2   63
 
#define R_ARM_THM_CALL   10
 
#define R_ARM_THM_JUMP24   30
 
#define R_ARM_THM_MOVW_ABS_NC   47
 
#define R_ARM_THM_MOVT_ABS   48
 
#define R_ARM_THM_MOVW_PREL_NC   49
 
#define R_ARM_THM_MOVT_PREL   50
 
#define R_XTENSA_NONE   0
 
#define R_XTENSA_32   1
 
#define R_XTENSA_SLOT0_OP   20
 
#define PT_LOAD   1
 Program segment type.
 
#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
 Machine sized elf header structure.
 
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
 
typedef struct elf64_sym elf_sym_t
 Machine sized symbol struct.