OSDN Git Service

Enable the PRC compatibility package feature for PRC market
[android-x86/frameworks-base.git] / core / jni / abipicker / ELFLite.h
1 #ifndef _ELFLITE_H__
2 #define _ELFLITE_H__
3
4 #include <ctype.h>
5 #include <fcntl.h>
6 #include <stdio.h>
7 #include <stdlib.h>
8 #include <unistd.h>
9
10 namespace android {
11 #define EI_NIDENT   16   /* Size of e_ident[] */
12
13 /*
14  * Fields in e_ident[]
15  */
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 */
24
25 /*
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
30  */
31 #define ELF_MACHINE_OFFSET  18
32
33 /*
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.
38  */
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__