iPXE
elf.h
Go to the documentation of this file.
1 #ifndef ELF_H
2 #define ELF_H
3 
4 /**
5  * @file
6  *
7  * ELF headers
8  *
9  */
10 
11 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
12 
13 #include <stdint.h>
14 
20 
21 /** Length of ELF identifier */
22 #define EI_NIDENT 16
23 
24 /** ELF header */
25 typedef struct {
26  unsigned char e_ident[EI_NIDENT];
40 } Elf32_Ehdr;
41 
42 /* ELF identifier indexes */
43 #define EI_MAG0 0
44 #define EI_MAG1 1
45 #define EI_MAG2 2
46 #define EI_MAG3 3
47 #define EI_CLASS 4
48 #define EI_DATA 5
49 #define EI_VERSION 6
50 
51 /* ELF magic signature bytes */
52 #define ELFMAG0 0x7f
53 #define ELFMAG1 'E'
54 #define ELFMAG2 'L'
55 #define ELFMAG3 'F'
56 
57 /* ELF classes */
58 #define ELFCLASS32 1
59 
60 /* ELF data encodings */
61 #define ELFDATA2LSB 1
62 
63 /* ELF versions */
64 #define EV_CURRENT 1
65 
66 /** ELF program header */
67 typedef struct {
76 } Elf32_Phdr;
77 
78 /* ELF segment types */
79 #define PT_LOAD 1
80 
81 #endif /* ELF_H */
Elf32_Addr p_paddr
Definition: elf.h:71
unsigned short uint16_t
Definition: stdint.h:11
Elf32_Off e_shoff
Definition: elf.h:32
Elf32_Word e_version
Definition: elf.h:29
ELF header.
Definition: elf.h:25
Elf32_Word e_flags
Definition: elf.h:33
uint16_t Elf32_Half
Definition: elf.h:16
Elf32_Half e_type
Definition: elf.h:27
Elf32_Half e_shnum
Definition: elf.h:38
int32_t Elf32_Sword
Definition: elf.h:18
#define EI_NIDENT
Length of ELF identifier.
Definition: elf.h:22
Elf32_Half e_phentsize
Definition: elf.h:35
uint32_t Elf32_Word
Definition: elf.h:19
Elf32_Word p_memsz
Definition: elf.h:73
uint32_t Elf32_Addr
Definition: elf.h:15
Elf32_Word p_align
Definition: elf.h:75
Elf32_Half e_shstrndx
Definition: elf.h:39
FILE_LICENCE(GPL2_OR_LATER_OR_UBDL)
Elf32_Addr p_vaddr
Definition: elf.h:70
Elf32_Word p_filesz
Definition: elf.h:72
Elf32_Off e_phoff
Definition: elf.h:31
Elf32_Addr e_entry
Definition: elf.h:30
Elf32_Half e_shentsize
Definition: elf.h:37
uint32_t Elf32_Off
Definition: elf.h:17
Elf32_Word p_type
Definition: elf.h:68
unsigned int uint32_t
Definition: stdint.h:12
Elf32_Off p_offset
Definition: elf.h:69
Elf32_Half e_phnum
Definition: elf.h:36
signed int int32_t
Definition: stdint.h:17
Elf32_Half e_machine
Definition: elf.h:28
Elf32_Half e_ehsize
Definition: elf.h:34
Elf32_Word p_flags
Definition: elf.h:74
ELF program header.
Definition: elf.h:67