11 #define EI_NIDENT 16 /* Size of e_ident[] */
16 #define EI_MAG0 0 /* File identification byte 0 index */
17 #define ELFMAG0 0x7F /* Magic number byte 0 */
18 #define EI_MAG1 1 /* File identification byte 1 index */
19 #define ELFMAG1 'E' /* Magic number byte 1 */
20 #define EI_MAG2 2 /* File identification byte 2 index */
21 #define ELFMAG2 'L' /* Magic number byte 2 */
22 #define EI_MAG3 3 /* File identification byte 3 index */
23 #define ELFMAG3 'F' /* Magic number byte 3 */
26 * according to implementations of ELF Header
27 * unsigned char e_ident[16]; // ELF "magic number"
28 * unsigned char e_type[2]; // Identifies object file type
29 * unsigned char e_machine[2]; // Specifies required architecture
31 #define ELF_MACHINE_OFFSET 18
34 * Values for e_machine, which identifies the architecture. These numbers
35 * are officially assigned by registry@sco.com. See below for a list of
36 * ad-hoc numbers used during initial development.
37 * Please always sync them.
39 #define EM_386 3 /* Intel 80386 */
40 #define EM_486 6 /* Intel 80486 */
41 #define EM_860 7 /* Intel 80860 */
42 #define EM_960 19 /* Intel 80960 */
43 #define EM_ARM 40 /* ARM */
44 #define EM_IA_64 50 /* Intel IA-64 Processor */
45 #define EM_X86_64 62 /* AMD x86-64 architecture */
46 #define EM_8051 165 /* Intel 8051 and variants */
47 #define EM_L1OM 180 /* Intel L1OM */
48 #define EM_K1OM 181 /* Intel K1OM */
49 #define EM_INTEL182 182 /* Reserved by Intel */
50 #define EM_AARCH64 183 /* ARM 64-bit architecture */
51 #define EM_ARM184 184 /* Reserved by ARM */
52 #define EM_INTEL205 205 /* Reserved by Intel */
53 #define EM_INTEL206 206 /* Reserved by Intel */
54 #define EM_INTEL207 207 /* Reserved by Intel */
55 #define EM_INTEL208 208 /* Reserved by Intel */
56 #define EM_INTEL209 209 /* Reserved by Intel */
57 } // namespace android
58 #endif // _ELFLITE_H__