POK(kernelpart)
elf.h
Go to the documentation of this file.
1 /*
2  * POK header
3  *
4  * The following file is a part of the POK project. Any modification should
5  * made according to the POK licence. You CANNOT use this file or a part of
6  * this file is this part of a file for your own project
7  *
8  * For more information on the POK licence, please see our LICENCE FILE
9  *
10  * Please follow the coding guidelines described in doc/CODING_GUIDELINES
11  *
12  * Copyright (c) 2007-2009 POK team
13  *
14  * Created by julien on Thu Jan 15 23:34:13 2009
15  */
16 
17 
18 #ifndef ELF_H_
19 # define ELF_H_
20 
25 
26 #define EI_NIDENT (16)
27 
28 typedef struct
29 {
30  unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */
31  Elf32_Half e_type; /* Object file type */
32  Elf32_Half e_machine; /* Architecture */
33  Elf32_Word e_version; /* Object file version */
34  Elf32_Addr e_entry; /* Entry point virtual address */
35  Elf32_Off e_phoff; /* Program header table file offset */
36  Elf32_Off e_shoff; /* Section header table file offset */
37  Elf32_Word e_flags; /* Processor-specific flags */
38  Elf32_Half e_ehsize; /* ELF header size in bytes */
39  Elf32_Half e_phentsize; /* Program header table entry size */
40  Elf32_Half e_phnum; /* Program header table entry count */
41  Elf32_Half e_shentsize; /* Section header table entry size */
42  Elf32_Half e_shnum; /* Section header table entry count */
43  Elf32_Half e_shstrndx; /* Section header string table index */
44 } Elf32_Ehdr;
45 
46 /* Program segment header. */
47 
48 typedef struct
49 {
50  Elf32_Word p_type; /* Segment type */
51  Elf32_Off p_offset; /* Segment file offset */
52  Elf32_Addr p_vaddr; /* Segment virtual address */
53  Elf32_Addr p_paddr; /* Segment physical address */
54  Elf32_Word p_filesz; /* Segment size in file */
55  Elf32_Word p_memsz; /* Segment size in memory */
56  Elf32_Word p_flags; /* Segment flags */
57  Elf32_Word p_align; /* Segment alignment */
58 } Elf32_Phdr;
59 
60 #endif /* !ELF_H_ */