]>
Commit | Line | Data |
---|---|---|
1 | #ifndef __ELF_H__ | |
2 | #define __ELF_H__ | |
3 | ||
4 | typedef struct { | |
5 | uint32_t p_type; | |
6 | uint32_t p_offset; | |
7 | uint32_t p_vaddr; | |
8 | uint32_t p_paddr; | |
9 | uint32_t p_filesz; | |
10 | uint32_t p_memsz; | |
11 | uint32_t p_flags; | |
12 | uint32_t p_align; | |
13 | } __attribute__((__packed__)) Elf32_Phdr; | |
14 | ||
15 | #define EI_NIDENT 16 | |
16 | ||
17 | typedef struct { | |
18 | unsigned char e_ident[EI_NIDENT]; | |
19 | uint16_t e_type; | |
20 | uint16_t e_machine; | |
21 | uint32_t e_version; | |
22 | uint32_t e_entry; | |
23 | uint32_t e_phoff; | |
24 | uint32_t e_shoff; | |
25 | uint32_t e_flags; | |
26 | uint16_t e_ehsize; | |
27 | uint16_t e_phentsize; | |
28 | uint16_t e_phnum; | |
29 | uint16_t e_shentsize; | |
30 | uint16_t e_shnum; | |
31 | uint16_t e_shtrndx; | |
32 | } __attribute__((__packed__)) Elf32_Ehdr; | |
33 | ||
34 | #define PT_NULL 0 | |
35 | #define PT_LOAD 1 | |
36 | #define PT_DYNAMIC 2 | |
37 | #define PT_INTERP 3 | |
38 | #define PT_NOTE 4 | |
39 | #define PT_SHLIB 5 | |
40 | #define PT_PHDR 6 | |
41 | #endif | |
42 |