Upstream version 8.36.161.0
[platform/framework/web/crosswalk.git] / src / third_party / pyelftools / elftools / elf / enums.py
1 #-------------------------------------------------------------------------------
2 # elftools: elf/enums.py
3 #
4 # Mappings of enum names to values
5 #
6 # Eli Bendersky (eliben@gmail.com)
7 # This code is in the public domain
8 #-------------------------------------------------------------------------------
9 from ..construct import Pass
10
11
12 # e_ident[EI_CLASS] in the ELF header
13 ENUM_EI_CLASS = dict(
14     ELFCLASSNONE=0,
15     ELFCLASS32=1,
16     ELFCLASS64=2
17 )
18
19 # e_ident[EI_DATA] in the ELF header
20 ENUM_EI_DATA = dict(
21     ELFDATANONE=0,
22     ELFDATA2LSB=1,
23     ELFDATA2MSB=2
24 )
25
26 # e_version in the ELF header
27 ENUM_E_VERSION = dict(
28     EV_NONE=0,
29     EV_CURRENT=1,
30     _default_=Pass,
31 )
32
33 # e_ident[EI_OSABI] in the ELF header
34 ENUM_EI_OSABI = dict(
35     ELFOSABI_SYSV=0,
36     ELFOSABI_HPUX=1,
37     ELFOSABI_NETBSD=2,
38     ELFOSABI_LINUX=3,
39     ELFOSABI_HURD=4,
40     ELFOSABI_SOLARIS=6,
41     ELFOSABI_AIX=7,
42     ELFOSABI_IRIX=8,
43     ELFOSABI_FREEBSD=9,
44     ELFOSABI_TRU64=10,
45     ELFOSABI_MODESTO=11,
46     ELFOSABI_OPENBSD=12,
47     ELFOSABI_OPENVMS=13,
48     ELFOSABI_NSK=14,
49     ELFOSABI_AROS=15,
50     ELFOSABI_ARM=97,
51     ELFOSABI_STANDALONE=255,
52     _default_=Pass,
53 )
54
55 # e_type in the ELF header
56 ENUM_E_TYPE = dict(
57     ET_NONE=0,
58     ET_REL=1,
59     ET_EXEC=2,
60     ET_DYN=3,
61     ET_CORE=4,
62     ET_LOPROC=0xff00,
63     ET_HIPROC=0xffff,
64     _default_=Pass,
65 )
66
67 # e_machine in the ELF header
68 # (this list is currently somewhat partial...)
69 ENUM_E_MACHINE = dict(
70     EM_NONE=0,
71     EM_M32=1,
72     EM_SPARC=2,
73     EM_386=3,
74     EM_68K=4,
75     EM_88K=5,
76     EM_486=6,
77     EM_860=7,
78     EM_MIPS=8,
79     EM_S370=9,
80     EM_MIPS_RS4_BE=10,
81     EM_IA_64=50,
82     EM_X86_64=62,
83     EM_AVR=83,
84     EM_L10M=180,
85     _default_=Pass,
86 )
87
88 # sh_type in the section header
89 ENUM_SH_TYPE = dict(
90     SHT_NULL=0,
91     SHT_PROGBITS=1,
92     SHT_SYMTAB=2,
93     SHT_STRTAB=3,
94     SHT_RELA=4,
95     SHT_HASH=5,
96     SHT_DYNAMIC=6,
97     SHT_NOTE=7,
98     SHT_NOBITS=8,
99     SHT_REL=9,
100     SHT_SHLIB=10,
101     SHT_DYNSYM=11,
102     SHT_INIT_ARRAY=14,
103     SHT_FINI_ARRAY=15,
104     SHT_PREINIT_ARRAY=16,
105     SHT_GROUP=17,
106     SHT_SYMTAB_SHNDX=18,
107     SHT_NUM=19,
108     SHT_LOOS=0x60000000,
109     SHT_GNU_HASH=0x6ffffff6,
110     SHT_GNU_verdef=0x6ffffffd,
111     SHT_GNU_verneed=0x6ffffffe,
112     SHT_GNU_versym=0x6fffffff,
113     SHT_LOPROC=0x70000000,
114     SHT_HIPROC=0x7fffffff,
115     SHT_LOUSER=0x80000000,
116     SHT_HIUSER=0xffffffff,
117     SHT_AMD64_UNWIND=0x70000001,
118     _default_=Pass,
119 )
120
121 # p_type in the program header
122 # some values scavenged from the ELF headers in binutils-2.21
123 ENUM_P_TYPE = dict(
124     PT_NULL=0,
125     PT_LOAD=1,
126     PT_DYNAMIC=2,
127     PT_INTERP=3,
128     PT_NOTE=4,
129     PT_SHLIB=5,
130     PT_PHDR=6,
131     PT_TLS=7,
132     PT_LOPROC=0x70000000,
133     PT_HIPROC=0x7fffffff,
134     PT_GNU_EH_FRAME=0x6474e550,
135     PT_GNU_STACK=0x6474e551,
136     PT_GNU_RELRO=0x6474e552,
137     _default_=Pass,
138 )
139
140 # st_info bindings in the symbol header
141 ENUM_ST_INFO_BIND = dict(
142     STB_LOCAL=0,
143     STB_GLOBAL=1,
144     STB_WEAK=2,
145     STB_NUM=3,
146     STB_LOOS=10,
147     STB_HIOS=12,
148     STB_LOPROC=13,
149     STB_HIPROC=15,
150     _default_=Pass,
151 )
152
153 # st_info type in the symbol header
154 ENUM_ST_INFO_TYPE = dict(
155     STT_NOTYPE=0,
156     STT_OBJECT=1,
157     STT_FUNC=2,
158     STT_SECTION=3,
159     STT_FILE=4,
160     STT_COMMON=5,
161     STT_TLS=6,
162     STT_NUM=7,
163     STT_RELC=8,
164     STT_SRELC=9,
165     STT_LOOS=10,
166     STT_HIOS=12,
167     STT_LOPROC=13,
168     STT_HIPROC=15,
169     _default_=Pass,
170 )
171
172 # visibility from st_other
173 ENUM_ST_VISIBILITY = dict(
174     STV_DEFAULT=0,
175     STV_INTERNAL=1,
176     STV_HIDDEN=2,
177     STV_PROTECTED=3,
178     _default_=Pass,
179 )
180
181 # st_shndx
182 ENUM_ST_SHNDX = dict(
183     SHN_UNDEF=0,
184     SHN_ABS=0xfff1,
185     SHN_COMMON=0xfff2,
186     _default_=Pass,
187 )
188
189 # d_tag
190 ENUM_D_TAG = dict(
191     DT_NULL=0,
192     DT_NEEDED=1,
193     DT_PLTRELSZ=2,
194     DT_PLTGOT=3,
195     DT_HASH=4,
196     DT_STRTAB=5,
197     DT_SYMTAB=6,
198     DT_RELA=7,
199     DT_RELASZ=8,
200     DT_RELAENT=9,
201     DT_STRSZ=10,
202     DT_SYMENT=11,
203     DT_INIT=12,
204     DT_FINI=13,
205     DT_SONAME=14,
206     DT_RPATH=15,
207     DT_SYMBOLIC=16,
208     DT_REL=17,
209     DT_RELSZ=18,
210     DT_RELENT=19,
211     DT_PLTREL=20,
212     DT_DEBUG=21,
213     DT_TEXTREL=22,
214     DT_JMPREL=23,
215     DT_BIND_NOW=24,
216     DT_INIT_ARRAY=25,
217     DT_FINI_ARRAY=26,
218     DT_INIT_ARRAYSZ=27,
219     DT_FINI_ARRAYSZ=28,
220     DT_RUNPATH=29,
221     DT_FLAGS=30,
222     DT_ENCODING=32,
223     DT_PREINIT_ARRAY=32,
224     DT_PREINIT_ARRAYSZ=33,
225     DT_NUM=34,
226     DT_LOOS=0x6000000d,
227     DT_HIOS=0x6ffff000,
228     DT_LOPROC=0x70000000,
229     DT_HIPROC=0x7fffffff,
230     DT_PROCNUM=0x35,
231     DT_VALRNGLO=0x6ffffd00,
232     DT_GNU_PRELINKED=0x6ffffdf5,
233     DT_GNU_CONFLICTSZ=0x6ffffdf6,
234     DT_GNU_LIBLISTSZ=0x6ffffdf7,
235     DT_CHECKSUM=0x6ffffdf8,
236     DT_PLTPADSZ=0x6ffffdf9,
237     DT_MOVEENT=0x6ffffdfa,
238     DT_MOVESZ=0x6ffffdfb,
239     DT_SYMINSZ=0x6ffffdfe,
240     DT_SYMINENT=0x6ffffdff,
241     DT_GNU_HASH=0x6ffffef5,
242     DT_TLSDESC_PLT=0x6ffffef6,
243     DT_TLSDESC_GOT=0x6ffffef7,
244     DT_GNU_CONFLICT=0x6ffffef8,
245     DT_GNU_LIBLIST=0x6ffffef9,
246     DT_CONFIG=0x6ffffefa,
247     DT_DEPAUDIT=0x6ffffefb,
248     DT_AUDIT=0x6ffffefc,
249     DT_PLTPAD=0x6ffffefd,
250     DT_MOVETAB=0x6ffffefe,
251     DT_SYMINFO=0x6ffffeff,
252     DT_VERSYM=0x6ffffff0,
253     DT_RELACOUNT=0x6ffffff9,
254     DT_RELCOUNT=0x6ffffffa,
255     DT_FLAGS_1=0x6ffffffb,
256     DT_VERDEF=0x6ffffffc,
257     DT_VERDEFNUM=0x6ffffffd,
258     DT_VERNEED=0x6ffffffe,
259     DT_VERNEEDNUM=0x6fffffff,
260     DT_AUXILIARY=0x7ffffffd,
261     DT_FILTER=0x7fffffff,
262     _default_=Pass,
263 )
264
265 ENUM_RELOC_TYPE_i386 = dict(
266     R_386_NONE=0,
267     R_386_32=1,
268     R_386_PC32=2,
269     R_386_GOT32=3,
270     R_386_PLT32=4,
271     R_386_COPY=5,
272     R_386_GLOB_DAT=6,
273     R_386_JUMP_SLOT=7,
274     R_386_RELATIVE=8,
275     R_386_GOTOFF=9,
276     R_386_GOTPC=10,
277     R_386_32PLT=11,
278     R_386_TLS_TPOFF=14,
279     R_386_TLS_IE=15,
280     R_386_TLS_GOTIE=16,
281     R_386_TLS_LE=17,
282     R_386_TLS_GD=18,
283     R_386_TLS_LDM=19,
284     R_386_16=20,
285     R_386_PC16=21,
286     R_386_8=22,
287     R_386_PC8=23,
288     R_386_TLS_GD_32=24,
289     R_386_TLS_GD_PUSH=25,
290     R_386_TLS_GD_CALL=26,
291     R_386_TLS_GD_POP=27,
292     R_386_TLS_LDM_32=28,
293     R_386_TLS_LDM_PUSH=29,
294     R_386_TLS_LDM_CALL=30,
295     R_386_TLS_LDM_POP=31,
296     R_386_TLS_LDO_32=32,
297     R_386_TLS_IE_32=33,
298     R_386_TLS_LE_32=34,
299     R_386_TLS_DTPMOD32=35,
300     R_386_TLS_DTPOFF32=36,
301     R_386_TLS_TPOFF32=37,
302     R_386_TLS_GOTDESC=39,
303     R_386_TLS_DESC_CALL=40,
304     R_386_TLS_DESC=41,
305     R_386_IRELATIVE=42,
306     R_386_USED_BY_INTEL_200=200,
307     R_386_GNU_VTINHERIT=250,
308     R_386_GNU_VTENTRY=251,
309     _default_=Pass,
310 )
311
312 ENUM_RELOC_TYPE_x64 = dict(
313     R_X86_64_NONE=0,
314     R_X86_64_64=1,
315     R_X86_64_PC32=2,
316     R_X86_64_GOT32=3,
317     R_X86_64_PLT32=4,
318     R_X86_64_COPY=5,
319     R_X86_64_GLOB_DAT=6,
320     R_X86_64_JUMP_SLOT=7,
321     R_X86_64_RELATIVE=8,
322     R_X86_64_GOTPCREL=9,
323     R_X86_64_32=10,
324     R_X86_64_32S=11,
325     R_X86_64_16=12,
326     R_X86_64_PC16=13,
327     R_X86_64_8=14,
328     R_X86_64_PC8=15,
329     R_X86_64_DTPMOD64=16,
330     R_X86_64_DTPOFF64=17,
331     R_X86_64_TPOFF64=18,
332     R_X86_64_TLSGD=19,
333     R_X86_64_TLSLD=20,
334     R_X86_64_DTPOFF32=21,
335     R_X86_64_GOTTPOFF=22,
336     R_X86_64_TPOFF32=23,
337     R_X86_64_PC64=24,
338     R_X86_64_GOTOFF64=25,
339     R_X86_64_GOTPC32=26,
340     R_X86_64_GOT64=27,
341     R_X86_64_GOTPCREL64=28,
342     R_X86_64_GOTPC64=29,
343     R_X86_64_GOTPLT64=30,
344     R_X86_64_PLTOFF64=31,
345     R_X86_64_GOTPC32_TLSDESC=34,
346     R_X86_64_TLSDESC_CALL=35,
347     R_X86_64_TLSDESC=36,
348     R_X86_64_IRELATIVE=37,
349     R_X86_64_GNU_VTINHERIT=250,
350     R_X86_64_GNU_VTENTRY=251,
351     _default_=Pass,
352 )
353