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#-------------------------------------------------------------------------------
9from ..construct import Pass
10
11
12# e_ident[EI_CLASS] in the ELF header
13ENUM_EI_CLASS = dict(
14    ELFCLASSNONE=0,
15    ELFCLASS32=1,
16    ELFCLASS64=2
17)
18
19# e_ident[EI_DATA] in the ELF header
20ENUM_EI_DATA = dict(
21    ELFDATANONE=0,
22    ELFDATA2LSB=1,
23    ELFDATA2MSB=2
24)
25
26# e_version in the ELF header
27ENUM_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
34ENUM_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_AEABI=64,
51    ELFOSABI_ARM=97,
52    ELFOSABI_STANDALONE=255,
53    _default_=Pass,
54)
55
56# e_type in the ELF header
57ENUM_E_TYPE = dict(
58    ET_NONE=0,
59    ET_REL=1,
60    ET_EXEC=2,
61    ET_DYN=3,
62    ET_CORE=4,
63    ET_LOPROC=0xff00,
64    ET_HIPROC=0xffff,
65    _default_=Pass,
66)
67
68# e_machine in the ELF header
69ENUM_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_860=7,
77    EM_MIPS=8,
78    EM_S370=9,
79    EM_MIPS_RS3_LE=10,
80    EM_PARISC=15,
81    EM_VPP500=17,
82    EM_SPARC32PLUS=18,
83    EM_960=19,
84    EM_PPC=20,
85    EM_PPC64=21,
86    EM_S390=22,
87    EM_V800=36,
88    EM_FR20=37,
89    EM_RH32=38,
90    EM_RCE=39,
91    EM_ARM=40,
92    EM_ALPHA=41,
93    EM_SH=42,
94    EM_SPARCV9=43,
95    EM_TRICORE=44,
96    EM_ARC=45,
97    EM_H8_300=46,
98    EM_H8_300H=47,
99    EM_H8S=48,
100    EM_H8_500=49,
101    EM_IA_64=50,
102    EM_MIPS_X=51,
103    EM_COLDFIRE=52,
104    EM_68HC12=53,
105    EM_MMA=54,
106    EM_PCP=55,
107    EM_NCPU=56,
108    EM_NDR1=57,
109    EM_STARCORE=58,
110    EM_ME16=59,
111    EM_ST100=60,
112    EM_TINYJ=61,
113    EM_X86_64=62,
114    EM_PDSP=63,
115    EM_PDP10=64,
116    EM_PDP11=65,
117    EM_FX66=66,
118    EM_ST9PLUS=67,
119    EM_ST7=68,
120    EM_68HC16=69,
121    EM_68HC11=70,
122    EM_68HC08=71,
123    EM_68HC05=72,
124    EM_SVX=73,
125    EM_ST19=74,
126    EM_VAX=75,
127    EM_CRIS=76,
128    EM_JAVELIN=77,
129    EM_FIREPATH=78,
130    EM_ZSP=79,
131    EM_MMIX=80,
132    EM_HUANY=81,
133    EM_PRISM=82,
134    EM_AVR=83,
135    EM_FR30=84,
136    EM_D10V=85,
137    EM_D30V=86,
138    EM_V850=87,
139    EM_M32R=88,
140    EM_MN10300=89,
141    EM_MN10200=90,
142    EM_PJ=91,
143    EM_OPENRISC=92,
144    EM_ARC_A5=93,
145    EM_XTENSA=94,
146    EM_VIDEOCORE=95,
147    EM_TMM_GPP=96,
148    EM_NS32K=97,
149    EM_TPC=98,
150    EM_SNP1K=99,
151    EM_ST200=100,
152    EM_IP2K=101,
153    EM_MAX=102,
154    EM_CR=103,
155    EM_F2MC16=104,
156    EM_MSP430=105,
157    EM_BLACKFIN=106,
158    EM_SE_C33=107,
159    EM_SEP=108,
160    EM_ARCA=109,
161    EM_UNICORE=110,
162    EM_L10M=180,
163    EM_AARCH64=183,
164    _default_=Pass,
165)
166
167# sh_type in the section header
168ENUM_SH_TYPE = dict(
169    SHT_NULL=0,
170    SHT_PROGBITS=1,
171    SHT_SYMTAB=2,
172    SHT_STRTAB=3,
173    SHT_RELA=4,
174    SHT_HASH=5,
175    SHT_DYNAMIC=6,
176    SHT_NOTE=7,
177    SHT_NOBITS=8,
178    SHT_REL=9,
179    SHT_SHLIB=10,
180    SHT_DYNSYM=11,
181    SHT_INIT_ARRAY=14,
182    SHT_FINI_ARRAY=15,
183    SHT_PREINIT_ARRAY=16,
184    SHT_GROUP=17,
185    SHT_SYMTAB_SHNDX=18,
186    SHT_NUM=19,
187    SHT_LOOS=0x60000000,
188    SHT_GNU_HASH=0x6ffffff6,
189    SHT_GNU_verdef=0x6ffffffd,  # also SHT_SUNW_verdef
190    SHT_GNU_verneed=0x6ffffffe, # also SHT_SUNW_verneed
191    SHT_GNU_versym=0x6fffffff,  # also SHT_SUNW_versym
192    SHT_LOPROC=0x70000000,
193    SHT_HIPROC=0x7fffffff,
194    SHT_LOUSER=0x80000000,
195    SHT_HIUSER=0xffffffff,
196    SHT_AMD64_UNWIND=0x70000001,
197    SHT_SUNW_LDYNSYM=0x6ffffff3,
198    SHT_SUNW_syminfo=0x6ffffffc,
199    SHT_ARM_EXIDX=0x70000001,
200    SHT_ARM_PREEMPTMAP=0x70000002,
201    SHT_ARM_ATTRIBUTES=0x70000003,
202    SHT_ARM_DEBUGOVERLAY=0x70000004,
203    _default_=Pass,
204)
205
206# p_type in the program header
207# some values scavenged from the ELF headers in binutils-2.21
208ENUM_P_TYPE = dict(
209    PT_NULL=0,
210    PT_LOAD=1,
211    PT_DYNAMIC=2,
212    PT_INTERP=3,
213    PT_NOTE=4,
214    PT_SHLIB=5,
215    PT_PHDR=6,
216    PT_TLS=7,
217    PT_LOPROC=0x70000000,
218    PT_HIPROC=0x7fffffff,
219    PT_GNU_EH_FRAME=0x6474e550,
220    PT_GNU_STACK=0x6474e551,
221    PT_GNU_RELRO=0x6474e552,
222    PT_ARM_ARCHEXT=0x70000000,
223    PT_ARM_EXIDX=0x70000001,
224    PT_ARM_UNWIND=0x70000001,
225    PT_AARCH64_ARCHEXT=0x70000000,
226    PT_AARCH64_UNWIND=0x70000001,
227    _default_=Pass,
228)
229
230# st_info bindings in the symbol header
231ENUM_ST_INFO_BIND = dict(
232    STB_LOCAL=0,
233    STB_GLOBAL=1,
234    STB_WEAK=2,
235    STB_NUM=3,
236    STB_LOOS=10,
237    STB_HIOS=12,
238    STB_LOPROC=13,
239    STB_HIPROC=15,
240    _default_=Pass,
241)
242
243# st_info type in the symbol header
244ENUM_ST_INFO_TYPE = dict(
245    STT_NOTYPE=0,
246    STT_OBJECT=1,
247    STT_FUNC=2,
248    STT_SECTION=3,
249    STT_FILE=4,
250    STT_COMMON=5,
251    STT_TLS=6,
252    STT_NUM=7,
253    STT_RELC=8,
254    STT_SRELC=9,
255    STT_LOOS=10,
256    STT_HIOS=12,
257    STT_LOPROC=13,
258    STT_HIPROC=15,
259    _default_=Pass,
260)
261
262# visibility from st_other
263ENUM_ST_VISIBILITY = dict(
264    STV_DEFAULT=0,
265    STV_INTERNAL=1,
266    STV_HIDDEN=2,
267    STV_PROTECTED=3,
268    STV_EXPORTED=4,
269    STV_SINGLETON=5,
270    STV_ELIMINATE=6,
271    _default_=Pass,
272)
273
274# st_shndx
275ENUM_ST_SHNDX = dict(
276    SHN_UNDEF=0,
277    SHN_ABS=0xfff1,
278    SHN_COMMON=0xfff2,
279    _default_=Pass,
280)
281
282# d_tag
283ENUM_D_TAG = dict(
284    DT_NULL=0,
285    DT_NEEDED=1,
286    DT_PLTRELSZ=2,
287    DT_PLTGOT=3,
288    DT_HASH=4,
289    DT_STRTAB=5,
290    DT_SYMTAB=6,
291    DT_RELA=7,
292    DT_RELASZ=8,
293    DT_RELAENT=9,
294    DT_STRSZ=10,
295    DT_SYMENT=11,
296    DT_INIT=12,
297    DT_FINI=13,
298    DT_SONAME=14,
299    DT_RPATH=15,
300    DT_SYMBOLIC=16,
301    DT_REL=17,
302    DT_RELSZ=18,
303    DT_RELENT=19,
304    DT_PLTREL=20,
305    DT_DEBUG=21,
306    DT_TEXTREL=22,
307    DT_JMPREL=23,
308    DT_BIND_NOW=24,
309    DT_INIT_ARRAY=25,
310    DT_FINI_ARRAY=26,
311    DT_INIT_ARRAYSZ=27,
312    DT_FINI_ARRAYSZ=28,
313    DT_RUNPATH=29,
314    DT_FLAGS=30,
315    DT_ENCODING=32,
316    DT_PREINIT_ARRAY=32,
317    DT_PREINIT_ARRAYSZ=33,
318    DT_NUM=34,
319    DT_LOOS=0x6000000d,
320    DT_SUNW_AUXILIARY=0x6000000d,
321    DT_SUNW_RTLDINF=0x6000000e,
322    DT_SUNW_FILTER=0x6000000f,
323    DT_SUNW_CAP=0x60000010,
324    DT_SUNW_SYMTAB=0x60000011,
325    DT_SUNW_SYMSZ=0x60000012,
326    DT_SUNW_ENCODING=0x60000013,
327    DT_SUNW_SORTENT=0x60000013,
328    DT_SUNW_SYMSORT=0x60000014,
329    DT_SUNW_SYMSORTSZ=0x60000015,
330    DT_SUNW_TLSSORT=0x60000016,
331    DT_SUNW_TLSSORTSZ=0x60000017,
332    DT_SUNW_CAPINFO=0x60000018,
333    DT_SUNW_STRPAD=0x60000019,
334    DT_SUNW_CAPCHAIN=0x6000001a,
335    DT_SUNW_LDMACH=0x6000001b,
336    DT_SUNW_CAPCHAINENT=0x6000001d,
337    DT_SUNW_CAPCHAINSZ=0x6000001f,
338    DT_HIOS=0x6ffff000,
339    DT_LOPROC=0x70000000,
340    DT_HIPROC=0x7fffffff,
341    DT_PROCNUM=0x35,
342    DT_VALRNGLO=0x6ffffd00,
343    DT_GNU_PRELINKED=0x6ffffdf5,
344    DT_GNU_CONFLICTSZ=0x6ffffdf6,
345    DT_GNU_LIBLISTSZ=0x6ffffdf7,
346    DT_CHECKSUM=0x6ffffdf8,
347    DT_PLTPADSZ=0x6ffffdf9,
348    DT_MOVEENT=0x6ffffdfa,
349    DT_MOVESZ=0x6ffffdfb,
350    DT_SYMINSZ=0x6ffffdfe,
351    DT_SYMINENT=0x6ffffdff,
352    DT_GNU_HASH=0x6ffffef5,
353    DT_TLSDESC_PLT=0x6ffffef6,
354    DT_TLSDESC_GOT=0x6ffffef7,
355    DT_GNU_CONFLICT=0x6ffffef8,
356    DT_GNU_LIBLIST=0x6ffffef9,
357    DT_CONFIG=0x6ffffefa,
358    DT_DEPAUDIT=0x6ffffefb,
359    DT_AUDIT=0x6ffffefc,
360    DT_PLTPAD=0x6ffffefd,
361    DT_MOVETAB=0x6ffffefe,
362    DT_SYMINFO=0x6ffffeff,
363    DT_VERSYM=0x6ffffff0,
364    DT_RELACOUNT=0x6ffffff9,
365    DT_RELCOUNT=0x6ffffffa,
366    DT_FLAGS_1=0x6ffffffb,
367    DT_VERDEF=0x6ffffffc,
368    DT_VERDEFNUM=0x6ffffffd,
369    DT_VERNEED=0x6ffffffe,
370    DT_VERNEEDNUM=0x6fffffff,
371    DT_AUXILIARY=0x7ffffffd,
372    DT_FILTER=0x7fffffff,
373    _default_=Pass,
374)
375
376ENUM_RELOC_TYPE_i386 = dict(
377    R_386_NONE=0,
378    R_386_32=1,
379    R_386_PC32=2,
380    R_386_GOT32=3,
381    R_386_PLT32=4,
382    R_386_COPY=5,
383    R_386_GLOB_DAT=6,
384    R_386_JUMP_SLOT=7,
385    R_386_RELATIVE=8,
386    R_386_GOTOFF=9,
387    R_386_GOTPC=10,
388    R_386_32PLT=11,
389    R_386_TLS_TPOFF=14,
390    R_386_TLS_IE=15,
391    R_386_TLS_GOTIE=16,
392    R_386_TLS_LE=17,
393    R_386_TLS_GD=18,
394    R_386_TLS_LDM=19,
395    R_386_16=20,
396    R_386_PC16=21,
397    R_386_8=22,
398    R_386_PC8=23,
399    R_386_TLS_GD_32=24,
400    R_386_TLS_GD_PUSH=25,
401    R_386_TLS_GD_CALL=26,
402    R_386_TLS_GD_POP=27,
403    R_386_TLS_LDM_32=28,
404    R_386_TLS_LDM_PUSH=29,
405    R_386_TLS_LDM_CALL=30,
406    R_386_TLS_LDM_POP=31,
407    R_386_TLS_LDO_32=32,
408    R_386_TLS_IE_32=33,
409    R_386_TLS_LE_32=34,
410    R_386_TLS_DTPMOD32=35,
411    R_386_TLS_DTPOFF32=36,
412    R_386_TLS_TPOFF32=37,
413    R_386_TLS_GOTDESC=39,
414    R_386_TLS_DESC_CALL=40,
415    R_386_TLS_DESC=41,
416    R_386_IRELATIVE=42,
417    R_386_USED_BY_INTEL_200=200,
418    R_386_GNU_VTINHERIT=250,
419    R_386_GNU_VTENTRY=251,
420    _default_=Pass,
421)
422
423ENUM_RELOC_TYPE_x64 = dict(
424    R_X86_64_NONE=0,
425    R_X86_64_64=1,
426    R_X86_64_PC32=2,
427    R_X86_64_GOT32=3,
428    R_X86_64_PLT32=4,
429    R_X86_64_COPY=5,
430    R_X86_64_GLOB_DAT=6,
431    R_X86_64_JUMP_SLOT=7,
432    R_X86_64_RELATIVE=8,
433    R_X86_64_GOTPCREL=9,
434    R_X86_64_32=10,
435    R_X86_64_32S=11,
436    R_X86_64_16=12,
437    R_X86_64_PC16=13,
438    R_X86_64_8=14,
439    R_X86_64_PC8=15,
440    R_X86_64_DTPMOD64=16,
441    R_X86_64_DTPOFF64=17,
442    R_X86_64_TPOFF64=18,
443    R_X86_64_TLSGD=19,
444    R_X86_64_TLSLD=20,
445    R_X86_64_DTPOFF32=21,
446    R_X86_64_GOTTPOFF=22,
447    R_X86_64_TPOFF32=23,
448    R_X86_64_PC64=24,
449    R_X86_64_GOTOFF64=25,
450    R_X86_64_GOTPC32=26,
451    R_X86_64_GOT64=27,
452    R_X86_64_GOTPCREL64=28,
453    R_X86_64_GOTPC64=29,
454    R_X86_64_GOTPLT64=30,
455    R_X86_64_PLTOFF64=31,
456    R_X86_64_GOTPC32_TLSDESC=34,
457    R_X86_64_TLSDESC_CALL=35,
458    R_X86_64_TLSDESC=36,
459    R_X86_64_IRELATIVE=37,
460    R_X86_64_GNU_VTINHERIT=250,
461    R_X86_64_GNU_VTENTRY=251,
462    _default_=Pass,
463)
464
465# Sunw Syminfo Bound To special values
466ENUM_SUNW_SYMINFO_BOUNDTO = dict(
467    SYMINFO_BT_SELF=0xffff,
468    SYMINFO_BT_PARENT=0xfffe,
469    SYMINFO_BT_NONE=0xfffd,
470    SYMINFO_BT_EXTERN=0xfffc,
471    _default_=Pass,
472)
473
474# Versym section, version dependency index
475ENUM_VERSYM = dict(
476    VER_NDX_LOCAL=0,
477    VER_NDX_GLOBAL=1,
478    VER_NDX_LORESERVE=0xff00,
479    VER_NDX_ELIMINATE=0xff01,
480    _default_=Pass,
481)
482# Sunw Syminfo Bound To special values
483ENUM_SUNW_SYMINFO_BOUNDTO = dict(
484    SYMINFO_BT_SELF=0xffff,
485    SYMINFO_BT_PARENT=0xfffe,
486    SYMINFO_BT_NONE=0xfffd,
487    SYMINFO_BT_EXTERN=0xfffc,
488    _default_=Pass,
489)
490
491ENUM_RELOC_TYPE_ARM = dict(
492    R_ARM_NONE=0,
493    R_ARM_PC24=1,
494    R_ARM_ABS32=2,
495    R_ARM_REL32=3,
496    R_ARM_LDR_PC_G0=4,
497    R_ARM_ABS16=5,
498    R_ARM_ABS12=6,
499    R_ARM_THM_ABS5=7,
500    R_ARM_ABS8=8,
501    R_ARM_SBREL32=9,
502    R_ARM_THM_CALL=10,
503    R_ARM_THM_PC8=11,
504    R_ARM_BREL_ADJ=12,
505    R_ARM_SWI24=13,
506    R_ARM_THM_SWI8=14,
507    R_ARM_XPC25=15,
508    R_ARM_THM_XPC22=16,
509    R_ARM_TLS_DTPMOD32=17,
510    R_ARM_TLS_DTPOFF32=18,
511    R_ARM_TLS_TPOFF32=19,
512    R_ARM_COPY=20,
513    R_ARM_GLOB_DAT=21,
514    R_ARM_JUMP_SLOT=22,
515    R_ARM_RELATIVE=23,
516    R_ARM_GOTOFF32=24,
517    R_ARM_BASE_PREL=25,
518    R_ARM_GOT_BREL=26,
519    R_ARM_PLT32=27,
520    R_ARM_CALL=28,
521    R_ARM_JUMP24=29,
522    R_ARM_THM_JUMP24=30,
523    R_ARM_BASE_ABS=31,
524    R_ARM_ALU_PCREL_7_0=32,
525    R_ARM_ALU_PCREL_15_8=33,
526    R_ARM_ALU_PCREL_23_15=34,
527    R_ARM_LDR_SBREL_11_0_NC=35,
528    R_ARM_ALU_SBREL_19_12_NC=36,
529    R_ARM_ALU_SBREL_27_20_CK=37,
530    R_ARM_TARGET1=38,
531    R_ARM_SBREL31=39,
532    R_ARM_V4BX=40,
533    R_ARM_TARGET2=41,
534    R_ARM_PREL31=42,
535    R_ARM_MOVW_ABS_NC=43,
536    R_ARM_MOVT_ABS=44,
537    R_ARM_MOVW_PREL_NC=45,
538    R_ARM_MOVT_PREL=46,
539    R_ARM_THM_MOVW_ABS_NC=47,
540    R_ARM_THM_MOVT_ABS=48,
541    R_ARM_THM_MOVW_PREL_NC=49,
542    R_ARM_THM_MOVT_PREL=50,
543    R_ARM_THM_JUMP19=51,
544    R_ARM_THM_JUMP6=52,
545    R_ARM_THM_ALU_PREL_11_0=53,
546    R_ARM_THM_PC12=54,
547    R_ARM_ABS32_NOI=55,
548    R_ARM_REL32_NOI=56,
549    R_ARM_ALU_PC_G0_NC=57,
550    R_ARM_ALU_PC_G0=58,
551    R_ARM_ALU_PC_G1_NC=59,
552    R_ARM_ALU_PC_G1=60,
553    R_ARM_ALU_PC_G2=61,
554    R_ARM_LDR_PC_G1=62,
555    R_ARM_LDR_PC_G2=63,
556    R_ARM_LDRS_PC_G0=64,
557    R_ARM_LDRS_PC_G1=65,
558    R_ARM_LDRS_PC_G2=66,
559    R_ARM_LDC_PC_G0=67,
560    R_ARM_LDC_PC_G1=68,
561    R_ARM_LDC_PC_G2=69,
562    R_ARM_ALU_SB_G0_NC=70,
563    R_ARM_ALU_SB_G0=71,
564    R_ARM_ALU_SB_G1_NC=72,
565    R_ARM_ALU_SB_G1=73,
566    R_ARM_ALU_SB_G2=74,
567    R_ARM_LDR_SB_G0=75,
568    R_ARM_LDR_SB_G1=76,
569    R_ARM_LDR_SB_G2=77,
570    R_ARM_LDRS_SB_G0=78,
571    R_ARM_LDRS_SB_G1=79,
572    R_ARM_LDRS_SB_G2=80,
573    R_ARM_LDC_SB_G0=81,
574    R_ARM_LDC_SB_G1=82,
575    R_ARM_LDC_SB_G2=83,
576    R_ARM_MOVW_BREL_NC=84,
577    R_ARM_MOVT_BREL=85,
578    R_ARM_MOVW_BREL=86,
579    R_ARM_THM_MOVW_BREL_NC=87,
580    R_ARM_THM_MOVT_BREL=88,
581    R_ARM_THM_MOVW_BREL=89,
582    R_ARM_PLT32_ABS=94,
583    R_ARM_GOT_ABS=95,
584    R_ARM_GOT_PREL=96,
585    R_ARM_GOT_BREL12=97,
586    R_ARM_GOTOFF12=98,
587    R_ARM_GOTRELAX=99,
588    R_ARM_GNU_VTENTRY=100,
589    R_ARM_GNU_VTINHERIT=101,
590    R_ARM_THM_JUMP11=102,
591    R_ARM_THM_JUMP8=103,
592    R_ARM_TLS_GD32=104,
593    R_ARM_TLS_LDM32=105,
594    R_ARM_TLS_LDO32=106,
595    R_ARM_TLS_IE32=107,
596    R_ARM_TLS_LE32=108,
597    R_ARM_TLS_LDO12=109,
598    R_ARM_TLS_LE12=110,
599    R_ARM_TLS_IE12GP=111,
600    R_ARM_PRIVATE_0=112,
601    R_ARM_PRIVATE_1=113,
602    R_ARM_PRIVATE_2=114,
603    R_ARM_PRIVATE_3=115,
604    R_ARM_PRIVATE_4=116,
605    R_ARM_PRIVATE_5=117,
606    R_ARM_PRIVATE_6=118,
607    R_ARM_PRIVATE_7=119,
608    R_ARM_PRIVATE_8=120,
609    R_ARM_PRIVATE_9=121,
610    R_ARM_PRIVATE_10=122,
611    R_ARM_PRIVATE_11=123,
612    R_ARM_PRIVATE_12=124,
613    R_ARM_PRIVATE_13=125,
614    R_ARM_PRIVATE_14=126,
615    R_ARM_PRIVATE_15=127,
616    R_ARM_ME_TOO=128,
617    R_ARM_THM_TLS_DESCSEQ16=129,
618    R_ARM_THM_TLS_DESCSEQ32=130,
619    R_ARM_THM_GOT_BREL12=131,
620    R_ARM_IRELATIVE=140,
621)
622
623ENUM_RELOC_TYPE_AARCH64 = dict(
624    R_AARCH64_NONE=256,
625    R_AARCH64_ABS64=257,
626    R_AARCH64_ABS32=258,
627    R_AARCH64_ABS16=259,
628    R_AARCH64_PREL64=260,
629    R_AARCH64_PREL32=261,
630    R_AARCH64_PREL16=262,
631    R_AARCH64_MOVW_UABS_G0=263,
632    R_AARCH64_MOVW_UABS_G0_NC=264,
633    R_AARCH64_MOVW_UABS_G1=265,
634    R_AARCH64_MOVW_UABS_G1_NC=266,
635    R_AARCH64_MOVW_UABS_G2=267,
636    R_AARCH64_MOVW_UABS_G2_NC=268,
637    R_AARCH64_MOVW_UABS_G3=269,
638    R_AARCH64_MOVW_SABS_G0=270,
639    R_AARCH64_MOVW_SABS_G1=271,
640    R_AARCH64_MOVW_SABS_G2=272,
641    R_AARCH64_LD_PREL_LO19=273,
642    R_AARCH64_ADR_PREL_LO21=274,
643    R_AARCH64_ADR_PREL_PG_HI21=275,
644    R_AARCH64_ADR_PREL_PG_HI21_NC=276,
645    R_AARCH64_ADD_ABS_LO12_NC=277,
646    R_AARCH64_LDST8_ABS_LO12_NC=278,
647    R_AARCH64_TSTBR14=279,
648    R_AARCH64_CONDBR19=280,
649    R_AARCH64_JUMP26=282,
650    R_AARCH64_CALL26=283,
651    R_AARCH64_LDST16_ABS_LO12_NC=284,
652    R_AARCH64_LDST32_ABS_LO12_NC=285,
653    R_AARCH64_LDST64_ABS_LO12_NC=286,
654    R_AARCH64_MOVW_PREL_G0=287,
655    R_AARCH64_MOVW_PREL_G0_NC=288,
656    R_AARCH64_MOVW_PREL_G1=289,
657    R_AARCH64_MOVW_PREL_G1_NC=290,
658    R_AARCH64_MOVW_PREL_G2=291,
659    R_AARCH64_MOVW_PREL_G2_NC=292,
660    R_AARCH64_MOVW_PREL_G3=293,
661    R_AARCH64_MOVW_GOTOFF_G0=300,
662    R_AARCH64_MOVW_GOTOFF_G0_NC=301,
663    R_AARCH64_MOVW_GOTOFF_G1=302,
664    R_AARCH64_MOVW_GOTOFF_G1_NC=303,
665    R_AARCH64_MOVW_GOTOFF_G2=304,
666    R_AARCH64_MOVW_GOTOFF_G2_NC=305,
667    R_AARCH64_MOVW_GOTOFF_G3=306,
668    R_AARCH64_GOTREL64=307,
669    R_AARCH64_GOTREL32=308,
670    R_AARCH64_GOT_LD_PREL19=309,
671    R_AARCH64_LD64_GOTOFF_LO15=310,
672    R_AARCH64_ADR_GOT_PAGE=311,
673    R_AARCH64_LD64_GOT_LO12_NC=312,
674    R_AARCH64_TLSGD_ADR_PREL21=512,
675    R_AARCH64_TLSGD_ADR_PAGE21=513,
676    R_AARCH64_TLSGD_ADD_LO12_NC=514,
677    R_AARCH64_TLSGD_MOVW_G1=515,
678    R_AARCH64_TLSGD_MOVW_G0_NC=516,
679    R_AARCH64_TLSLD_ADR_PREL21=517,
680    R_AARCH64_TLSLD_ADR_PAGE21=518,
681    R_AARCH64_TLSLD_ADD_LO12_NC=519,
682    R_AARCH64_TLSLD_MOVW_G1=520,
683    R_AARCH64_TLSLD_MOVW_G0_NC=521,
684    R_AARCH64_TLSLD_LD_PREL19=522,
685    R_AARCH64_TLSLD_MOVW_DTPREL_G2=523,
686    R_AARCH64_TLSLD_MOVW_DTPREL_G1=524,
687    R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC=525,
688    R_AARCH64_TLSLD_MOVW_DTPREL_G0=526,
689    R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC=527,
690    R_AARCH64_TLSLD_ADD_DTPREL_HI12=528,
691    R_AARCH64_TLSLD_ADD_DTPREL_LO12=529,
692    R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC=530,
693    R_AARCH64_TLSLD_LDST8_DTPREL_LO12=531,
694    R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC=532,
695    R_AARCH64_TLSLD_LDST16_DTPREL_LO12=533,
696    R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC=534,
697    R_AARCH64_TLSLD_LDST32_DTPREL_LO12=535,
698    R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC=536,
699    R_AARCH64_TLSLD_LDST64_DTPREL_LO12=537,
700    R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC=538,
701    R_AARCH64_TLSIE_MOVW_GOTTPREL_G1=539,
702    R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC=540,
703    R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21=541,
704    R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC=542,
705    R_AARCH64_TLSIE_LD_GOTTPREL_PREL19=543,
706    R_AARCH64_TLSLE_MOVW_TPREL_G2=544,
707    R_AARCH64_TLSLE_MOVW_TPREL_G1=545,
708    R_AARCH64_TLSLE_MOVW_TPREL_G1_NC=546,
709    R_AARCH64_TLSLE_MOVW_TPREL_G0=547,
710    R_AARCH64_TLSLE_MOVW_TPREL_G0_NC=548,
711    R_AARCH64_TLSLE_ADD_TPREL_HI12=549,
712    R_AARCH64_TLSLE_ADD_TPREL_LO12=550,
713    R_AARCH64_TLSLE_ADD_TPREL_LO12_NC=551,
714    R_AARCH64_TLSLE_LDST8_TPREL_LO12=552,
715    R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC=553,
716    R_AARCH64_TLSLE_LDST16_TPREL_LO12=554,
717    R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC=555,
718    R_AARCH64_TLSLE_LDST32_TPREL_LO12=556,
719    R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC=557,
720    R_AARCH64_TLSLE_LDST64_TPREL_LO12=558,
721    R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC=559,
722    R_AARCH64_COPY=1024,
723    R_AARCH64_GLOB_DAT=1025,
724    R_AARCH64_JUMP_SLOT=1026,
725    R_AARCH64_RELATIVE=1027,
726    R_AARCH64_TLS_DTPREL64=1028,
727    R_AARCH64_TLS_DTPMOD64=1029,
728    R_AARCH64_TLS_TPREL64=1030,
729    R_AARCH64_TLS_DTPREL32=1031,
730    R_AARCH64_TLS_DTPMOD32=1032,
731    R_AARCH64_TLS_TPREL32=1033,
732)
733