AquilaOS documentation
How it works, and its code
Loading...
Searching...
No Matches
elf.h File Reference
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  elf32_hdr
 An ELF32 file's header. More...
struct  elf32_shdr
 An ELF32 section header. More...
struct  elf32_sym
 An ELF32 symbol. More...
struct  elf64_shdr
 An ELF64 section header. More...
struct  elf64_sym
 An ELF64 symbol. More...
struct  elf32_phdr
 An ELF32 program header: a segment to load. More...
struct  elf32_dyn
 An ELF32 dynamic section's entry. More...
struct  elf64_hdr
 An ELF64 file's header. More...
struct  elf64_phdr
 An ELF64 program header: a segment to load. More...

Macros

#define ET_NONE   0x0000
#define ET_REL   0x0001
#define ET_EXEC   0x0002
#define ET_DYN   0x0003
#define ET_CORE   0x0004
#define ET_LOPROC   0xff00
#define ET_HIPROC   0xffff
#define EM_NONE   0x0000
#define EM_M32   0x0001
#define EM_SPARC   0x0002
#define EM_386   0x0003
#define EM_68K   0x0004
#define EM_88K   0x0005
#define EM_860   0x0007
#define EM_MIPS   0x0008
#define EM_X86_64   0x003E
#define EM_AARCH64   0x00B7
#define EV_NONE   0x0000
#define EV_CURRENT   0x0001
#define EI_MAG0   0
#define EI_MAG1   1
#define EI_MAG2   2
#define EI_MAG3   3
#define EI_CLASS   4
#define EI_DATA   5
#define EI_VERSION   6
#define EI_PAD   7
#define EI_NIDENT   16
#define ELFMAG0   0x7f
#define ELFMAG1   'E'
#define ELFMAG2   'L'
#define ELFMAG3   'F'
#define ELFCLASSNONE   0
#define ELFCLASS32   1
#define ELFCLASS64   2
#define SHN_UNDEF   0x0000
#define SHN_LORESERVE   0xff00
#define SHN_LOPROC   0xff00
#define SHN_HIPROC   0xff1f
#define SHN_ABS   0xfff1
#define SHN_COMMON   0xfff2
#define SHN_HIRESERVE   0xffff
#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_LOPROC   0x70000000
#define SHT_HIPROC   0x7fffffff
#define SHT_LOUSER   0x80000000
#define SHT_HIUSER   0xffffffff
#define DT_NULL   0
#define DT_NEEDED   1
#define DT_PLTRELSZ   2
#define DT_PLTGOT   3
#define DT_HASH   4
#define DT_STRTAB   5
#define DT_SYMTAB   6
#define DT_RELA   7
#define DT_RELASZ   8
#define DT_RELAENT   9
#define DT_STRSZ   10
#define DT_SYMENT   11
#define DT_INIT   12
#define DT_FINI   13
#define DT_SONAME   14
#define DT_RPATH   15
#define DT_SYMBOLIC   16
#define DT_REL   17
#define DT_RELSZ   18
#define DT_RELENT   19
#define DT_PLTREL   20
#define DT_DEBUG   21
#define DT_TEXTREL   22
#define DT_JMPREL   23
#define DT_LOPROC   0x70000000
#define DT_HIPROC   0x7fffffff
#define PT_NULL   0
#define PT_LOAD   1
#define PT_DYNAMIC   2
#define PT_INTERP   3
#define PT_NOTE   4
#define PT_SHLIB   5
#define PT_PHDR   6
#define PT_LOPROC   0x70000000
#define PT_HIPROC   0x7fffffff
#define PF_X   0x1
#define PF_W   0x2
#define PF_R   0x4
#define PF_MASKPROC   0xf0000000
#define ELF32_ST_BIND(i)
#define ELF32_ST_TYPE(i)
#define ELF32_ST_INFO(b, t)
#define STB_LOCAL   0
#define STB_GLOBAL   1
#define STB_WEAK   2
#define STB_LOPROC   13
#define STB_HIPROC   15
#define STT_NOTYPE   0
#define STT_OBJECT   1
#define STT_FUNC   2
#define STT_SECTION   3
#define STT_FILE   4
#define STT_LOPROC   13
#define STT_HIPROC   15

Typedefs

typedef int32_t elf32_sword
typedef uint32_t elf32_word
typedef uint32_t elf32_addr
typedef uint32_t elf32_off
typedef uint16_t elf32_half
typedef uint64_t elf64_addr
typedef uint64_t elf64_off
typedef uint64_t elf64_xword
typedef uint32_t elf64_word
typedef uint16_t elf64_half
typedef struct elf32_shdr elf_shdr_t
typedef struct elf32_sym elf_sym_t

Macro Definition Documentation

◆ DT_DEBUG

#define DT_DEBUG   21

Definition at line 111 of file elf.h.

◆ DT_FINI

#define DT_FINI   13

Definition at line 103 of file elf.h.

◆ DT_HASH

#define DT_HASH   4

Definition at line 94 of file elf.h.

◆ DT_HIPROC

#define DT_HIPROC   0x7fffffff

Definition at line 115 of file elf.h.

◆ DT_INIT

#define DT_INIT   12

Definition at line 102 of file elf.h.

◆ DT_JMPREL

#define DT_JMPREL   23

Definition at line 113 of file elf.h.

◆ DT_LOPROC

#define DT_LOPROC   0x70000000

Definition at line 114 of file elf.h.

◆ DT_NEEDED

#define DT_NEEDED   1

Definition at line 91 of file elf.h.

◆ DT_NULL

#define DT_NULL   0

Definition at line 90 of file elf.h.

◆ DT_PLTGOT

#define DT_PLTGOT   3

Definition at line 93 of file elf.h.

◆ DT_PLTREL

#define DT_PLTREL   20

Definition at line 110 of file elf.h.

◆ DT_PLTRELSZ

#define DT_PLTRELSZ   2

Definition at line 92 of file elf.h.

◆ DT_REL

#define DT_REL   17

Definition at line 107 of file elf.h.

◆ DT_RELA

#define DT_RELA   7

Definition at line 97 of file elf.h.

◆ DT_RELAENT

#define DT_RELAENT   9

Definition at line 99 of file elf.h.

◆ DT_RELASZ

#define DT_RELASZ   8

Definition at line 98 of file elf.h.

◆ DT_RELENT

#define DT_RELENT   19

Definition at line 109 of file elf.h.

◆ DT_RELSZ

#define DT_RELSZ   18

Definition at line 108 of file elf.h.

◆ DT_RPATH

#define DT_RPATH   15

Definition at line 105 of file elf.h.

◆ DT_SONAME

#define DT_SONAME   14

Definition at line 104 of file elf.h.

◆ DT_STRSZ

#define DT_STRSZ   10

Definition at line 100 of file elf.h.

◆ DT_STRTAB

#define DT_STRTAB   5

Definition at line 95 of file elf.h.

◆ DT_SYMBOLIC

#define DT_SYMBOLIC   16

Definition at line 106 of file elf.h.

◆ DT_SYMENT

#define DT_SYMENT   11

Definition at line 101 of file elf.h.

◆ DT_SYMTAB

#define DT_SYMTAB   6

Definition at line 96 of file elf.h.

◆ DT_TEXTREL

#define DT_TEXTREL   22

Definition at line 112 of file elf.h.

◆ EI_CLASS

#define EI_CLASS   4

Definition at line 50 of file elf.h.

Referenced by binfmt_elf_check(), and binfmt_elf_load_segments().

◆ EI_DATA

#define EI_DATA   5

Definition at line 51 of file elf.h.

◆ EI_MAG0

#define EI_MAG0   0

Definition at line 46 of file elf.h.

Referenced by binfmt_elf_check().

◆ EI_MAG1

#define EI_MAG1   1

Definition at line 47 of file elf.h.

Referenced by binfmt_elf_check().

◆ EI_MAG2

#define EI_MAG2   2

Definition at line 48 of file elf.h.

Referenced by binfmt_elf_check().

◆ EI_MAG3

#define EI_MAG3   3

Definition at line 49 of file elf.h.

Referenced by binfmt_elf_check().

◆ EI_NIDENT

#define EI_NIDENT   16

Definition at line 54 of file elf.h.

◆ EI_PAD

#define EI_PAD   7

Definition at line 53 of file elf.h.

◆ EI_VERSION

#define EI_VERSION   6

Definition at line 52 of file elf.h.

◆ ELF32_ST_BIND

#define ELF32_ST_BIND ( i)
Value:
((i) >> 4)

Definition at line 132 of file elf.h.

◆ ELF32_ST_INFO

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

Definition at line 134 of file elf.h.

◆ ELF32_ST_TYPE

#define ELF32_ST_TYPE ( i)
Value:
((i) & 0xf)

Definition at line 133 of file elf.h.

Referenced by symbol_of().

◆ ELFCLASS32

#define ELFCLASS32   1

Definition at line 62 of file elf.h.

◆ ELFCLASS64

#define ELFCLASS64   2

Definition at line 63 of file elf.h.

◆ ELFCLASSNONE

#define ELFCLASSNONE   0

Definition at line 61 of file elf.h.

◆ ELFMAG0

#define ELFMAG0   0x7f

Definition at line 56 of file elf.h.

Referenced by binfmt_elf_check().

◆ ELFMAG1

#define ELFMAG1   'E'

Definition at line 57 of file elf.h.

Referenced by binfmt_elf_check().

◆ ELFMAG2

#define ELFMAG2   'L'

Definition at line 58 of file elf.h.

Referenced by binfmt_elf_check().

◆ ELFMAG3

#define ELFMAG3   'F'

Definition at line 59 of file elf.h.

Referenced by binfmt_elf_check().

◆ EM_386

#define EM_386   0x0003

Definition at line 35 of file elf.h.

◆ EM_68K

#define EM_68K   0x0004

Definition at line 36 of file elf.h.

◆ EM_860

#define EM_860   0x0007

Definition at line 38 of file elf.h.

◆ EM_88K

#define EM_88K   0x0005

Definition at line 37 of file elf.h.

◆ EM_AARCH64

#define EM_AARCH64   0x00B7

Definition at line 41 of file elf.h.

◆ EM_M32

#define EM_M32   0x0001

Definition at line 33 of file elf.h.

◆ EM_MIPS

#define EM_MIPS   0x0008

Definition at line 39 of file elf.h.

◆ EM_NONE

#define EM_NONE   0x0000

Definition at line 32 of file elf.h.

◆ EM_SPARC

#define EM_SPARC   0x0002

Definition at line 34 of file elf.h.

◆ EM_X86_64

#define EM_X86_64   0x003E

Definition at line 40 of file elf.h.

◆ ET_CORE

#define ET_CORE   0x0004

Definition at line 28 of file elf.h.

◆ ET_DYN

#define ET_DYN   0x0003

Definition at line 27 of file elf.h.

◆ ET_EXEC

#define ET_EXEC   0x0002

Definition at line 26 of file elf.h.

◆ ET_HIPROC

#define ET_HIPROC   0xffff

Definition at line 30 of file elf.h.

◆ ET_LOPROC

#define ET_LOPROC   0xff00

Definition at line 29 of file elf.h.

◆ ET_NONE

#define ET_NONE   0x0000

Definition at line 24 of file elf.h.

◆ ET_REL

#define ET_REL   0x0001

Definition at line 25 of file elf.h.

◆ EV_CURRENT

#define EV_CURRENT   0x0001

Definition at line 44 of file elf.h.

◆ EV_NONE

#define EV_NONE   0x0000

Definition at line 43 of file elf.h.

◆ PF_MASKPROC

#define PF_MASKPROC   0xf0000000

Definition at line 130 of file elf.h.

◆ PF_R

#define PF_R   0x4

Definition at line 129 of file elf.h.

Referenced by binfmt_elf_load_segments().

◆ PF_W

#define PF_W   0x2

Definition at line 128 of file elf.h.

Referenced by binfmt_elf_load_segments().

◆ PF_X

#define PF_X   0x1

Definition at line 127 of file elf.h.

Referenced by binfmt_elf_load_segments().

◆ PT_DYNAMIC

#define PT_DYNAMIC   2

Definition at line 119 of file elf.h.

◆ PT_HIPROC

#define PT_HIPROC   0x7fffffff

Definition at line 125 of file elf.h.

◆ PT_INTERP

#define PT_INTERP   3

Definition at line 120 of file elf.h.

◆ PT_LOAD

#define PT_LOAD   1

Definition at line 118 of file elf.h.

Referenced by binfmt_elf_load_segments().

◆ PT_LOPROC

#define PT_LOPROC   0x70000000

Definition at line 124 of file elf.h.

◆ PT_NOTE

#define PT_NOTE   4

Definition at line 121 of file elf.h.

◆ PT_NULL

#define PT_NULL   0

Definition at line 117 of file elf.h.

◆ PT_PHDR

#define PT_PHDR   6

Definition at line 123 of file elf.h.

◆ PT_SHLIB

#define PT_SHLIB   5

Definition at line 122 of file elf.h.

◆ SHN_ABS

#define SHN_ABS   0xfff1

Definition at line 69 of file elf.h.

◆ SHN_COMMON

#define SHN_COMMON   0xfff2

Definition at line 70 of file elf.h.

◆ SHN_HIPROC

#define SHN_HIPROC   0xff1f

Definition at line 68 of file elf.h.

◆ SHN_HIRESERVE

#define SHN_HIRESERVE   0xffff

Definition at line 71 of file elf.h.

◆ SHN_LOPROC

#define SHN_LOPROC   0xff00

Definition at line 67 of file elf.h.

◆ SHN_LORESERVE

#define SHN_LORESERVE   0xff00

Definition at line 66 of file elf.h.

◆ SHN_UNDEF

#define SHN_UNDEF   0x0000

Definition at line 65 of file elf.h.

◆ SHT_DYNAMIC

#define SHT_DYNAMIC   6

Definition at line 79 of file elf.h.

◆ SHT_DYNSYM

#define SHT_DYNSYM   11

Definition at line 84 of file elf.h.

◆ SHT_HASH

#define SHT_HASH   5

Definition at line 78 of file elf.h.

◆ SHT_HIPROC

#define SHT_HIPROC   0x7fffffff

Definition at line 86 of file elf.h.

◆ SHT_HIUSER

#define SHT_HIUSER   0xffffffff

Definition at line 88 of file elf.h.

◆ SHT_LOPROC

#define SHT_LOPROC   0x70000000

Definition at line 85 of file elf.h.

◆ SHT_LOUSER

#define SHT_LOUSER   0x80000000

Definition at line 87 of file elf.h.

◆ SHT_NOBITS

#define SHT_NOBITS   8

Definition at line 81 of file elf.h.

◆ SHT_NOTE

#define SHT_NOTE   7

Definition at line 80 of file elf.h.

◆ SHT_NULL

#define SHT_NULL   0

Definition at line 73 of file elf.h.

◆ SHT_PROGBITS

#define SHT_PROGBITS   1

Definition at line 74 of file elf.h.

◆ SHT_REL

#define SHT_REL   9

Definition at line 82 of file elf.h.

◆ SHT_RELA

#define SHT_RELA   4

Definition at line 77 of file elf.h.

◆ SHT_SHLIB

#define SHT_SHLIB   10

Definition at line 83 of file elf.h.

◆ SHT_STRTAB

#define SHT_STRTAB   3

Definition at line 76 of file elf.h.

◆ SHT_SYMTAB

#define SHT_SYMTAB   2

Definition at line 75 of file elf.h.

Referenced by process_multiboot_info().

◆ STB_GLOBAL

#define STB_GLOBAL   1

Definition at line 137 of file elf.h.

◆ STB_HIPROC

#define STB_HIPROC   15

Definition at line 140 of file elf.h.

◆ STB_LOCAL

#define STB_LOCAL   0

Definition at line 136 of file elf.h.

◆ STB_LOPROC

#define STB_LOPROC   13

Definition at line 139 of file elf.h.

◆ STB_WEAK

#define STB_WEAK   2

Definition at line 138 of file elf.h.

◆ STT_FILE

#define STT_FILE   4

Definition at line 146 of file elf.h.

◆ STT_FUNC

#define STT_FUNC   2

Definition at line 144 of file elf.h.

Referenced by symbol_of().

◆ STT_HIPROC

#define STT_HIPROC   15

Definition at line 148 of file elf.h.

◆ STT_LOPROC

#define STT_LOPROC   13

Definition at line 147 of file elf.h.

◆ STT_NOTYPE

#define STT_NOTYPE   0

Definition at line 142 of file elf.h.

◆ STT_OBJECT

#define STT_OBJECT   1

Definition at line 143 of file elf.h.

◆ STT_SECTION

#define STT_SECTION   3

Definition at line 145 of file elf.h.

Typedef Documentation

◆ elf32_addr

Definition at line 14 of file elf.h.

◆ elf32_half

Definition at line 16 of file elf.h.

◆ elf32_off

Definition at line 15 of file elf.h.

◆ elf32_sword

Definition at line 12 of file elf.h.

◆ elf32_word

Definition at line 13 of file elf.h.

◆ elf64_addr

Definition at line 18 of file elf.h.

◆ elf64_half

Definition at line 22 of file elf.h.

◆ elf64_off

Definition at line 19 of file elf.h.

◆ elf64_word

Definition at line 21 of file elf.h.

◆ elf64_xword

Definition at line 20 of file elf.h.

◆ elf_shdr_t

typedef struct elf32_shdr elf_shdr_t

Definition at line 223 of file elf.h.

◆ elf_sym_t

typedef struct elf32_sym elf_sym_t

Definition at line 224 of file elf.h.