00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _ELF_H
00021 #define _ELF_H 1
00022
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026
00027 #include <stdint.h>
00028
00029
00030
00031
00032
00033
00034
00035
00036 typedef uint16_t Elf32_Half;
00037 typedef uint16_t Elf64_Half;
00038
00039
00040 typedef uint32_t Elf32_Word;
00041 typedef int32_t Elf32_Sword;
00042 typedef uint32_t Elf64_Word;
00043 typedef int32_t Elf64_Sword;
00044
00045
00046 typedef uint64_t Elf32_Xword;
00047 typedef int64_t Elf32_Sxword;
00048 typedef uint64_t Elf64_Xword;
00049 typedef int64_t Elf64_Sxword;
00050
00051
00052 typedef uint32_t Elf32_Addr;
00053 typedef uint64_t Elf64_Addr;
00054
00055
00056 typedef uint32_t Elf32_Off;
00057 typedef uint64_t Elf64_Off;
00058
00059
00060 typedef uint16_t Elf32_Section;
00061 typedef uint16_t Elf64_Section;
00062
00063
00064 typedef Elf32_Half Elf32_Versym;
00065 typedef Elf64_Half Elf64_Versym;
00066
00067
00068
00069
00070 #define EI_NIDENT (16)
00071
00072 typedef struct
00073 {
00074 unsigned char e_ident[EI_NIDENT];
00075 Elf32_Half e_type;
00076 Elf32_Half e_machine;
00077 Elf32_Word e_version;
00078 Elf32_Addr e_entry;
00079 Elf32_Off e_phoff;
00080 Elf32_Off e_shoff;
00081 Elf32_Word e_flags;
00082 Elf32_Half e_ehsize;
00083 Elf32_Half e_phentsize;
00084 Elf32_Half e_phnum;
00085 Elf32_Half e_shentsize;
00086 Elf32_Half e_shnum;
00087 Elf32_Half e_shstrndx;
00088 } Elf32_Ehdr;
00089
00090 typedef struct
00091 {
00092 unsigned char e_ident[EI_NIDENT];
00093 Elf64_Half e_type;
00094 Elf64_Half e_machine;
00095 Elf64_Word e_version;
00096 Elf64_Addr e_entry;
00097 Elf64_Off e_phoff;
00098 Elf64_Off e_shoff;
00099 Elf64_Word e_flags;
00100 Elf64_Half e_ehsize;
00101 Elf64_Half e_phentsize;
00102 Elf64_Half e_phnum;
00103 Elf64_Half e_shentsize;
00104 Elf64_Half e_shnum;
00105 Elf64_Half e_shstrndx;
00106 } Elf64_Ehdr;
00107
00108
00109
00110
00111
00112 #define EI_MAG0 0
00113 #define ELFMAG0 0x7f
00114
00115 #define EI_MAG1 1
00116 #define ELFMAG1 'E'
00117
00118 #define EI_MAG2 2
00119 #define ELFMAG2 'L'
00120
00121 #define EI_MAG3 3
00122 #define ELFMAG3 'F'
00123
00124
00125 #define ELFMAG "\177ELF"
00126 #define SELFMAG 4
00127
00128 #define EI_CLASS 4
00129 #define ELFCLASSNONE 0
00130 #define ELFCLASS32 1
00131 #define ELFCLASS64 2
00132 #define ELFCLASSNUM 3
00133
00134 #define EI_DATA 5
00135 #define ELFDATANONE 0
00136 #define ELFDATA2LSB 1
00137 #define ELFDATA2MSB 2
00138 #define ELFDATANUM 3
00139
00140 #define EI_VERSION 6
00141
00142
00143 #define EI_OSABI 7
00144 #define ELFOSABI_NONE 0
00145 #define ELFOSABI_SYSV 0
00146 #define ELFOSABI_HPUX 1
00147 #define ELFOSABI_NETBSD 2
00148 #define ELFOSABI_LINUX 3
00149 #define ELFOSABI_SOLARIS 6
00150 #define ELFOSABI_AIX 7
00151 #define ELFOSABI_IRIX 8
00152 #define ELFOSABI_FREEBSD 9
00153 #define ELFOSABI_TRU64 10
00154 #define ELFOSABI_MODESTO 11
00155 #define ELFOSABI_OPENBSD 12
00156 #define ELFOSABI_ARM 97
00157 #define ELFOSABI_STANDALONE 255
00158
00159 #define EI_ABIVERSION 8
00160
00161 #define EI_PAD 9
00162
00163
00164
00165 #define ET_NONE 0
00166 #define ET_REL 1
00167 #define ET_EXEC 2
00168 #define ET_DYN 3
00169 #define ET_CORE 4
00170 #define ET_NUM 5
00171 #define ET_LOOS 0xfe00
00172 #define ET_HIOS 0xfeff
00173 #define ET_LOPROC 0xff00
00174 #define ET_HIPROC 0xffff
00175
00176
00177
00178 #define EM_NONE 0
00179 #define EM_M32 1
00180 #define EM_SPARC 2
00181 #define EM_386 3
00182 #define EM_68K 4
00183 #define EM_88K 5
00184 #define EM_860 7
00185 #define EM_MIPS 8
00186 #define EM_S370 9
00187 #define EM_MIPS_RS3_LE 10
00188
00189 #define EM_PARISC 15
00190 #define EM_VPP500 17
00191 #define EM_SPARC32PLUS 18
00192 #define EM_960 19
00193 #define EM_PPC 20
00194 #define EM_PPC64 21
00195 #define EM_S390 22
00196
00197 #define EM_V800 36
00198 #define EM_FR20 37
00199 #define EM_RH32 38
00200 #define EM_RCE 39
00201 #define EM_ARM 40
00202 #define EM_FAKE_ALPHA 41
00203 #define EM_SH 42
00204 #define EM_SPARCV9 43
00205 #define EM_TRICORE 44
00206 #define EM_ARC 45
00207 #define EM_H8_300 46
00208 #define EM_H8_300H 47
00209 #define EM_H8S 48
00210 #define EM_H8_500 49
00211 #define EM_IA_64 50
00212 #define EM_MIPS_X 51
00213 #define EM_COLDFIRE 52
00214 #define EM_68HC12 53
00215 #define EM_MMA 54
00216 #define EM_PCP 55
00217 #define EM_NCPU 56
00218 #define EM_NDR1 57
00219 #define EM_STARCORE 58
00220 #define EM_ME16 59
00221 #define EM_ST100 60
00222 #define EM_TINYJ 61
00223 #define EM_X86_64 62
00224 #define EM_PDSP 63
00225
00226 #define EM_FX66 66
00227 #define EM_ST9PLUS 67
00228 #define EM_ST7 68
00229 #define EM_68HC16 69
00230 #define EM_68HC11 70
00231 #define EM_68HC08 71
00232 #define EM_68HC05 72
00233 #define EM_SVX 73
00234 #define EM_AT19 74
00235 #define EM_VAX 75
00236 #define EM_CRIS 76
00237 #define EM_JAVELIN 77
00238 #define EM_FIREPATH 78
00239 #define EM_ZSP 79
00240 #define EM_MMIX 80
00241 #define EM_HUANY 81
00242 #define EM_PRISM 82
00243 #define EM_AVR 83
00244 #define EM_FR30 84
00245 #define EM_D10V 85
00246 #define EM_D30V 86
00247 #define EM_V850 87
00248 #define EM_M32R 88
00249 #define EM_MN10300 89
00250 #define EM_MN10200 90
00251 #define EM_PJ 91
00252 #define EM_OPENRISC 92
00253 #define EM_ARC_A5 93
00254 #define EM_XTENSA 94
00255 #define EM_NUM 95
00256
00257
00258
00259
00260
00261 #define EM_ALPHA 0x9026
00262
00263
00264
00265 #define EV_NONE 0
00266 #define EV_CURRENT 1
00267 #define EV_NUM 2
00268
00269
00270
00271 typedef struct
00272 {
00273 Elf32_Word sh_name;
00274 Elf32_Word sh_type;
00275 Elf32_Word sh_flags;
00276 Elf32_Addr sh_addr;
00277 Elf32_Off sh_offset;
00278 Elf32_Word sh_size;
00279 Elf32_Word sh_link;
00280 Elf32_Word sh_info;
00281 Elf32_Word sh_addralign;
00282 Elf32_Word sh_entsize;
00283 } Elf32_Shdr;
00284
00285 typedef struct
00286 {
00287 Elf64_Word sh_name;
00288 Elf64_Word sh_type;
00289 Elf64_Xword sh_flags;
00290 Elf64_Addr sh_addr;
00291 Elf64_Off sh_offset;
00292 Elf64_Xword sh_size;
00293 Elf64_Word sh_link;
00294 Elf64_Word sh_info;
00295 Elf64_Xword sh_addralign;
00296 Elf64_Xword sh_entsize;
00297 } Elf64_Shdr;
00298
00299
00300
00301 #define SHN_UNDEF 0
00302 #define SHN_LORESERVE 0xff00
00303 #define SHN_LOPROC 0xff00
00304 #define SHN_HIPROC 0xff1f
00305 #define SHN_LOOS 0xff20
00306 #define SHN_HIOS 0xff3f
00307 #define SHN_ABS 0xfff1
00308 #define SHN_COMMON 0xfff2
00309 #define SHN_XINDEX 0xffff
00310 #define SHN_HIRESERVE 0xffff
00311
00312
00313
00314 #define SHT_NULL 0
00315 #define SHT_PROGBITS 1
00316 #define SHT_SYMTAB 2
00317 #define SHT_STRTAB 3
00318 #define SHT_RELA 4
00319 #define SHT_HASH 5
00320 #define SHT_DYNAMIC 6
00321 #define SHT_NOTE 7
00322 #define SHT_NOBITS 8
00323 #define SHT_REL 9
00324 #define SHT_SHLIB 10
00325 #define SHT_DYNSYM 11
00326 #define SHT_INIT_ARRAY 14
00327 #define SHT_FINI_ARRAY 15
00328 #define SHT_PREINIT_ARRAY 16
00329 #define SHT_GROUP 17
00330 #define SHT_SYMTAB_SHNDX 18
00331 #define SHT_NUM 19
00332 #define SHT_LOOS 0x60000000
00333 #define SHT_GNU_LIBLIST 0x6ffffff7
00334 #define SHT_CHECKSUM 0x6ffffff8
00335 #define SHT_LOSUNW 0x6ffffffa
00336 #define SHT_SUNW_move 0x6ffffffa
00337 #define SHT_SUNW_COMDAT 0x6ffffffb
00338 #define SHT_SUNW_syminfo 0x6ffffffc
00339 #define SHT_GNU_verdef 0x6ffffffd
00340 #define SHT_GNU_verneed 0x6ffffffe
00341 #define SHT_GNU_versym 0x6fffffff
00342 #define SHT_HISUNW 0x6fffffff
00343 #define SHT_HIOS 0x6fffffff
00344 #define SHT_LOPROC 0x70000000
00345 #define SHT_HIPROC 0x7fffffff
00346 #define SHT_LOUSER 0x80000000
00347 #define SHT_RES 0x80000001
00348 #define SHT_HIUSER 0x8fffffff
00349
00350
00351
00352 #define SHF_WRITE (1 << 0)
00353 #define SHF_ALLOC (1 << 1)
00354 #define SHF_EXECINSTR (1 << 2)
00355 #define SHF_MERGE (1 << 4)
00356 #define SHF_STRINGS (1 << 5)
00357 #define SHF_INFO_LINK (1 << 6)
00358 #define SHF_LINK_ORDER (1 << 7)
00359 #define SHF_OS_NONCONFORMING (1 << 8)
00360
00361 #define SHF_GROUP (1 << 9)
00362 #define SHF_TLS (1 << 10)
00363 #define SHF_MASKOS 0x0ff00000
00364 #define SHF_MASKPROC 0xf0000000
00365
00366
00367 #define GRP_COMDAT 0x1
00368
00369
00370
00371 typedef struct
00372 {
00373 Elf32_Word st_name;
00374 Elf32_Addr st_value;
00375 Elf32_Word st_size;
00376 unsigned char st_info;
00377 unsigned char st_other;
00378 Elf32_Section st_shndx;
00379 } Elf32_Sym;
00380
00381 typedef struct
00382 {
00383 Elf64_Word st_name;
00384 unsigned char st_info;
00385 unsigned char st_other;
00386 Elf64_Section st_shndx;
00387 Elf64_Addr st_value;
00388 Elf64_Xword st_size;
00389 } Elf64_Sym;
00390
00391
00392
00393
00394 typedef struct
00395 {
00396 Elf32_Half si_boundto;
00397 Elf32_Half si_flags;
00398 } Elf32_Syminfo;
00399
00400 typedef struct
00401 {
00402 Elf64_Half si_boundto;
00403 Elf64_Half si_flags;
00404 } Elf64_Syminfo;
00405
00406
00407 #define SYMINFO_BT_SELF 0xffff
00408 #define SYMINFO_BT_PARENT 0xfffe
00409 #define SYMINFO_BT_LOWRESERVE 0xff00
00410
00411
00412 #define SYMINFO_FLG_DIRECT 0x0001
00413 #define SYMINFO_FLG_PASSTHRU 0x0002
00414 #define SYMINFO_FLG_COPY 0x0004
00415 #define SYMINFO_FLG_LAZYLOAD 0x0008
00416
00417
00418 #define SYMINFO_NONE 0
00419 #define SYMINFO_CURRENT 1
00420 #define SYMINFO_NUM 2
00421
00422
00423
00424
00425 #define SHN_UNDEF 0
00426
00427
00428
00429 #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
00430 #define ELF32_ST_TYPE(val) ((val) & 0xf)
00431 #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
00432
00433
00434 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
00435 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
00436 #define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
00437
00438
00439
00440 #define STB_LOCAL 0
00441 #define STB_GLOBAL 1
00442 #define STB_WEAK 2
00443 #define STB_NUM 3
00444 #define STB_LOOS 10
00445 #define STB_HIOS 12
00446 #define STB_LOPROC 13
00447 #define STB_HIPROC 15
00448
00449
00450
00451 #define STT_NOTYPE 0
00452 #define STT_OBJECT 1
00453 #define STT_FUNC 2
00454 #define STT_SECTION 3
00455 #define STT_FILE 4
00456 #define STT_COMMON 5
00457 #define STT_NUM 6
00458 #define STT_LOOS 10
00459 #define STT_HIOS 12
00460 #define STT_LOPROC 13
00461 #define STT_HIPROC 15
00462
00463
00464
00465
00466
00467
00468 #define STN_UNDEF 0
00469
00470
00471
00472
00473 #define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
00474
00475
00476 #define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
00477
00478
00479 #define STV_DEFAULT 0
00480 #define STV_INTERNAL 1
00481 #define STV_HIDDEN 2
00482 #define STV_PROTECTED 3
00483
00484
00485
00486
00487 typedef struct
00488 {
00489 Elf32_Addr r_offset;
00490 Elf32_Word r_info;
00491 } Elf32_Rel;
00492
00493
00494
00495
00496
00497
00498 typedef struct
00499 {
00500 Elf64_Addr r_offset;
00501 Elf64_Xword r_info;
00502 } Elf64_Rel;
00503
00504
00505
00506 typedef struct
00507 {
00508 Elf32_Addr r_offset;
00509 Elf32_Word r_info;
00510 Elf32_Sword r_addend;
00511 } Elf32_Rela;
00512
00513 typedef struct
00514 {
00515 Elf64_Addr r_offset;
00516 Elf64_Xword r_info;
00517 Elf64_Sxword r_addend;
00518 } Elf64_Rela;
00519
00520
00521
00522 #define ELF32_R_SYM(val) ((val) >> 8)
00523 #define ELF32_R_TYPE(val) ((val) & 0xff)
00524 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
00525
00526 #define ELF64_R_SYM(i) ((i) >> 32)
00527 #define ELF64_R_TYPE(i) ((i) & 0xffffffff)
00528 #define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
00529
00530
00531
00532 typedef struct
00533 {
00534 Elf32_Word p_type;
00535 Elf32_Off p_offset;
00536 Elf32_Addr p_vaddr;
00537 Elf32_Addr p_paddr;
00538 Elf32_Word p_filesz;
00539 Elf32_Word p_memsz;
00540 Elf32_Word p_flags;
00541 Elf32_Word p_align;
00542 } Elf32_Phdr;
00543
00544 typedef struct
00545 {
00546 Elf64_Word p_type;
00547 Elf64_Word p_flags;
00548 Elf64_Off p_offset;
00549 Elf64_Addr p_vaddr;
00550 Elf64_Addr p_paddr;
00551 Elf64_Xword p_filesz;
00552 Elf64_Xword p_memsz;
00553 Elf64_Xword p_align;
00554 } Elf64_Phdr;
00555
00556
00557
00558 #define PT_NULL 0
00559 #define PT_LOAD 1
00560 #define PT_DYNAMIC 2
00561 #define PT_INTERP 3
00562 #define PT_NOTE 4
00563 #define PT_SHLIB 5
00564 #define PT_PHDR 6
00565 #define PT_TLS 7
00566 #define PT_NUM 8
00567 #define PT_LOOS 0x60000000
00568 #define PT_GNU_EH_FRAME 0x6474e550
00569 #define PT_HIOS 0x6fffffff
00570 #define PT_LOPROC 0x70000000
00571 #define PT_HIPROC 0x7fffffff
00572
00573
00574
00575 #define PF_X (1 << 0)
00576 #define PF_W (1 << 1)
00577 #define PF_R (1 << 2)
00578 #define PF_MASKOS 0x0ff00000
00579 #define PF_MASKPROC 0xf0000000
00580
00581
00582
00583 #define NT_PRSTATUS 1
00584 #define NT_FPREGSET 2
00585 #define NT_PRPSINFO 3
00586 #define NT_PRXREG 4
00587 #define NT_PLATFORM 5
00588 #define NT_AUXV 6
00589 #define NT_GWINDOWS 7
00590 #define NT_PSTATUS 10
00591 #define NT_PSINFO 13
00592 #define NT_PRCRED 14
00593 #define NT_UTSNAME 15
00594 #define NT_LWPSTATUS 16
00595 #define NT_LWPSINFO 17
00596 #define NT_PRFPXREG 20
00597
00598
00599
00600 #define NT_VERSION 1
00601
00602
00603
00604
00605 typedef struct
00606 {
00607 Elf32_Sword d_tag;
00608 union
00609 {
00610 Elf32_Word d_val;
00611 Elf32_Addr d_ptr;
00612 } d_un;
00613 } Elf32_Dyn;
00614
00615 typedef struct
00616 {
00617 Elf64_Sxword d_tag;
00618 union
00619 {
00620 Elf64_Xword d_val;
00621 Elf64_Addr d_ptr;
00622 } d_un;
00623 } Elf64_Dyn;
00624
00625
00626
00627 #define DT_NULL 0
00628 #define DT_NEEDED 1
00629 #define DT_PLTRELSZ 2
00630 #define DT_PLTGOT 3
00631 #define DT_HASH 4
00632 #define DT_STRTAB 5
00633 #define DT_SYMTAB 6
00634 #define DT_RELA 7
00635 #define DT_RELASZ 8
00636 #define DT_RELAENT 9
00637 #define DT_STRSZ 10
00638 #define DT_SYMENT 11
00639 #define DT_INIT 12
00640 #define DT_FINI 13
00641 #define DT_SONAME 14
00642 #define DT_RPATH 15
00643 #define DT_SYMBOLIC 16
00644 #define DT_REL 17
00645 #define DT_RELSZ 18
00646 #define DT_RELENT 19
00647 #define DT_PLTREL 20
00648 #define DT_DEBUG 21
00649 #define DT_TEXTREL 22
00650 #define DT_JMPREL 23
00651 #define DT_BIND_NOW 24
00652 #define DT_INIT_ARRAY 25
00653 #define DT_FINI_ARRAY 26
00654 #define DT_INIT_ARRAYSZ 27
00655 #define DT_FINI_ARRAYSZ 28
00656 #define DT_RUNPATH 29
00657 #define DT_FLAGS 30
00658 #define DT_ENCODING 32
00659 #define DT_PREINIT_ARRAY 32
00660 #define DT_PREINIT_ARRAYSZ 33
00661 #define DT_NUM 34
00662 #define DT_LOOS 0x60000000
00663 #define DT_HIOS 0x6fffffff
00664 #define DT_LOPROC 0x70000000
00665 #define DT_HIPROC 0x7fffffff
00666 #define DT_PROCNUM DT_MIPS_NUM
00667
00668
00669
00670
00671 #define DT_VALRNGLO 0x6ffffd00
00672 #define DT_GNU_PRELINKED 0x6ffffdf5
00673 #define DT_GNU_CONFLICTSZ 0x6ffffdf6
00674 #define DT_GNU_LIBLISTSZ 0x6ffffdf7
00675 #define DT_CHECKSUM 0x6ffffdf8
00676 #define DT_PLTPADSZ 0x6ffffdf9
00677 #define DT_MOVEENT 0x6ffffdfa
00678 #define DT_MOVESZ 0x6ffffdfb
00679 #define DT_FEATURE_1 0x6ffffdfc
00680 #define DT_POSFLAG_1 0x6ffffdfd
00681
00682 #define DT_SYMINSZ 0x6ffffdfe
00683 #define DT_SYMINENT 0x6ffffdff
00684 #define DT_VALRNGHI 0x6ffffdff
00685
00686
00687
00688
00689
00690
00691 #define DT_ADDRRNGLO 0x6ffffe00
00692 #define DT_GNU_CONFLICT 0x6ffffef8
00693 #define DT_GNU_LIBLIST 0x6ffffef9
00694 #define DT_CONFIG 0x6ffffefa
00695 #define DT_DEPAUDIT 0x6ffffefb
00696 #define DT_AUDIT 0x6ffffefc
00697 #define DT_PLTPAD 0x6ffffefd
00698 #define DT_MOVETAB 0x6ffffefe
00699 #define DT_SYMINFO 0x6ffffeff
00700 #define DT_ADDRRNGHI 0x6ffffeff
00701
00702
00703
00704 #define DT_VERSYM 0x6ffffff0
00705
00706 #define DT_RELACOUNT 0x6ffffff9
00707 #define DT_RELCOUNT 0x6ffffffa
00708
00709
00710 #define DT_FLAGS_1 0x6ffffffb
00711 #define DT_VERDEF 0x6ffffffc
00712
00713 #define DT_VERDEFNUM 0x6ffffffd
00714 #define DT_VERNEED 0x6ffffffe
00715
00716 #define DT_VERNEEDNUM 0x6fffffff
00717 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
00718 #define DT_VERSIONTAGNUM 16
00719
00720
00721
00722 #define DT_AUXILIARY 0x7ffffffd
00723 #define DT_FILTER 0x7fffffff
00724 #define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
00725 #define DT_EXTRANUM 3
00726
00727
00728 #define DF_ORIGIN 0x00000001
00729 #define DF_SYMBOLIC 0x00000002
00730 #define DF_TEXTREL 0x00000004
00731 #define DF_BIND_NOW 0x00000008
00732
00733
00734
00735 #define DF_1_NOW 0x00000001
00736 #define DF_1_GLOBAL 0x00000002
00737 #define DF_1_GROUP 0x00000004
00738 #define DF_1_NODELETE 0x00000008
00739 #define DF_1_LOADFLTR 0x00000010
00740 #define DF_1_INITFIRST 0x00000020
00741 #define DF_1_NOOPEN 0x00000040
00742 #define DF_1_ORIGIN 0x00000080
00743 #define DF_1_DIRECT 0x00000100
00744 #define DF_1_TRANS 0x00000200
00745 #define DF_1_INTERPOSE 0x00000400
00746 #define DF_1_NODEFLIB 0x00000800
00747 #define DF_1_NODUMP 0x00001000
00748 #define DF_1_CONFALT 0x00002000
00749 #define DF_1_ENDFILTEE 0x00004000
00750 #define DF_1_DISPRELDNE 0x00008000
00751 #define DF_1_DISPRELPND 0x00010000
00752
00753
00754 #define DTF_1_PARINIT 0x00000001
00755 #define DTF_1_CONFEXP 0x00000002
00756
00757
00758 #define DF_P1_LAZYLOAD 0x00000001
00759 #define DF_P1_GROUPPERM 0x00000002
00760
00761
00762
00763
00764 typedef struct
00765 {
00766 Elf32_Half vd_version;
00767 Elf32_Half vd_flags;
00768 Elf32_Half vd_ndx;
00769 Elf32_Half vd_cnt;
00770 Elf32_Word vd_hash;
00771 Elf32_Word vd_aux;
00772 Elf32_Word vd_next;
00773
00774 } Elf32_Verdef;
00775
00776 typedef struct
00777 {
00778 Elf64_Half vd_version;
00779 Elf64_Half vd_flags;
00780 Elf64_Half vd_ndx;
00781 Elf64_Half vd_cnt;
00782 Elf64_Word vd_hash;
00783 Elf64_Word vd_aux;
00784 Elf64_Word vd_next;
00785
00786 } Elf64_Verdef;
00787
00788
00789
00790 #define VER_DEF_NONE 0
00791 #define VER_DEF_CURRENT 1
00792 #define VER_DEF_NUM 2
00793
00794
00795 #define VER_FLG_BASE 0x1
00796 #define VER_FLG_WEAK 0x2
00797
00798
00799 #define VER_NDX_LOCAL 0
00800 #define VER_NDX_GLOBAL 1
00801 #define VER_NDX_LORESERVE 0xff00
00802 #define VER_NDX_ELIMINATE 0xff01
00803
00804
00805
00806 typedef struct
00807 {
00808 Elf32_Word vda_name;
00809 Elf32_Word vda_next;
00810
00811 } Elf32_Verdaux;
00812
00813 typedef struct
00814 {
00815 Elf64_Word vda_name;
00816 Elf64_Word vda_next;
00817
00818 } Elf64_Verdaux;
00819
00820
00821
00822
00823 typedef struct
00824 {
00825 Elf32_Half vn_version;
00826 Elf32_Half vn_cnt;
00827 Elf32_Word vn_file;
00828
00829 Elf32_Word vn_aux;
00830 Elf32_Word vn_next;
00831
00832 } Elf32_Verneed;
00833
00834 typedef struct
00835 {
00836 Elf64_Half vn_version;
00837 Elf64_Half vn_cnt;
00838 Elf64_Word vn_file;
00839
00840 Elf64_Word vn_aux;
00841 Elf64_Word vn_next;
00842
00843 } Elf64_Verneed;
00844
00845
00846
00847 #define VER_NEED_NONE 0
00848 #define VER_NEED_CURRENT 1
00849 #define VER_NEED_NUM 2
00850
00851
00852
00853 typedef struct
00854 {
00855 Elf32_Word vna_hash;
00856 Elf32_Half vna_flags;
00857 Elf32_Half vna_other;
00858 Elf32_Word vna_name;
00859 Elf32_Word vna_next;
00860
00861 } Elf32_Vernaux;
00862
00863 typedef struct
00864 {
00865 Elf64_Word vna_hash;
00866 Elf64_Half vna_flags;
00867 Elf64_Half vna_other;
00868 Elf64_Word vna_name;
00869 Elf64_Word vna_next;
00870
00871 } Elf64_Vernaux;
00872
00873
00874
00875 #define VER_FLG_WEAK 0x2
00876
00877
00878
00879
00880
00881
00882
00883
00884
00885
00886
00887 typedef struct
00888 {
00889 int a_type;
00890 union
00891 {
00892 long int a_val;
00893 void *a_ptr;
00894 void (*a_fcn) (void);
00895 } a_un;
00896 } Elf32_auxv_t;
00897
00898 typedef struct
00899 {
00900 long int a_type;
00901 union
00902 {
00903 long int a_val;
00904 void *a_ptr;
00905 void (*a_fcn) (void);
00906 } a_un;
00907 } Elf64_auxv_t;
00908
00909
00910
00911 #define AT_NULL 0
00912 #define AT_IGNORE 1
00913 #define AT_EXECFD 2
00914 #define AT_PHDR 3
00915 #define AT_PHENT 4
00916 #define AT_PHNUM 5
00917 #define AT_PAGESZ 6
00918 #define AT_BASE 7
00919 #define AT_FLAGS 8
00920 #define AT_ENTRY 9
00921 #define AT_NOTELF 10
00922 #define AT_UID 11
00923 #define AT_EUID 12
00924 #define AT_GID 13
00925 #define AT_EGID 14
00926 #define AT_CLKTCK 17
00927
00928
00929 #define AT_PLATFORM 15
00930 #define AT_HWCAP 16
00931
00932
00933
00934
00935 #define AT_FPUCW 18
00936
00937
00938 #define AT_DCACHEBSIZE 19
00939 #define AT_ICACHEBSIZE 20
00940 #define AT_UCACHEBSIZE 21
00941
00942
00943
00944 #define AT_IGNOREPPC 22
00945
00946
00947
00948
00949
00950 typedef struct
00951 {
00952 Elf32_Word n_namesz;
00953 Elf32_Word n_descsz;
00954 Elf32_Word n_type;
00955 } Elf32_Nhdr;
00956
00957 typedef struct
00958 {
00959 Elf64_Word n_namesz;
00960 Elf64_Word n_descsz;
00961 Elf64_Word n_type;
00962 } Elf64_Nhdr;
00963
00964
00965
00966
00967 #define ELF_NOTE_SOLARIS "SUNW Solaris"
00968
00969
00970 #define ELF_NOTE_GNU "GNU"
00971
00972
00973
00974
00975
00976 #define ELF_NOTE_PAGESIZE_HINT 1
00977
00978
00979
00980
00981
00982
00983
00984
00985
00986
00987 #define ELF_NOTE_ABI 1
00988
00989
00990
00991 #define ELF_NOTE_OS_LINUX 0
00992 #define ELF_NOTE_OS_GNU 1
00993 #define ELF_NOTE_OS_SOLARIS2 2
00994
00995
00996
00997 typedef struct
00998 {
00999 Elf32_Xword m_value;
01000 Elf32_Word m_info;
01001 Elf32_Word m_poffset;
01002 Elf32_Half m_repeat;
01003 Elf32_Half m_stride;
01004 } Elf32_Move;
01005
01006 typedef struct
01007 {
01008 Elf64_Xword m_value;
01009 Elf64_Xword m_info;
01010 Elf64_Xword m_poffset;
01011 Elf64_Half m_repeat;
01012 Elf64_Half m_stride;
01013 } Elf64_Move;
01014
01015
01016 #define ELF32_M_SYM(info) ((info) >> 8)
01017 #define ELF32_M_SIZE(info) ((unsigned char) (info))
01018 #define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
01019
01020 #define ELF64_M_SYM(info) ELF32_M_SYM (info)
01021 #define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
01022 #define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
01023
01024
01025
01026
01027
01028 #define EF_CPU32 0x00810000
01029
01030
01031
01032 #define R_68K_NONE 0
01033 #define R_68K_32 1
01034 #define R_68K_16 2
01035 #define R_68K_8 3
01036 #define R_68K_PC32 4
01037 #define R_68K_PC16 5
01038 #define R_68K_PC8 6
01039 #define R_68K_GOT32 7
01040 #define R_68K_GOT16 8
01041 #define R_68K_GOT8 9
01042 #define R_68K_GOT32O 10
01043 #define R_68K_GOT16O 11
01044 #define R_68K_GOT8O 12
01045 #define R_68K_PLT32 13
01046 #define R_68K_PLT16 14
01047 #define R_68K_PLT8 15
01048 #define R_68K_PLT32O 16
01049 #define R_68K_PLT16O 17
01050 #define R_68K_PLT8O 18
01051 #define R_68K_COPY 19
01052 #define R_68K_GLOB_DAT 20
01053 #define R_68K_JMP_SLOT 21
01054 #define R_68K_RELATIVE 22
01055
01056 #define R_68K_NUM 23
01057
01058
01059
01060
01061
01062 #define R_386_NONE 0
01063 #define R_386_32 1
01064 #define R_386_PC32 2
01065 #define R_386_GOT32 3
01066 #define R_386_PLT32 4
01067 #define R_386_COPY 5
01068 #define R_386_GLOB_DAT 6
01069 #define R_386_JMP_SLOT 7
01070 #define R_386_RELATIVE 8
01071 #define R_386_GOTOFF 9
01072 #define R_386_GOTPC 10
01073
01074 #define R_386_NUM 11
01075
01076
01077
01078
01079
01080 #define STT_REGISTER 13
01081
01082
01083
01084 #define EF_SPARCV9_MM 3
01085 #define EF_SPARCV9_TSO 0
01086 #define EF_SPARCV9_PSO 1
01087 #define EF_SPARCV9_RMO 2
01088 #define EF_SPARC_LEDATA 0x800000
01089 #define EF_SPARC_EXT_MASK 0xFFFF00
01090 #define EF_SPARC_32PLUS 0x000100
01091 #define EF_SPARC_SUN_US1 0x000200
01092 #define EF_SPARC_HAL_R1 0x000400
01093 #define EF_SPARC_SUN_US3 0x000800
01094
01095
01096
01097 #define R_SPARC_NONE 0
01098 #define R_SPARC_8 1
01099 #define R_SPARC_16 2
01100 #define R_SPARC_32 3
01101 #define R_SPARC_DISP8 4
01102 #define R_SPARC_DISP16 5
01103 #define R_SPARC_DISP32 6
01104 #define R_SPARC_WDISP30 7
01105 #define R_SPARC_WDISP22 8
01106 #define R_SPARC_HI22 9
01107 #define R_SPARC_22 10
01108 #define R_SPARC_13 11
01109 #define R_SPARC_LO10 12
01110 #define R_SPARC_GOT10 13
01111 #define R_SPARC_GOT13 14
01112 #define R_SPARC_GOT22 15
01113 #define R_SPARC_PC10 16
01114 #define R_SPARC_PC22 17
01115 #define R_SPARC_WPLT30 18
01116 #define R_SPARC_COPY 19
01117 #define R_SPARC_GLOB_DAT 20
01118 #define R_SPARC_JMP_SLOT 21
01119 #define R_SPARC_RELATIVE 22
01120 #define R_SPARC_UA32 23
01121
01122
01123
01124 #define R_SPARC_PLT32 24
01125 #define R_SPARC_HIPLT22 25
01126 #define R_SPARC_LOPLT10 26
01127 #define R_SPARC_PCPLT32 27
01128 #define R_SPARC_PCPLT22 28
01129 #define R_SPARC_PCPLT10 29
01130 #define R_SPARC_10 30
01131 #define R_SPARC_11 31
01132 #define R_SPARC_64 32
01133 #define R_SPARC_OLO10 33
01134 #define R_SPARC_HH22 34
01135 #define R_SPARC_HM10 35
01136 #define R_SPARC_LM22 36
01137 #define R_SPARC_PC_HH22 37
01138 #define R_SPARC_PC_HM10 38
01139 #define R_SPARC_PC_LM22 39
01140 #define R_SPARC_WDISP16 40
01141 #define R_SPARC_WDISP19 41
01142 #define R_SPARC_7 43
01143 #define R_SPARC_5 44
01144 #define R_SPARC_6 45
01145 #define R_SPARC_DISP64 46
01146 #define R_SPARC_PLT64 47
01147 #define R_SPARC_HIX22 48
01148 #define R_SPARC_LOX10 49
01149 #define R_SPARC_H44 50
01150 #define R_SPARC_M44 51
01151 #define R_SPARC_L44 52
01152 #define R_SPARC_REGISTER 53
01153 #define R_SPARC_UA64 54
01154 #define R_SPARC_UA16 55
01155
01156 #define R_SPARC_NUM 56
01157
01158
01159
01160 #define DT_SPARC_REGISTER 0x70000001
01161 #define DT_SPARC_NUM 2
01162
01163
01164
01165 #define HWCAP_SPARC_FLUSH 1
01166 #define HWCAP_SPARC_STBAR 2
01167 #define HWCAP_SPARC_SWAP 4
01168 #define HWCAP_SPARC_MULDIV 8
01169 #define HWCAP_SPARC_V9 16
01170 #define HWCAP_SPARC_ULTRA3 32
01171
01172
01173
01174
01175
01176 #define EF_MIPS_NOREORDER 1
01177 #define EF_MIPS_PIC 2
01178 #define EF_MIPS_CPIC 4
01179 #define EF_MIPS_XGOT 8
01180 #define EF_MIPS_64BIT_WHIRL 16
01181 #define EF_MIPS_ABI2 32
01182 #define EF_MIPS_ABI_ON32 64
01183 #define EF_MIPS_ARCH 0xf0000000
01184
01185
01186
01187 #define EF_MIPS_ARCH_1 0x00000000
01188 #define EF_MIPS_ARCH_2 0x10000000
01189 #define EF_MIPS_ARCH_3 0x20000000
01190 #define EF_MIPS_ARCH_4 0x30000000
01191 #define EF_MIPS_ARCH_5 0x40000000
01192 #define EF_MIPS_ARCH_32 0x60000000
01193 #define EF_MIPS_ARCH_64 0x70000000
01194
01195
01196
01197 #define E_MIPS_ARCH_1 0x00000000
01198 #define E_MIPS_ARCH_2 0x10000000
01199 #define E_MIPS_ARCH_3 0x20000000
01200 #define E_MIPS_ARCH_4 0x30000000
01201 #define E_MIPS_ARCH_5 0x40000000
01202 #define E_MIPS_ARCH_32 0x60000000
01203 #define E_MIPS_ARCH_64 0x70000000
01204
01205
01206
01207 #define SHN_MIPS_ACOMMON 0xff00
01208 #define SHN_MIPS_TEXT 0xff01
01209 #define SHN_MIPS_DATA 0xff02
01210 #define SHN_MIPS_SCOMMON 0xff03
01211 #define SHN_MIPS_SUNDEFINED 0xff04
01212
01213
01214
01215 #define SHT_MIPS_LIBLIST 0x70000000
01216 #define SHT_MIPS_MSYM 0x70000001
01217 #define SHT_MIPS_CONFLICT 0x70000002
01218 #define SHT_MIPS_GPTAB 0x70000003
01219 #define SHT_MIPS_UCODE 0x70000004
01220 #define SHT_MIPS_DEBUG 0x70000005
01221 #define SHT_MIPS_REGINFO 0x70000006
01222 #define SHT_MIPS_PACKAGE 0x70000007
01223 #define SHT_MIPS_PACKSYM 0x70000008
01224 #define SHT_MIPS_RELD 0x70000009
01225 #define SHT_MIPS_IFACE 0x7000000b
01226 #define SHT_MIPS_CONTENT 0x7000000c
01227 #define SHT_MIPS_OPTIONS 0x7000000d
01228 #define SHT_MIPS_SHDR 0x70000010
01229 #define SHT_MIPS_FDESC 0x70000011
01230 #define SHT_MIPS_EXTSYM 0x70000012
01231 #define SHT_MIPS_DENSE 0x70000013
01232 #define SHT_MIPS_PDESC 0x70000014
01233 #define SHT_MIPS_LOCSYM 0x70000015
01234 #define SHT_MIPS_AUXSYM 0x70000016
01235 #define SHT_MIPS_OPTSYM 0x70000017
01236 #define SHT_MIPS_LOCSTR 0x70000018
01237 #define SHT_MIPS_LINE 0x70000019
01238 #define SHT_MIPS_RFDESC 0x7000001a
01239 #define SHT_MIPS_DELTASYM 0x7000001b
01240 #define SHT_MIPS_DELTAINST 0x7000001c
01241 #define SHT_MIPS_DELTACLASS 0x7000001d
01242 #define SHT_MIPS_DWARF 0x7000001e
01243 #define SHT_MIPS_DELTADECL 0x7000001f
01244 #define SHT_MIPS_SYMBOL_LIB 0x70000020
01245 #define SHT_MIPS_EVENTS 0x70000021
01246 #define SHT_MIPS_TRANSLATE 0x70000022
01247 #define SHT_MIPS_PIXIE 0x70000023
01248 #define SHT_MIPS_XLATE 0x70000024
01249 #define SHT_MIPS_XLATE_DEBUG 0x70000025
01250 #define SHT_MIPS_WHIRL 0x70000026
01251 #define SHT_MIPS_EH_REGION 0x70000027
01252 #define SHT_MIPS_XLATE_OLD 0x70000028
01253 #define SHT_MIPS_PDR_EXCEPTION 0x70000029
01254
01255
01256
01257 #define SHF_MIPS_GPREL 0x10000000
01258 #define SHF_MIPS_MERGE 0x20000000
01259 #define SHF_MIPS_ADDR 0x40000000
01260 #define SHF_MIPS_STRINGS 0x80000000
01261 #define SHF_MIPS_NOSTRIP 0x08000000
01262 #define SHF_MIPS_LOCAL 0x04000000
01263 #define SHF_MIPS_NAMES 0x02000000
01264 #define SHF_MIPS_NODUPE 0x01000000
01265
01266
01267
01268
01269
01270 #define STO_MIPS_DEFAULT 0x0
01271 #define STO_MIPS_INTERNAL 0x1
01272 #define STO_MIPS_HIDDEN 0x2
01273 #define STO_MIPS_PROTECTED 0x3
01274 #define STO_MIPS_SC_ALIGN_UNUSED 0xff
01275
01276
01277 #define STB_MIPS_SPLIT_COMMON 13
01278
01279
01280
01281 typedef union
01282 {
01283 struct
01284 {
01285 Elf32_Word gt_current_g_value;
01286 Elf32_Word gt_unused;
01287 } gt_header;
01288 struct
01289 {
01290 Elf32_Word gt_g_value;
01291 Elf32_Word gt_bytes;
01292 } gt_entry;
01293 } Elf32_gptab;
01294
01295
01296
01297 typedef struct
01298 {
01299 Elf32_Word ri_gprmask;
01300 Elf32_Word ri_cprmask[4];
01301 Elf32_Sword ri_gp_value;
01302 } Elf32_RegInfo;
01303
01304
01305
01306 typedef struct
01307 {
01308 unsigned char kind;
01309
01310 unsigned char size;
01311 Elf32_Section section;
01312
01313 Elf32_Word info;
01314 } Elf_Options;
01315
01316
01317
01318 #define ODK_NULL 0
01319 #define ODK_REGINFO 1
01320 #define ODK_EXCEPTIONS 2
01321 #define ODK_PAD 3
01322 #define ODK_HWPATCH 4
01323 #define ODK_FILL 5
01324 #define ODK_TAGS 6
01325 #define ODK_HWAND 7
01326 #define ODK_HWOR 8
01327
01328
01329
01330 #define OEX_FPU_MIN 0x1f
01331 #define OEX_FPU_MAX 0x1f00
01332 #define OEX_PAGE0 0x10000
01333 #define OEX_SMM 0x20000
01334 #define OEX_FPDBUG 0x40000
01335 #define OEX_PRECISEFP OEX_FPDBUG
01336 #define OEX_DISMISS 0x80000
01337
01338 #define OEX_FPU_INVAL 0x10
01339 #define OEX_FPU_DIV0 0x08
01340 #define OEX_FPU_OFLO 0x04
01341 #define OEX_FPU_UFLO 0x02
01342 #define OEX_FPU_INEX 0x01
01343
01344
01345
01346 #define OHW_R4KEOP 0x1
01347 #define OHW_R8KPFETCH 0x2
01348 #define OHW_R5KEOP 0x4
01349 #define OHW_R5KCVTL 0x8
01350
01351 #define OPAD_PREFIX 0x1
01352 #define OPAD_POSTFIX 0x2
01353 #define OPAD_SYMBOL 0x4
01354
01355
01356
01357 typedef struct
01358 {
01359 Elf32_Word hwp_flags1;
01360 Elf32_Word hwp_flags2;
01361 } Elf_Options_Hw;
01362
01363
01364
01365 #define OHWA0_R4KEOP_CHECKED 0x00000001
01366 #define OHWA1_R4KEOP_CLEAN 0x00000002
01367
01368
01369
01370 #define R_MIPS_NONE 0
01371 #define R_MIPS_16 1
01372 #define R_MIPS_32 2
01373 #define R_MIPS_REL32 3
01374 #define R_MIPS_26 4
01375 #define R_MIPS_HI16 5
01376 #define R_MIPS_LO16 6
01377 #define R_MIPS_GPREL16 7
01378 #define R_MIPS_LITERAL 8
01379 #define R_MIPS_GOT16 9
01380 #define R_MIPS_PC16 10
01381 #define R_MIPS_CALL16 11
01382 #define R_MIPS_GPREL32 12
01383
01384 #define R_MIPS_SHIFT5 16
01385 #define R_MIPS_SHIFT6 17
01386 #define R_MIPS_64 18
01387 #define R_MIPS_GOT_DISP 19
01388 #define R_MIPS_GOT_PAGE 20
01389 #define R_MIPS_GOT_OFST 21
01390 #define R_MIPS_GOT_HI16 22
01391 #define R_MIPS_GOT_LO16 23
01392 #define R_MIPS_SUB 24
01393 #define R_MIPS_INSERT_A 25
01394 #define R_MIPS_INSERT_B 26
01395 #define R_MIPS_DELETE 27
01396 #define R_MIPS_HIGHER 28
01397 #define R_MIPS_HIGHEST 29
01398 #define R_MIPS_CALL_HI16 30
01399 #define R_MIPS_CALL_LO16 31
01400 #define R_MIPS_SCN_DISP 32
01401 #define R_MIPS_REL16 33
01402 #define R_MIPS_ADD_IMMEDIATE 34
01403 #define R_MIPS_PJUMP 35
01404 #define R_MIPS_RELGOT 36
01405 #define R_MIPS_JALR 37
01406
01407 #define R_MIPS_NUM 38
01408
01409
01410
01411 #define PT_MIPS_REGINFO 0x70000000
01412 #define PT_MIPS_RTPROC 0x70000001
01413 #define PT_MIPS_OPTIONS 0x70000002
01414
01415
01416
01417 #define PF_MIPS_LOCAL 0x10000000
01418
01419
01420
01421 #define DT_MIPS_RLD_VERSION 0x70000001
01422 #define DT_MIPS_TIME_STAMP 0x70000002
01423 #define DT_MIPS_ICHECKSUM 0x70000003
01424 #define DT_MIPS_IVERSION 0x70000004
01425 #define DT_MIPS_FLAGS 0x70000005
01426 #define DT_MIPS_BASE_ADDRESS 0x70000006
01427 #define DT_MIPS_MSYM 0x70000007
01428 #define DT_MIPS_CONFLICT 0x70000008
01429 #define DT_MIPS_LIBLIST 0x70000009
01430 #define DT_MIPS_LOCAL_GOTNO 0x7000000a
01431 #define DT_MIPS_CONFLICTNO 0x7000000b
01432 #define DT_MIPS_LIBLISTNO 0x70000010
01433 #define DT_MIPS_SYMTABNO 0x70000011
01434 #define DT_MIPS_UNREFEXTNO 0x70000012
01435 #define DT_MIPS_GOTSYM 0x70000013
01436 #define DT_MIPS_HIPAGENO 0x70000014
01437 #define DT_MIPS_RLD_MAP 0x70000016
01438 #define DT_MIPS_DELTA_CLASS 0x70000017
01439 #define DT_MIPS_DELTA_CLASS_NO 0x70000018
01440
01441 #define DT_MIPS_DELTA_INSTANCE 0x70000019
01442 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
01443
01444 #define DT_MIPS_DELTA_RELOC 0x7000001b
01445 #define DT_MIPS_DELTA_RELOC_NO 0x7000001c
01446
01447 #define DT_MIPS_DELTA_SYM 0x7000001d
01448
01449 #define DT_MIPS_DELTA_SYM_NO 0x7000001e
01450
01451 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
01452
01453 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
01454
01455 #define DT_MIPS_CXX_FLAGS 0x70000022
01456 #define DT_MIPS_PIXIE_INIT 0x70000023
01457 #define DT_MIPS_SYMBOL_LIB 0x70000024
01458 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
01459 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
01460 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
01461 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
01462 #define DT_MIPS_OPTIONS 0x70000029
01463 #define DT_MIPS_INTERFACE 0x7000002a
01464 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
01465 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
01466 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
01467
01468 #define DT_MIPS_PERF_SUFFIX 0x7000002e
01469
01470 #define DT_MIPS_COMPACT_SIZE 0x7000002f
01471 #define DT_MIPS_GP_VALUE 0x70000030
01472 #define DT_MIPS_AUX_DYNAMIC 0x70000031
01473 #define DT_MIPS_NUM 0x32
01474
01475
01476
01477 #define RHF_NONE 0
01478 #define RHF_QUICKSTART (1 << 0)
01479 #define RHF_NOTPOT (1 << 1)
01480 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
01481 #define RHF_NO_MOVE (1 << 3)
01482 #define RHF_SGI_ONLY (1 << 4)
01483 #define RHF_GUARANTEE_INIT (1 << 5)
01484 #define RHF_DELTA_C_PLUS_PLUS (1 << 6)
01485 #define RHF_GUARANTEE_START_INIT (1 << 7)
01486 #define RHF_PIXIE (1 << 8)
01487 #define RHF_DEFAULT_DELAY_LOAD (1 << 9)
01488 #define RHF_REQUICKSTART (1 << 10)
01489 #define RHF_REQUICKSTARTED (1 << 11)
01490 #define RHF_CORD (1 << 12)
01491 #define RHF_NO_UNRES_UNDEF (1 << 13)
01492 #define RHF_RLD_ORDER_SAFE (1 << 14)
01493
01494
01495
01496 typedef struct
01497 {
01498 Elf32_Word l_name;
01499 Elf32_Word l_time_stamp;
01500 Elf32_Word l_checksum;
01501 Elf32_Word l_version;
01502 Elf32_Word l_flags;
01503 } Elf32_Lib;
01504
01505 typedef struct
01506 {
01507 Elf64_Word l_name;
01508 Elf64_Word l_time_stamp;
01509 Elf64_Word l_checksum;
01510 Elf64_Word l_version;
01511 Elf64_Word l_flags;
01512 } Elf64_Lib;
01513
01514
01515
01516
01517 #define LL_NONE 0
01518 #define LL_EXACT_MATCH (1 << 0)
01519 #define LL_IGNORE_INT_VER (1 << 1)
01520 #define LL_REQUIRE_MINOR (1 << 2)
01521 #define LL_EXPORTS (1 << 3)
01522 #define LL_DELAY_LOAD (1 << 4)
01523 #define LL_DELTA (1 << 5)
01524
01525
01526
01527 typedef Elf32_Addr Elf32_Conflict;
01528
01529
01530
01531
01532
01533
01534 #define EF_PARISC_TRAPNIL 0x00010000
01535 #define EF_PARISC_EXT 0x00020000
01536 #define EF_PARISC_LSB 0x00040000
01537 #define EF_PARISC_WIDE 0x00080000
01538 #define EF_PARISC_NO_KABP 0x00100000
01539
01540 #define EF_PARISC_LAZYSWAP 0x00400000
01541 #define EF_PARISC_ARCH 0x0000ffff
01542
01543
01544
01545 #define EFA_PARISC_1_0 0x020b
01546 #define EFA_PARISC_1_1 0x0210
01547 #define EFA_PARISC_2_0 0x0214
01548
01549
01550
01551 #define SHN_PARISC_ANSI_COMMON 0xff00
01552
01553 #define SHN_PARISC_HUGE_COMMON 0xff01
01554
01555
01556
01557 #define SHT_PARISC_EXT 0x70000000
01558 #define SHT_PARISC_UNWIND 0x70000001
01559 #define SHT_PARISC_DOC 0x70000002
01560
01561
01562
01563 #define SHF_PARISC_SHORT 0x20000000
01564 #define SHF_PARISC_HUGE 0x40000000
01565 #define SHF_PARISC_SBP 0x80000000
01566
01567
01568
01569 #define STT_PARISC_MILLICODE 13
01570
01571 #define STT_HP_OPAQUE (STT_LOOS + 0x1)
01572 #define STT_HP_STUB (STT_LOOS + 0x2)
01573
01574
01575
01576 #define R_PARISC_NONE 0
01577 #define R_PARISC_DIR32 1
01578 #define R_PARISC_DIR21L 2
01579 #define R_PARISC_DIR17R 3
01580 #define R_PARISC_DIR17F 4
01581 #define R_PARISC_DIR14R 6
01582 #define R_PARISC_PCREL32 9
01583 #define R_PARISC_PCREL21L 10
01584 #define R_PARISC_PCREL17R 11
01585 #define R_PARISC_PCREL17F 12
01586 #define R_PARISC_PCREL14R 14
01587 #define R_PARISC_DPREL21L 18
01588 #define R_PARISC_DPREL14R 22
01589 #define R_PARISC_GPREL21L 26
01590 #define R_PARISC_GPREL14R 30
01591 #define R_PARISC_LTOFF21L 34
01592 #define R_PARISC_LTOFF14R 38
01593 #define R_PARISC_SECREL32 41
01594 #define R_PARISC_SEGBASE 48
01595 #define R_PARISC_SEGREL32 49
01596 #define R_PARISC_PLTOFF21L 50
01597 #define R_PARISC_PLTOFF14R 54
01598 #define R_PARISC_LTOFF_FPTR32 57
01599 #define R_PARISC_LTOFF_FPTR21L 58
01600 #define R_PARISC_LTOFF_FPTR14R 62
01601 #define R_PARISC_FPTR64 64
01602 #define R_PARISC_PLABEL32 65
01603 #define R_PARISC_PCREL64 72
01604 #define R_PARISC_PCREL22F 74
01605 #define R_PARISC_PCREL14WR 75
01606 #define R_PARISC_PCREL14DR 76
01607 #define R_PARISC_PCREL16F 77
01608 #define R_PARISC_PCREL16WF 78
01609 #define R_PARISC_PCREL16DF 79
01610 #define R_PARISC_DIR64 80
01611 #define R_PARISC_DIR14WR 83
01612 #define R_PARISC_DIR14DR 84
01613 #define R_PARISC_DIR16F 85
01614 #define R_PARISC_DIR16WF 86
01615 #define R_PARISC_DIR16DF 87
01616 #define R_PARISC_GPREL64 88
01617 #define R_PARISC_GPREL14WR 91
01618 #define R_PARISC_GPREL14DR 92
01619 #define R_PARISC_GPREL16F 93
01620 #define R_PARISC_GPREL16WF 94
01621 #define R_PARISC_GPREL16DF 95
01622 #define R_PARISC_LTOFF64 96
01623 #define R_PARISC_LTOFF14WR 99
01624 #define R_PARISC_LTOFF14DR 100
01625 #define R_PARISC_LTOFF16F 101
01626 #define R_PARISC_LTOFF16WF 102
01627 #define R_PARISC_LTOFF16DF 103
01628 #define R_PARISC_SECREL64 104
01629 #define R_PARISC_SEGREL64 112
01630 #define R_PARISC_PLTOFF14WR 115
01631 #define R_PARISC_PLTOFF14DR 116
01632 #define R_PARISC_PLTOFF16F 117
01633 #define R_PARISC_PLTOFF16WF 118
01634 #define R_PARISC_PLTOFF16DF 119
01635 #define R_PARISC_LTOFF_FPTR64 120
01636 #define R_PARISC_LTOFF_FPTR14WR 123
01637 #define R_PARISC_LTOFF_FPTR14DR 124
01638 #define R_PARISC_LTOFF_FPTR16F 125
01639 #define R_PARISC_LTOFF_FPTR16WF 126
01640 #define R_PARISC_LTOFF_FPTR16DF 127
01641 #define R_PARISC_LORESERVE 128
01642 #define R_PARISC_COPY 128
01643 #define R_PARISC_IPLT 129
01644 #define R_PARISC_EPLT 130
01645 #define R_PARISC_TPREL32 153
01646 #define R_PARISC_TPREL21L 154
01647 #define R_PARISC_TPREL14R 158
01648 #define R_PARISC_LTOFF_TP21L 162
01649 #define R_PARISC_LTOFF_TP14R 166
01650 #define R_PARISC_LTOFF_TP14F 167
01651 #define R_PARISC_TPREL64 216
01652 #define R_PARISC_TPREL14WR 219
01653 #define R_PARISC_TPREL14DR 220
01654 #define R_PARISC_TPREL16F 221
01655 #define R_PARISC_TPREL16WF 222
01656 #define R_PARISC_TPREL16DF 223
01657 #define R_PARISC_LTOFF_TP64 224
01658 #define R_PARISC_LTOFF_TP14WR 227
01659 #define R_PARISC_LTOFF_TP14DR 228
01660 #define R_PARISC_LTOFF_TP16F 229
01661 #define R_PARISC_LTOFF_TP16WF 230
01662 #define R_PARISC_LTOFF_TP16DF 231
01663 #define R_PARISC_HIRESERVE 255
01664
01665
01666
01667 #define PT_HP_TLS (PT_LOOS + 0x0)
01668 #define PT_HP_CORE_NONE (PT_LOOS + 0x1)
01669 #define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
01670 #define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
01671 #define PT_HP_CORE_COMM (PT_LOOS + 0x4)
01672 #define PT_HP_CORE_PROC (PT_LOOS + 0x5)
01673 #define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
01674 #define PT_HP_CORE_STACK (PT_LOOS + 0x7)
01675 #define PT_HP_CORE_SHM (PT_LOOS + 0x8)
01676 #define PT_HP_CORE_MMF (PT_LOOS + 0x9)
01677 #define PT_HP_PARALLEL (PT_LOOS + 0x10)
01678 #define PT_HP_FASTBIND (PT_LOOS + 0x11)
01679 #define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
01680 #define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
01681 #define PT_HP_STACK (PT_LOOS + 0x14)
01682
01683 #define PT_PARISC_ARCHEXT 0x70000000
01684 #define PT_PARISC_UNWIND 0x70000001
01685
01686
01687
01688 #define PF_PARISC_SBP 0x08000000
01689
01690 #define PF_HP_PAGE_SIZE 0x00100000
01691 #define PF_HP_FAR_SHARED 0x00200000
01692 #define PF_HP_NEAR_SHARED 0x00400000
01693 #define PF_HP_CODE 0x01000000
01694 #define PF_HP_MODIFY 0x02000000
01695 #define PF_HP_LAZYSWAP 0x04000000
01696 #define PF_HP_SBP 0x08000000
01697
01698
01699
01700
01701
01702
01703 #define EF_ALPHA_32BIT 1
01704 #define EF_ALPHA_CANRELAX 2
01705
01706
01707
01708
01709 #define SHT_ALPHA_DEBUG 0x70000001
01710 #define SHT_ALPHA_REGINFO 0x70000002
01711
01712
01713
01714 #define SHF_ALPHA_GPREL 0x10000000
01715
01716
01717 #define STO_ALPHA_NOPV 0x80
01718 #define STO_ALPHA_STD_GPLOAD 0x88
01719
01720
01721
01722 #define R_ALPHA_NONE 0
01723 #define R_ALPHA_REFLONG 1
01724 #define R_ALPHA_REFQUAD 2
01725 #define R_ALPHA_GPREL32 3
01726 #define R_ALPHA_LITERAL 4
01727 #define R_ALPHA_LITUSE 5
01728 #define R_ALPHA_GPDISP 6
01729 #define R_ALPHA_BRADDR 7
01730 #define R_ALPHA_HINT 8
01731 #define R_ALPHA_SREL16 9
01732 #define R_ALPHA_SREL32 10
01733 #define R_ALPHA_SREL64 11
01734 #define R_ALPHA_GPRELHIGH 17
01735 #define R_ALPHA_GPRELLOW 18
01736 #define R_ALPHA_GPREL16 19
01737 #define R_ALPHA_COPY 24
01738 #define R_ALPHA_GLOB_DAT 25
01739 #define R_ALPHA_JMP_SLOT 26
01740 #define R_ALPHA_RELATIVE 27
01741
01742 #define R_ALPHA_NUM 28
01743
01744
01745
01746
01747
01748 #define EF_PPC_EMB 0x80000000
01749
01750
01751 #define EF_PPC_RELOCATABLE 0x00010000
01752 #define EF_PPC_RELOCATABLE_LIB 0x00008000
01753
01754
01755
01756 #define R_PPC_NONE 0
01757 #define R_PPC_ADDR32 1
01758 #define R_PPC_ADDR24 2
01759 #define R_PPC_ADDR16 3
01760 #define R_PPC_ADDR16_LO 4
01761 #define R_PPC_ADDR16_HI 5
01762 #define R_PPC_ADDR16_HA 6
01763 #define R_PPC_ADDR14 7
01764 #define R_PPC_ADDR14_BRTAKEN 8
01765 #define R_PPC_ADDR14_BRNTAKEN 9
01766 #define R_PPC_REL24 10
01767 #define R_PPC_REL14 11
01768 #define R_PPC_REL14_BRTAKEN 12
01769 #define R_PPC_REL14_BRNTAKEN 13
01770 #define R_PPC_GOT16 14
01771 #define R_PPC_GOT16_LO 15
01772 #define R_PPC_GOT16_HI 16
01773 #define R_PPC_GOT16_HA 17
01774 #define R_PPC_PLTREL24 18
01775 #define R_PPC_COPY 19
01776 #define R_PPC_GLOB_DAT 20
01777 #define R_PPC_JMP_SLOT 21
01778 #define R_PPC_RELATIVE 22
01779 #define R_PPC_LOCAL24PC 23
01780 #define R_PPC_UADDR32 24
01781 #define R_PPC_UADDR16 25
01782 #define R_PPC_REL32 26
01783 #define R_PPC_PLT32 27
01784 #define R_PPC_PLTREL32 28
01785 #define R_PPC_PLT16_LO 29
01786 #define R_PPC_PLT16_HI 30
01787 #define R_PPC_PLT16_HA 31
01788 #define R_PPC_SDAREL16 32
01789 #define R_PPC_SECTOFF 33
01790 #define R_PPC_SECTOFF_LO 34
01791 #define R_PPC_SECTOFF_HI 35
01792 #define R_PPC_SECTOFF_HA 36
01793
01794 #define R_PPC_NUM 37
01795
01796
01797
01798 #define R_PPC_EMB_NADDR32 101
01799 #define R_PPC_EMB_NADDR16 102
01800 #define R_PPC_EMB_NADDR16_LO 103
01801 #define R_PPC_EMB_NADDR16_HI 104
01802 #define R_PPC_EMB_NADDR16_HA 105
01803 #define R_PPC_EMB_SDAI16 106
01804 #define R_PPC_EMB_SDA2I16 107
01805 #define R_PPC_EMB_SDA2REL 108
01806 #define R_PPC_EMB_SDA21 109
01807 #define R_PPC_EMB_MRKREF 110
01808 #define R_PPC_EMB_RELSEC16 111
01809 #define R_PPC_EMB_RELST_LO 112
01810 #define R_PPC_EMB_RELST_HI 113
01811 #define R_PPC_EMB_RELST_HA 114
01812 #define R_PPC_EMB_BIT_FLD 115
01813 #define R_PPC_EMB_RELSDA 116
01814
01815
01816 #define R_PPC_DIAB_SDA21_LO 180
01817 #define R_PPC_DIAB_SDA21_HI 181
01818 #define R_PPC_DIAB_SDA21_HA 182
01819 #define R_PPC_DIAB_RELSDA_LO 183
01820 #define R_PPC_DIAB_RELSDA_HI 184
01821 #define R_PPC_DIAB_RELSDA_HA 185
01822
01823
01824
01825 #define R_PPC_TOC16 255
01826
01827
01828
01829
01830
01831 #define EF_ARM_RELEXEC 0x01
01832 #define EF_ARM_HASENTRY 0x02
01833 #define EF_ARM_INTERWORK 0x04
01834 #define EF_ARM_APCS_26 0x08
01835 #define EF_ARM_APCS_FLOAT 0x10
01836 #define EF_ARM_PIC 0x20
01837 #define EF_ARM_ALIGN8 0x40
01838 #define EF_ARM_NEW_ABI 0x80
01839 #define EF_ARM_OLD_ABI 0x100
01840
01841
01842
01843 #define EF_ARM_SYMSARESORTED 0x04
01844 #define EF_ARM_DYNSYMSUSESEGIDX 0x08
01845 #define EF_ARM_MAPSYMSFIRST 0x10
01846 #define EF_ARM_EABIMASK 0XFF000000
01847
01848 #define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
01849 #define EF_ARM_EABI_UNKNOWN 0x00000000
01850 #define EF_ARM_EABI_VER1 0x01000000
01851 #define EF_ARM_EABI_VER2 0x02000000
01852
01853
01854 #define STT_ARM_TFUNC 0xd
01855
01856
01857 #define SHF_ARM_ENTRYSECT 0x10000000
01858 #define SHF_ARM_COMDEF 0x80000000
01859
01860
01861
01862 #define PF_ARM_SB 0x10000000
01863
01864
01865
01866 #define R_ARM_NONE 0
01867 #define R_ARM_PC24 1
01868 #define R_ARM_ABS32 2
01869 #define R_ARM_REL32 3
01870 #define R_ARM_PC13 4
01871 #define R_ARM_ABS16 5
01872 #define R_ARM_ABS12 6
01873 #define R_ARM_THM_ABS5 7
01874 #define R_ARM_ABS8 8
01875 #define R_ARM_SBREL32 9
01876 #define R_ARM_THM_PC22 10
01877 #define R_ARM_THM_PC8 11
01878 #define R_ARM_AMP_VCALL9 12
01879 #define R_ARM_SWI24 13
01880 #define R_ARM_THM_SWI8 14
01881 #define R_ARM_XPC25 15
01882 #define R_ARM_THM_XPC22 16
01883 #define R_ARM_COPY 20
01884 #define R_ARM_GLOB_DAT 21
01885 #define R_ARM_JUMP_SLOT 22
01886 #define R_ARM_RELATIVE 23
01887 #define R_ARM_GOTOFF 24
01888 #define R_ARM_GOTPC 25
01889 #define R_ARM_GOT32 26
01890 #define R_ARM_PLT32 27
01891 #define R_ARM_ALU_PCREL_7_0 32
01892 #define R_ARM_ALU_PCREL_15_8 33
01893 #define R_ARM_ALU_PCREL_23_15 34
01894 #define R_ARM_LDR_SBREL_11_0 35
01895 #define R_ARM_ALU_SBREL_19_12 36
01896 #define R_ARM_ALU_SBREL_27_20 37
01897 #define R_ARM_GNU_VTENTRY 100
01898 #define R_ARM_GNU_VTINHERIT 101
01899 #define R_ARM_THM_PC11 102
01900 #define R_ARM_THM_PC9 103
01901 #define R_ARM_RXPC25 249
01902 #define R_ARM_RSBREL32 250
01903 #define R_ARM_THM_RPC22 251
01904 #define R_ARM_RREL32 252
01905 #define R_ARM_RABS22 253
01906 #define R_ARM_RPC24 254
01907 #define R_ARM_RBASE 255
01908
01909 #define R_ARM_NUM 256
01910
01911
01912
01913
01914 #define EF_IA_64_MASKOS 0x0000000f
01915 #define EF_IA_64_ABI64 0x00000010
01916 #define EF_IA_64_ARCH 0xff000000
01917
01918
01919 #define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
01920 #define PT_IA_64_UNWIND (PT_LOPROC + 1)
01921
01922
01923 #define PF_IA_64_NORECOV 0x80000000
01924
01925
01926 #define SHT_IA_64_EXT (SHT_LOPROC + 0)
01927 #define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
01928
01929
01930 #define SHF_IA_64_SHORT 0x10000000
01931 #define SHF_IA_64_NORECOV 0x20000000
01932
01933
01934 #define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
01935 #define DT_IA_64_NUM 1
01936
01937
01938 #define R_IA64_NONE 0x00
01939 #define R_IA64_IMM14 0x21
01940 #define R_IA64_IMM22 0x22
01941 #define R_IA64_IMM64 0x23
01942 #define R_IA64_DIR32MSB 0x24
01943 #define R_IA64_DIR32LSB 0x25
01944 #define R_IA64_DIR64MSB 0x26
01945 #define R_IA64_DIR64LSB 0x27
01946 #define R_IA64_GPREL22 0x2a
01947 #define R_IA64_GPREL64I 0x2b
01948 #define R_IA64_GPREL32MSB 0x2c
01949 #define R_IA64_GPREL32LSB 0x2d
01950 #define R_IA64_GPREL64MSB 0x2e
01951 #define R_IA64_GPREL64LSB 0x2f
01952 #define R_IA64_LTOFF22 0x32
01953 #define R_IA64_LTOFF64I 0x33
01954 #define R_IA64_PLTOFF22 0x3a
01955 #define R_IA64_PLTOFF64I 0x3b
01956 #define R_IA64_PLTOFF64MSB 0x3e
01957 #define R_IA64_PLTOFF64LSB 0x3f
01958 #define R_IA64_FPTR64I 0x43
01959 #define R_IA64_FPTR32MSB 0x44
01960 #define R_IA64_FPTR32LSB 0x45
01961 #define R_IA64_FPTR64MSB 0x46
01962 #define R_IA64_FPTR64LSB 0x47
01963 #define R_IA64_PCREL60B 0x48
01964 #define R_IA64_PCREL21B 0x49
01965 #define R_IA64_PCREL21M 0x4a
01966 #define R_IA64_PCREL21F 0x4b
01967 #define R_IA64_PCREL32MSB 0x4c
01968 #define R_IA64_PCREL32LSB 0x4d
01969 #define R_IA64_PCREL64MSB 0x4e
01970 #define R_IA64_PCREL64LSB 0x4f
01971 #define R_IA64_LTOFF_FPTR22 0x52
01972 #define R_IA64_LTOFF_FPTR64I 0x53
01973 #define R_IA64_LTOFF_FPTR32MSB 0x54
01974 #define R_IA64_LTOFF_FPTR32LSB 0x55
01975 #define R_IA64_LTOFF_FPTR64MSB 0x56
01976 #define R_IA64_LTOFF_FPTR64LSB 0x57
01977 #define R_IA64_SEGREL32MSB 0x5c
01978 #define R_IA64_SEGREL32LSB 0x5d
01979 #define R_IA64_SEGREL64MSB 0x5e
01980 #define R_IA64_SEGREL64LSB 0x5f
01981 #define R_IA64_SECREL32MSB 0x64
01982 #define R_IA64_SECREL32LSB 0x65
01983 #define R_IA64_SECREL64MSB 0x66
01984 #define R_IA64_SECREL64LSB 0x67
01985 #define R_IA64_REL32MSB 0x6c
01986 #define R_IA64_REL32LSB 0x6d
01987 #define R_IA64_REL64MSB 0x6e
01988 #define R_IA64_REL64LSB 0x6f
01989 #define R_IA64_LTV32MSB 0x74
01990 #define R_IA64_LTV32LSB 0x75
01991 #define R_IA64_LTV64MSB 0x76
01992 #define R_IA64_LTV64LSB 0x77
01993 #define R_IA64_PCREL21BI 0x79
01994 #define R_IA64_PCREL22 0x7a
01995 #define R_IA64_PCREL64I 0x7b
01996 #define R_IA64_IPLTMSB 0x80
01997 #define R_IA64_IPLTLSB 0x81
01998 #define R_IA64_COPY 0x84
01999 #define R_IA64_SUB 0x85
02000 #define R_IA64_LTOFF22X 0x86
02001 #define R_IA64_LDXMOV 0x87
02002 #define R_IA64_TPREL14 0x91
02003 #define R_IA64_TPREL22 0x92
02004 #define R_IA64_TPREL64I 0x93
02005 #define R_IA64_TPREL64MSB 0x96
02006 #define R_IA64_TPREL64LSB 0x97
02007 #define R_IA64_LTOFF_TPREL22 0x9a
02008 #define R_IA64_DTPMOD64MSB 0xa6
02009 #define R_IA64_DTPMOD64LSB 0xa7
02010 #define R_IA64_LTOFF_DTPMOD22 0xaa
02011 #define R_IA64_DTPREL14 0xb1
02012 #define R_IA64_DTPREL22 0xb2
02013 #define R_IA64_DTPREL64I 0xb3
02014 #define R_IA64_DTPREL32MSB 0xb4
02015 #define R_IA64_DTPREL32LSB 0xb5
02016 #define R_IA64_DTPREL64MSB 0xb6
02017 #define R_IA64_DTPREL64LSB 0xb7
02018 #define R_IA64_LTOFF_DTPREL22 0xba
02019
02020
02021
02022
02023 #define R_SH_NONE 0
02024 #define R_SH_DIR32 1
02025 #define R_SH_REL32 2
02026 #define R_SH_DIR8WPN 3
02027 #define R_SH_IND12W 4
02028 #define R_SH_DIR8WPL 5
02029 #define R_SH_DIR8WPZ 6
02030 #define R_SH_DIR8BP 7
02031 #define R_SH_DIR8W 8
02032 #define R_SH_DIR8L 9
02033 #define R_SH_SWITCH16 25
02034 #define R_SH_SWITCH32 26
02035 #define R_SH_USES 27
02036 #define R_SH_COUNT 28
02037 #define R_SH_ALIGN 29
02038 #define R_SH_CODE 30
02039 #define R_SH_DATA 31
02040 #define R_SH_LABEL 32
02041 #define R_SH_SWITCH8 33
02042 #define R_SH_GNU_VTINHERIT 34
02043 #define R_SH_GNU_VTENTRY 35
02044 #define R_SH_GOT32 160
02045 #define R_SH_PLT32 161
02046 #define R_SH_COPY 162
02047 #define R_SH_GLOB_DAT 163
02048 #define R_SH_JMP_SLOT 164
02049 #define R_SH_RELATIVE 165
02050 #define R_SH_GOTOFF 166
02051 #define R_SH_GOTPC 167
02052
02053 #define R_SH_NUM 256
02054
02055
02056
02057 #define R_390_NONE 0
02058 #define R_390_8 1
02059 #define R_390_12 2
02060 #define R_390_16 3
02061 #define R_390_32 4
02062 #define R_390_PC32 5
02063 #define R_390_GOT12 6
02064 #define R_390_GOT32 7
02065 #define R_390_PLT32 8
02066 #define R_390_COPY 9
02067 #define R_390_GLOB_DAT 10
02068 #define R_390_JMP_SLOT 11
02069 #define R_390_RELATIVE 12
02070 #define R_390_GOTOFF 13
02071 #define R_390_GOTPC 14
02072 #define R_390_GOT16 15
02073 #define R_390_PC16 16
02074 #define R_390_PC16DBL 17
02075 #define R_390_PLT16DBL 18
02076 #define R_390_PC32DBL 19
02077 #define R_390_PLT32DBL 20
02078 #define R_390_GOTPCDBL 21
02079 #define R_390_64 22
02080 #define R_390_PC64 23
02081 #define R_390_GOT64 24
02082 #define R_390_PLT64 25
02083 #define R_390_GOTENT 26
02084
02085
02086 #define R_390_NUM 27
02087
02088
02089 #define R_CRIS_NONE 0
02090 #define R_CRIS_8 1
02091 #define R_CRIS_16 2
02092 #define R_CRIS_32 3
02093 #define R_CRIS_8_PCREL 4
02094 #define R_CRIS_16_PCREL 5
02095 #define R_CRIS_32_PCREL 6
02096 #define R_CRIS_GNU_VTINHERIT 7
02097 #define R_CRIS_GNU_VTENTRY 8
02098 #define R_CRIS_COPY 9
02099 #define R_CRIS_GLOB_DAT 10
02100 #define R_CRIS_JUMP_SLOT 11
02101 #define R_CRIS_RELATIVE 12
02102 #define R_CRIS_16_GOT 13
02103 #define R_CRIS_32_GOT 14
02104 #define R_CRIS_16_GOTPLT 15
02105 #define R_CRIS_32_GOTPLT 16
02106 #define R_CRIS_32_GOTREL 17
02107 #define R_CRIS_32_PLT_GOTREL 18
02108 #define R_CRIS_32_PLT_PCREL 19
02109
02110 #define R_CRIS_NUM 20
02111
02112
02113 #define R_X86_64_NONE 0
02114 #define R_X86_64_64 1
02115 #define R_X86_64_PC32 2
02116 #define R_X86_64_GOT32 3
02117 #define R_X86_64_PLT32 4
02118 #define R_X86_64_COPY 5
02119 #define R_X86_64_GLOB_DAT 6
02120 #define R_X86_64_JUMP_SLOT 7
02121 #define R_X86_64_RELATIVE 8
02122 #define R_X86_64_GOTPCREL 9
02123
02124 #define R_X86_64_32 10
02125 #define R_X86_64_32S 11
02126 #define R_X86_64_16 12
02127 #define R_X86_64_PC16 13
02128 #define R_X86_64_8 14
02129 #define R_X86_64_PC8 15
02130
02131 #define R_X86_64_NUM 16
02132
02133 #ifdef __cplusplus
02134 }
02135 #endif
02136
02137 #endif