00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _ELF_H
00022 #define _ELF_H 1
00023
00024
00025
00026 __BEGIN_DECLS
00027
00028
00029
00030 #include <stdint.h>
00031
00032
00033 typedef uint16_t Elf32_Half;
00034 typedef uint16_t Elf64_Half;
00035
00036
00037 typedef uint32_t Elf32_Word;
00038 typedef int32_t Elf32_Sword;
00039 typedef uint32_t Elf64_Word;
00040 typedef int32_t Elf64_Sword;
00041
00042
00043 typedef uint64_t Elf32_Xword;
00044 typedef int64_t Elf32_Sxword;
00045 typedef uint64_t Elf64_Xword;
00046 typedef int64_t Elf64_Sxword;
00047
00048
00049 typedef uint32_t Elf32_Addr;
00050 typedef uint64_t Elf64_Addr;
00051
00052
00053 typedef uint32_t Elf32_Off;
00054 typedef uint64_t Elf64_Off;
00055
00056
00057 typedef uint16_t Elf32_Section;
00058 typedef uint16_t Elf64_Section;
00059
00060
00061 typedef uint32_t Elf32_Symndx;
00062 typedef uint64_t Elf64_Symndx;
00063
00064
00065
00066
00067 #define EI_NIDENT (16)
00068
00069 typedef struct
00070 {
00071 unsigned char e_ident[EI_NIDENT];
00072 Elf32_Half e_type;
00073 Elf32_Half e_machine;
00074 Elf32_Word e_version;
00075 Elf32_Addr e_entry;
00076 Elf32_Off e_phoff;
00077 Elf32_Off e_shoff;
00078 Elf32_Word e_flags;
00079 Elf32_Half e_ehsize;
00080 Elf32_Half e_phentsize;
00081 Elf32_Half e_phnum;
00082 Elf32_Half e_shentsize;
00083 Elf32_Half e_shnum;
00084 Elf32_Half e_shstrndx;
00085 } Elf32_Ehdr;
00086
00087 typedef struct
00088 {
00089 unsigned char e_ident[EI_NIDENT];
00090 Elf64_Half e_type;
00091 Elf64_Half e_machine;
00092 Elf64_Word e_version;
00093 Elf64_Addr e_entry;
00094 Elf64_Off e_phoff;
00095 Elf64_Off e_shoff;
00096 Elf64_Word e_flags;
00097 Elf64_Half e_ehsize;
00098 Elf64_Half e_phentsize;
00099 Elf64_Half e_phnum;
00100 Elf64_Half e_shentsize;
00101 Elf64_Half e_shnum;
00102 Elf64_Half e_shstrndx;
00103 } Elf64_Ehdr;
00104
00105
00106
00107
00108
00109 #define EI_MAG0 0
00110 #define ELFMAG0 0x7f
00111
00112 #define EI_MAG1 1
00113 #define ELFMAG1 'E'
00114
00115 #define EI_MAG2 2
00116 #define ELFMAG2 'L'
00117
00118 #define EI_MAG3 3
00119 #define ELFMAG3 'F'
00120
00121
00122 #define ELFMAG "\177ELF"
00123 #define SELFMAG 4
00124
00125 #define EI_CLASS 4
00126 #define ELFCLASSNONE 0
00127 #define ELFCLASS32 1
00128 #define ELFCLASS64 2
00129 #define ELFCLASSNUM 3
00130
00131 #define EI_DATA 5
00132 #define ELFDATANONE 0
00133 #define ELFDATA2LSB 1
00134 #define ELFDATA2MSB 2
00135 #define ELFDATANUM 3
00136
00137 #define EI_VERSION 6
00138
00139
00140 #define EI_OSABI 7
00141 #define ELFOSABI_SYSV 0
00142 #define ELFOSABI_HPUX 1
00143 #define ELFOSABI_ARM 97
00144 #define ELFOSABI_STANDALONE 255
00145
00146 #define EI_ABIVERSION 8
00147
00148 #define EI_PAD 9
00149
00150
00151
00152 #define ET_NONE 0
00153 #define ET_REL 1
00154 #define ET_EXEC 2
00155 #define ET_DYN 3
00156 #define ET_CORE 4
00157 #define ET_NUM 5
00158 #define ET_LOPROC 0xff00
00159 #define ET_HIPROC 0xffff
00160
00161
00162
00163 #define EM_NONE 0
00164 #define EM_M32 1
00165 #define EM_SPARC 2
00166 #define EM_386 3
00167 #define EM_68K 4
00168 #define EM_88K 5
00169 #define EM_486 6
00170 #define EM_860 7
00171 #define EM_MIPS 8
00172 #define EM_S370 9
00173 #define EM_MIPS_RS4_BE 10
00174 #define EM_RS6000 11
00175
00176 #define EM_PARISC 15
00177 #define EM_nCUBE 16
00178 #define EM_VPP500 17
00179 #define EM_SPARC32PLUS 18
00180 #define EM_960 19
00181 #define EM_PPC 20
00182
00183 #define EM_V800 36
00184 #define EM_FR20 37
00185 #define EM_RH32 38
00186 #define EM_MMA 39
00187 #define EM_ARM 40
00188 #define EM_FAKE_ALPHA 41
00189 #define EM_SH 42
00190 #define EM_SPARCV9 43
00191 #define EM_TRICORE 44
00192 #define EM_ARC 45
00193 #define EM_H8_300 46
00194 #define EM_H8_300H 47
00195 #define EM_H8S 48
00196 #define EM_H8_500 49
00197 #define EM_IA_64 50
00198 #define EM_MIPS_X 51
00199 #define EM_COLDFIRE 52
00200 #define EM_68HC12 53
00201 #define EM_NUM 54
00202
00203
00204
00205
00206
00207 #define EM_ALPHA 0x9026
00208
00209
00210
00211 #define EV_NONE 0
00212 #define EV_CURRENT 1
00213 #define EV_NUM 2
00214
00215
00216
00217 typedef struct
00218 {
00219 Elf32_Word sh_name;
00220 Elf32_Word sh_type;
00221 Elf32_Word sh_flags;
00222 Elf32_Addr sh_addr;
00223 Elf32_Off sh_offset;
00224 Elf32_Word sh_size;
00225 Elf32_Word sh_link;
00226 Elf32_Word sh_info;
00227 Elf32_Word sh_addralign;
00228 Elf32_Word sh_entsize;
00229 } Elf32_Shdr;
00230
00231 typedef struct
00232 {
00233 Elf64_Word sh_name;
00234 Elf64_Word sh_type;
00235 Elf64_Xword sh_flags;
00236 Elf64_Addr sh_addr;
00237 Elf64_Off sh_offset;
00238 Elf64_Xword sh_size;
00239 Elf64_Word sh_link;
00240 Elf64_Word sh_info;
00241 Elf64_Xword sh_addralign;
00242 Elf64_Xword sh_entsize;
00243 } Elf64_Shdr;
00244
00245
00246
00247 #define SHN_UNDEF 0
00248 #define SHN_LORESERVE 0xff00
00249 #define SHN_LOPROC 0xff00
00250 #define SHN_HIPROC 0xff1f
00251 #define SHN_ABS 0xfff1
00252 #define SHN_COMMON 0xfff2
00253 #define SHN_HIRESERVE 0xffff
00254
00255
00256
00257 #define SHT_NULL 0
00258 #define SHT_PROGBITS 1
00259 #define SHT_SYMTAB 2
00260 #define SHT_STRTAB 3
00261 #define SHT_RELA 4
00262 #define SHT_HASH 5
00263 #define SHT_DYNAMIC 6
00264 #define SHT_NOTE 7
00265 #define SHT_NOBITS 8
00266 #define SHT_REL 9
00267 #define SHT_SHLIB 10
00268 #define SHT_DYNSYM 11
00269 #define SHT_NUM 12
00270 #define SHT_LOOS 0x60000000
00271 #define SHT_LOSUNW 0x6ffffffb
00272 #define SHT_SUNW_COMDAT 0x6ffffffb
00273 #define SHT_SUNW_syminfo 0x6ffffffc
00274 #define SHT_GNU_verdef 0x6ffffffd
00275 #define SHT_GNU_verneed 0x6ffffffe
00276 #define SHT_GNU_versym 0x6fffffff
00277 #define SHT_HISUNW 0x6fffffff
00278 #define SHT_HIOS 0x6fffffff
00279 #define SHT_LOPROC 0x70000000
00280 #define SHT_HIPROC 0x7fffffff
00281 #define SHT_LOUSER 0x80000000
00282 #define SHT_HIUSER 0x8fffffff
00283
00284
00285
00286 #define SHF_WRITE (1 << 0)
00287 #define SHF_ALLOC (1 << 1)
00288 #define SHF_EXECINSTR (1 << 2)
00289 #define SHF_MASKPROC 0xf0000000
00290
00291
00292
00293 typedef struct
00294 {
00295 Elf32_Word st_name;
00296 Elf32_Addr st_value;
00297 Elf32_Word st_size;
00298 unsigned char st_info;
00299 unsigned char st_other;
00300 Elf32_Section st_shndx;
00301 } Elf32_Sym;
00302
00303 typedef struct
00304 {
00305 Elf64_Word st_name;
00306 unsigned char st_info;
00307 unsigned char st_other;
00308 Elf64_Section st_shndx;
00309 Elf64_Addr st_value;
00310 Elf64_Xword st_size;
00311 } Elf64_Sym;
00312
00313
00314
00315
00316 typedef struct
00317 {
00318 Elf32_Half si_boundto;
00319 Elf32_Half si_flags;
00320 } Elf32_Syminfo;
00321
00322 typedef struct
00323 {
00324 Elf64_Half si_boundto;
00325 Elf64_Half si_flags;
00326 } Elf64_Syminfo;
00327
00328
00329 #define SYMINFO_BT_SELF 0xffff
00330 #define SYMINFO_BT_PARENT 0xfffe
00331 #define SYMINFO_BT_LOWRESERVE 0xff00
00332
00333
00334 #define SYMINFO_FLG_DIRECT 0x0001
00335 #define SYMINFO_FLG_PASSTHRU 0x0002
00336 #define SYMINFO_FLG_COPY 0x0004
00337 #define SYMINFO_FLG_LAZYLOAD 0x0008
00338
00339
00340 #define SYMINFO_NONE 0
00341 #define SYMINFO_CURRENT 1
00342 #define SYMINFO_NUM 2
00343
00344
00345
00346
00347 #define SHN_UNDEF 0
00348
00349
00350
00351 #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
00352 #define ELF32_ST_TYPE(val) ((val) & 0xf)
00353 #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
00354
00355
00356 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
00357 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
00358 #define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
00359
00360
00361
00362 #define STB_LOCAL 0
00363 #define STB_GLOBAL 1
00364 #define STB_WEAK 2
00365 #define STB_NUM 3
00366 #define STB_LOOS 10
00367 #define STB_HIOS 12
00368 #define STB_LOPROC 13
00369 #define STB_HIPROC 15
00370
00371
00372
00373 #define STT_NOTYPE 0
00374 #define STT_OBJECT 1
00375 #define STT_FUNC 2
00376 #define STT_SECTION 3
00377 #define STT_FILE 4
00378 #define STT_NUM 5
00379 #define STT_LOOS 11
00380 #define STT_HIOS 12
00381 #define STT_LOPROC 13
00382 #define STT_HIPROC 15
00383
00384
00385
00386
00387
00388
00389 #define STN_UNDEF 0
00390
00391
00392
00393
00394 typedef struct
00395 {
00396 Elf32_Addr r_offset;
00397 Elf32_Word r_info;
00398 } Elf32_Rel;
00399
00400
00401
00402
00403
00404
00405 typedef struct
00406 {
00407 Elf64_Addr r_offset;
00408 Elf64_Xword r_info;
00409 } Elf64_Rel;
00410
00411
00412
00413 typedef struct
00414 {
00415 Elf32_Addr r_offset;
00416 Elf32_Word r_info;
00417 Elf32_Sword r_addend;
00418 } Elf32_Rela;
00419
00420 typedef struct
00421 {
00422 Elf64_Addr r_offset;
00423 Elf64_Xword r_info;
00424 Elf64_Sxword r_addend;
00425 } Elf64_Rela;
00426
00427
00428
00429 #define ELF32_R_SYM(val) ((val) >> 8)
00430 #define ELF32_R_TYPE(val) ((val) & 0xff)
00431 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
00432
00433 #define ELF64_R_SYM(i) ((i) >> 32)
00434 #define ELF64_R_TYPE(i) ((i) & 0xffffffff)
00435 #define ELF64_R_INFO(sym,type) (((sym) << 32) + (type))
00436
00437
00438
00439 typedef struct
00440 {
00441 Elf32_Word p_type;
00442 Elf32_Off p_offset;
00443 Elf32_Addr p_vaddr;
00444 Elf32_Addr p_paddr;
00445 Elf32_Word p_filesz;
00446 Elf32_Word p_memsz;
00447 Elf32_Word p_flags;
00448 Elf32_Word p_align;
00449 } Elf32_Phdr;
00450
00451 typedef struct
00452 {
00453 Elf64_Word p_type;
00454 Elf64_Word p_flags;
00455 Elf64_Off p_offset;
00456 Elf64_Addr p_vaddr;
00457 Elf64_Addr p_paddr;
00458 Elf64_Xword p_filesz;
00459 Elf64_Xword p_memsz;
00460 Elf64_Xword p_align;
00461 } Elf64_Phdr;
00462
00463
00464
00465 #define PT_NULL 0
00466 #define PT_LOAD 1
00467 #define PT_DYNAMIC 2
00468 #define PT_INTERP 3
00469 #define PT_NOTE 4
00470 #define PT_SHLIB 5
00471 #define PT_PHDR 6
00472 #define PT_NUM 7
00473 #define PT_LOOS 0x60000000
00474 #define PT_HIOS 0x6fffffff
00475 #define PT_LOPROC 0x70000000
00476 #define PT_HIPROC 0x7fffffff
00477
00478
00479
00480 #define PF_X (1 << 0)
00481 #define PF_W (1 << 1)
00482 #define PF_R (1 << 2)
00483 #define PF_MASKPROC 0xf0000000
00484
00485
00486
00487 #define NT_PRSTATUS 1
00488 #define NT_FPREGSET 2
00489 #define NT_PRPSINFO 3
00490 #define NT_PRXREG 4
00491 #define NT_PLATFORM 5
00492 #define NT_AUXV 6
00493 #define NT_GWINDOWS 7
00494 #define NT_PSTATUS 10
00495 #define NT_PSINFO 13
00496 #define NT_PRCRED 14
00497 #define NT_UTSNAME 15
00498 #define NT_LWPSTATUS 16
00499 #define NT_LWPSINFO 17
00500
00501
00502
00503 #define NT_VERSION 1
00504
00505
00506
00507
00508 typedef struct
00509 {
00510 Elf32_Sword d_tag;
00511 union
00512 {
00513 Elf32_Word d_val;
00514 Elf32_Addr d_ptr;
00515 } d_un;
00516 } Elf32_Dyn;
00517
00518 typedef struct
00519 {
00520 Elf64_Sxword d_tag;
00521 union
00522 {
00523 Elf64_Xword d_val;
00524 Elf64_Addr d_ptr;
00525 } d_un;
00526 } Elf64_Dyn;
00527
00528
00529
00530 #define DT_NULL 0
00531 #define DT_NEEDED 1
00532 #define DT_PLTRELSZ 2
00533 #define DT_PLTGOT 3
00534 #define DT_HASH 4
00535 #define DT_STRTAB 5
00536 #define DT_SYMTAB 6
00537 #define DT_RELA 7
00538 #define DT_RELASZ 8
00539 #define DT_RELAENT 9
00540 #define DT_STRSZ 10
00541 #define DT_SYMENT 11
00542 #define DT_INIT 12
00543 #define DT_FINI 13
00544 #define DT_SONAME 14
00545 #define DT_RPATH 15
00546 #define DT_SYMBOLIC 16
00547 #define DT_REL 17
00548 #define DT_RELSZ 18
00549 #define DT_RELENT 19
00550 #define DT_PLTREL 20
00551 #define DT_DEBUG 21
00552 #define DT_TEXTREL 22
00553 #define DT_JMPREL 23
00554 #define DT_BIND_NOW 24
00555 #define DT_INIT_ARRAY 25
00556 #define DT_FINI_ARRAY 26
00557 #define DT_INIT_ARRAYSZ 27
00558 #define DT_FINI_ARRAYSZ 28
00559 #define DT_NUM 29
00560 #define DT_LOOS 0x60000000
00561 #define DT_HIOS 0x6fffffff
00562 #define DT_LOPROC 0x70000000
00563 #define DT_HIPROC 0x7fffffff
00564 #define DT_PROCNUM DT_MIPS_NUM
00565
00566
00567
00568
00569 #define DT_VALRNGLO 0x6ffffd00
00570 #define DT_POSFLAG_1 0x6ffffdfd
00571
00572 #define DT_SYMINSZ 0x6ffffdfe
00573 #define DT_SYMINENT 0x6ffffdff
00574 #define DT_VALRNGHI 0x6ffffdff
00575
00576
00577
00578
00579
00580
00581 #define DT_ADDRRNGLO 0x6ffffe00
00582 #define DT_SYMINFO 0x6ffffeff
00583 #define DT_ADDRRNGHI 0x6ffffeff
00584
00585
00586
00587 #define DT_VERSYM 0x6ffffff0
00588
00589
00590 #define DT_FLAGS_1 0x6ffffffb
00591 #define DT_VERDEF 0x6ffffffc
00592
00593 #define DT_VERDEFNUM 0x6ffffffd
00594 #define DT_VERNEED 0x6ffffffe
00595
00596 #define DT_VERNEEDNUM 0x6fffffff
00597 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
00598 #define DT_VERSIONTAGNUM 16
00599
00600
00601
00602 #define DT_AUXILIARY 0x7ffffffd
00603 #define DT_FILTER 0x7fffffff
00604 #define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
00605 #define DT_EXTRANUM 3
00606
00607
00608
00609 #define DF_1_NOW 0x00000001
00610 #define DF_1_GLOBAL 0x00000002
00611 #define DF_1_GROUP 0x00000004
00612 #define DF_1_NODELETE 0x00000008
00613 #define DF_1_LOADFLTR 0x00000010
00614 #define DF_1_INITFIRST 0x00000020
00615 #define DF_1_NOOPEN 0x00000040
00616
00617
00618
00619 typedef struct
00620 {
00621 Elf32_Half vd_version;
00622 Elf32_Half vd_flags;
00623 Elf32_Half vd_ndx;
00624 Elf32_Half vd_cnt;
00625 Elf32_Word vd_hash;
00626 Elf32_Word vd_aux;
00627 Elf32_Word vd_next;
00628
00629 } Elf32_Verdef;
00630
00631 typedef struct
00632 {
00633 Elf64_Half vd_version;
00634 Elf64_Half vd_flags;
00635 Elf64_Half vd_ndx;
00636 Elf64_Half vd_cnt;
00637 Elf64_Word vd_hash;
00638 Elf64_Word vd_aux;
00639 Elf64_Word vd_next;
00640
00641 } Elf64_Verdef;
00642
00643
00644
00645 #define VER_DEF_NONE 0
00646 #define VER_DEF_CURRENT 1
00647 #define VER_DEF_NUM 2
00648
00649
00650 #define VER_FLG_BASE 0x1
00651 #define VER_FLG_WEAK 0x2
00652
00653
00654
00655 typedef struct
00656 {
00657 Elf32_Word vda_name;
00658 Elf32_Word vda_next;
00659
00660 } Elf32_Verdaux;
00661
00662 typedef struct
00663 {
00664 Elf64_Word vda_name;
00665 Elf64_Word vda_next;
00666
00667 } Elf64_Verdaux;
00668
00669
00670
00671
00672 typedef struct
00673 {
00674 Elf32_Half vn_version;
00675 Elf32_Half vn_cnt;
00676 Elf32_Word vn_file;
00677
00678 Elf32_Word vn_aux;
00679 Elf32_Word vn_next;
00680
00681 } Elf32_Verneed;
00682
00683 typedef struct
00684 {
00685 Elf64_Half vn_version;
00686 Elf64_Half vn_cnt;
00687 Elf64_Word vn_file;
00688
00689 Elf64_Word vn_aux;
00690 Elf64_Word vn_next;
00691
00692 } Elf64_Verneed;
00693
00694
00695
00696 #define VER_NEED_NONE 0
00697 #define VER_NEED_CURRENT 1
00698 #define VER_NEED_NUM 2
00699
00700
00701
00702 typedef struct
00703 {
00704 Elf32_Word vna_hash;
00705 Elf32_Half vna_flags;
00706 Elf32_Half vna_other;
00707 Elf32_Word vna_name;
00708 Elf32_Word vna_next;
00709
00710 } Elf32_Vernaux;
00711
00712 typedef struct
00713 {
00714 Elf64_Word vna_hash;
00715 Elf64_Half vna_flags;
00716 Elf64_Half vna_other;
00717 Elf64_Word vna_name;
00718 Elf64_Word vna_next;
00719
00720 } Elf64_Vernaux;
00721
00722
00723
00724 #define VER_FLG_WEAK 0x2
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735
00736 typedef struct
00737 {
00738 int a_type;
00739 union
00740 {
00741 long int a_val;
00742 void *a_ptr;
00743 void (*a_fcn) (void);
00744 } a_un;
00745 } Elf32_auxv_t;
00746
00747 typedef struct
00748 {
00749 long int a_type;
00750 union
00751 {
00752 long int a_val;
00753 void *a_ptr;
00754 void (*a_fcn) (void);
00755 } a_un;
00756 } Elf64_auxv_t;
00757
00758
00759
00760 #define AT_NULL 0
00761 #define AT_IGNORE 1
00762 #define AT_EXECFD 2
00763 #define AT_PHDR 3
00764 #define AT_PHENT 4
00765 #define AT_PHNUM 5
00766 #define AT_PAGESZ 6
00767 #define AT_BASE 7
00768 #define AT_FLAGS 8
00769 #define AT_ENTRY 9
00770 #define AT_NOTELF 10
00771 #define AT_UID 11
00772 #define AT_EUID 12
00773 #define AT_GID 13
00774 #define AT_EGID 14
00775
00776
00777 #define AT_PLATFORM 15
00778 #define AT_HWCAP 16
00779
00780
00781
00782
00783 #define AT_FPUCW 17
00784
00785
00786
00787
00788
00789 typedef struct
00790 {
00791 Elf32_Word n_namesz;
00792 Elf32_Word n_descsz;
00793 Elf32_Word n_type;
00794 } Elf32_Nhdr;
00795
00796 typedef struct
00797 {
00798 Elf64_Word n_namesz;
00799 Elf64_Word n_descsz;
00800 Elf64_Word n_type;
00801 } Elf64_Nhdr;
00802
00803
00804
00805
00806 #define ELF_NOTE_SOLARIS "SUNW Solaris"
00807
00808
00809 #define ELF_NOTE_GNU "GNU"
00810
00811
00812
00813
00814
00815 #define ELF_NOTE_PAGESIZE_HINT 1
00816
00817
00818
00819
00820
00821
00822
00823
00824
00825
00826 #define ELF_NOTE_ABI 1
00827
00828
00829
00830 #define ELF_NOTE_OS_LINUX 0
00831 #define ELF_NOTE_OS_GNU 1
00832 #define ELF_NOTE_OS_SOLARIS2 2
00833
00834
00835
00836
00837
00838
00839 #define R_68K_NONE 0
00840 #define R_68K_32 1
00841 #define R_68K_16 2
00842 #define R_68K_8 3
00843 #define R_68K_PC32 4
00844 #define R_68K_PC16 5
00845 #define R_68K_PC8 6
00846 #define R_68K_GOT32 7
00847 #define R_68K_GOT16 8
00848 #define R_68K_GOT8 9
00849 #define R_68K_GOT32O 10
00850 #define R_68K_GOT16O 11
00851 #define R_68K_GOT8O 12
00852 #define R_68K_PLT32 13
00853 #define R_68K_PLT16 14
00854 #define R_68K_PLT8 15
00855 #define R_68K_PLT32O 16
00856 #define R_68K_PLT16O 17
00857 #define R_68K_PLT8O 18
00858 #define R_68K_COPY 19
00859 #define R_68K_GLOB_DAT 20
00860 #define R_68K_JMP_SLOT 21
00861 #define R_68K_RELATIVE 22
00862
00863 #define R_68K_NUM 23
00864
00865
00866
00867
00868
00869 #define R_386_NONE 0
00870 #define R_386_32 1
00871 #define R_386_PC32 2
00872 #define R_386_GOT32 3
00873 #define R_386_PLT32 4
00874 #define R_386_COPY 5
00875 #define R_386_GLOB_DAT 6
00876 #define R_386_JMP_SLOT 7
00877 #define R_386_RELATIVE 8
00878 #define R_386_GOTOFF 9
00879 #define R_386_GOTPC 10
00880
00881 #define R_386_NUM 11
00882
00883
00884
00885
00886
00887 #define EF_SPARCV9_MM 3
00888 #define EF_SPARCV9_TSO 0
00889 #define EF_SPARCV9_PSO 1
00890 #define EF_SPARCV9_RMO 2
00891 #define EF_SPARC_EXT_MASK 0xFFFF00
00892 #define EF_SPARC_SUN_US1 0x000200
00893 #define EF_SPARC_HAL_R1 0x000400
00894
00895
00896
00897 #define R_SPARC_NONE 0
00898 #define R_SPARC_8 1
00899 #define R_SPARC_16 2
00900 #define R_SPARC_32 3
00901 #define R_SPARC_DISP8 4
00902 #define R_SPARC_DISP16 5
00903 #define R_SPARC_DISP32 6
00904 #define R_SPARC_WDISP30 7
00905 #define R_SPARC_WDISP22 8
00906 #define R_SPARC_HI22 9
00907 #define R_SPARC_22 10
00908 #define R_SPARC_13 11
00909 #define R_SPARC_LO10 12
00910 #define R_SPARC_GOT10 13
00911 #define R_SPARC_GOT13 14
00912 #define R_SPARC_GOT22 15
00913 #define R_SPARC_PC10 16
00914 #define R_SPARC_PC22 17
00915 #define R_SPARC_WPLT30 18
00916 #define R_SPARC_COPY 19
00917 #define R_SPARC_GLOB_DAT 20
00918 #define R_SPARC_JMP_SLOT 21
00919 #define R_SPARC_RELATIVE 22
00920 #define R_SPARC_UA32 23
00921
00922
00923
00924 #define R_SPARC_PLT32 24
00925 #define R_SPARC_HIPLT22 25
00926 #define R_SPARC_LOPLT10 26
00927 #define R_SPARC_PCPLT32 27
00928 #define R_SPARC_PCPLT22 28
00929 #define R_SPARC_PCPLT10 29
00930 #define R_SPARC_10 30
00931 #define R_SPARC_11 31
00932 #define R_SPARC_64 32
00933 #define R_SPARC_OLO10 33
00934 #define R_SPARC_HH22 34
00935 #define R_SPARC_HM10 35
00936 #define R_SPARC_LM22 36
00937 #define R_SPARC_PC_HH22 37
00938 #define R_SPARC_PC_HM10 38
00939 #define R_SPARC_PC_LM22 39
00940 #define R_SPARC_WDISP16 40
00941 #define R_SPARC_WDISP19 41
00942 #define R_SPARC_7 43
00943 #define R_SPARC_5 44
00944 #define R_SPARC_6 45
00945 #define R_SPARC_DISP64 46
00946 #define R_SPARC_PLT64 47
00947 #define R_SPARC_HIX22 48
00948 #define R_SPARC_LOX10 49
00949 #define R_SPARC_H44 50
00950 #define R_SPARC_M44 51
00951 #define R_SPARC_L44 52
00952 #define R_SPARC_REGISTER 53
00953 #define R_SPARC_UA64 54
00954 #define R_SPARC_UA16 55
00955
00956 #define R_SPARC_NUM 56
00957
00958
00959
00960 #define DT_SPARC_REGISTER 0x70000001
00961 #define DT_SPARC_NUM 2
00962
00963
00964
00965 #define HWCAP_SPARC_FLUSH 1
00966 #define HWCAP_SPARC_STBAR 2
00967 #define HWCAP_SPARC_SWAP 4
00968 #define HWCAP_SPARC_MULDIV 8
00969 #define HWCAP_SPARC_V9 16
00970
00971
00972
00973
00974
00975 #define EF_MIPS_NOREORDER 1
00976 #define EF_MIPS_PIC 2
00977 #define EF_MIPS_CPIC 4
00978 #define EF_MIPS_XGOT 8
00979 #define EF_MIPS_64BIT_WHIRL 16
00980 #define EF_MIPS_ABI2 32
00981 #define EF_MIPS_ABI_ON32 64
00982 #define EF_MIPS_ARCH 0xf0000000
00983
00984
00985
00986 #define EF_MIPS_ARCH_1 0x00000000
00987 #define EF_MIPS_ARCH_2 0x10000000
00988 #define EF_MIPS_ARCH_3 0x20000000
00989 #define EF_MIPS_ARCH_4 0x30000000
00990 #define EF_MIPS_ARCH_5 0x40000000
00991
00992
00993
00994 #define E_MIPS_ARCH_1 0x00000000
00995 #define E_MIPS_ARCH_2 0x10000000
00996 #define E_MIPS_ARCH_3 0x20000000
00997 #define E_MIPS_ARCH_4 0x30000000
00998 #define E_MIPS_ARCH_5 0x40000000
00999
01000
01001
01002 #define SHN_MIPS_ACOMMON 0xff00
01003 #define SHN_MIPS_TEXT 0xff01
01004 #define SHN_MIPS_DATA 0xff02
01005 #define SHN_MIPS_SCOMMON 0xff03
01006 #define SHN_MIPS_SUNDEFINED 0xff04
01007
01008
01009
01010 #define SHT_MIPS_LIBLIST 0x70000000
01011 #define SHT_MIPS_MSYM 0x70000001
01012 #define SHT_MIPS_CONFLICT 0x70000002
01013 #define SHT_MIPS_GPTAB 0x70000003
01014 #define SHT_MIPS_UCODE 0x70000004
01015 #define SHT_MIPS_DEBUG 0x70000005
01016 #define SHT_MIPS_REGINFO 0x70000006
01017 #define SHT_MIPS_PACKAGE 0x70000007
01018 #define SHT_MIPS_PACKSYM 0x70000008
01019 #define SHT_MIPS_RELD 0x70000009
01020 #define SHT_MIPS_IFACE 0x7000000b
01021 #define SHT_MIPS_CONTENT 0x7000000c
01022 #define SHT_MIPS_OPTIONS 0x7000000d
01023 #define SHT_MIPS_SHDR 0x70000010
01024 #define SHT_MIPS_FDESC 0x70000011
01025 #define SHT_MIPS_EXTSYM 0x70000012
01026 #define SHT_MIPS_DENSE 0x70000013
01027 #define SHT_MIPS_PDESC 0x70000014
01028 #define SHT_MIPS_LOCSYM 0x70000015
01029 #define SHT_MIPS_AUXSYM 0x70000016
01030 #define SHT_MIPS_OPTSYM 0x70000017
01031 #define SHT_MIPS_LOCSTR 0x70000018
01032 #define SHT_MIPS_LINE 0x70000019
01033 #define SHT_MIPS_RFDESC 0x7000001a
01034 #define SHT_MIPS_DELTASYM 0x7000001b
01035 #define SHT_MIPS_DELTAINST 0x7000001c
01036 #define SHT_MIPS_DELTACLASS 0x7000001d
01037 #define SHT_MIPS_DWARF 0x7000001e
01038 #define SHT_MIPS_DELTADECL 0x7000001f
01039 #define SHT_MIPS_SYMBOL_LIB 0x70000020
01040 #define SHT_MIPS_EVENTS 0x70000021
01041 #define SHT_MIPS_TRANSLATE 0x70000022
01042 #define SHT_MIPS_PIXIE 0x70000023
01043 #define SHT_MIPS_XLATE 0x70000024
01044 #define SHT_MIPS_XLATE_DEBUG 0x70000025
01045 #define SHT_MIPS_WHIRL 0x70000026
01046 #define SHT_MIPS_EH_REGION 0x70000027
01047 #define SHT_MIPS_XLATE_OLD 0x70000028
01048 #define SHT_MIPS_PDR_EXCEPTION 0x70000029
01049
01050
01051
01052 #define SHF_MIPS_GPREL 0x10000000
01053 #define SHF_MIPS_MERGE 0x20000000
01054 #define SHF_MIPS_ADDR 0x40000000
01055 #define SHF_MIPS_STRINGS 0x80000000
01056 #define SHF_MIPS_NOSTRIP 0x08000000
01057 #define SHF_MIPS_LOCAL 0x04000000
01058 #define SHF_MIPS_NAMES 0x02000000
01059 #define SHF_MIPS_NODUPE 0x01000000
01060
01061
01062
01063
01064
01065 #define STO_MIPS_DEFAULT 0x0
01066 #define STO_MIPS_INTERNAL 0x1
01067 #define STO_MIPS_HIDDEN 0x2
01068 #define STO_MIPS_PROTECTED 0x3
01069 #define STO_MIPS_SC_ALIGN_UNUSED 0xff
01070
01071
01072 #define STB_MIPS_SPLIT_COMMON 13
01073
01074
01075
01076 typedef union
01077 {
01078 struct
01079 {
01080 Elf32_Word gt_current_g_value;
01081 Elf32_Word gt_unused;
01082 } gt_header;
01083 struct
01084 {
01085 Elf32_Word gt_g_value;
01086 Elf32_Word gt_bytes;
01087 } gt_entry;
01088 } Elf32_gptab;
01089
01090
01091
01092 typedef struct
01093 {
01094 Elf32_Word ri_gprmask;
01095 Elf32_Word ri_cprmask[4];
01096 Elf32_Sword ri_gp_value;
01097 } Elf32_RegInfo;
01098
01099
01100
01101 typedef struct
01102 {
01103 unsigned char kind;
01104
01105 unsigned char size;
01106 Elf32_Section section;
01107
01108 Elf32_Word info;
01109 } Elf_Options;
01110
01111
01112
01113 #define ODK_NULL 0
01114 #define ODK_REGINFO 1
01115 #define ODK_EXCEPTIONS 2
01116 #define ODK_PAD 3
01117 #define ODK_HWPATCH 4
01118 #define ODK_FILL 5
01119 #define ODK_TAGS 6
01120 #define ODK_HWAND 7
01121 #define ODK_HWOR 8
01122
01123
01124
01125 #define OEX_FPU_MIN 0x1f
01126 #define OEX_FPU_MAX 0x1f00
01127 #define OEX_PAGE0 0x10000
01128 #define OEX_SMM 0x20000
01129 #define OEX_FPDBUG 0x40000
01130 #define OEX_PRECISEFP OEX_FPDBUG
01131 #define OEX_DISMISS 0x80000
01132
01133 #define OEX_FPU_INVAL 0x10
01134 #define OEX_FPU_DIV0 0x08
01135 #define OEX_FPU_OFLO 0x04
01136 #define OEX_FPU_UFLO 0x02
01137 #define OEX_FPU_INEX 0x01
01138
01139
01140
01141 #define OHW_R4KEOP 0x1
01142 #define OHW_R8KPFETCH 0x2
01143 #define OHW_R5KEOP 0x4
01144 #define OHW_R5KCVTL 0x8
01145
01146 #define OPAD_PREFIX 0x1
01147 #define OPAD_POSTFIX 0x2
01148 #define OPAD_SYMBOL 0x4
01149
01150
01151
01152 typedef struct
01153 {
01154 Elf32_Word hwp_flags1;
01155 Elf32_Word hwp_flags2;
01156 } Elf_Options_Hw;
01157
01158
01159
01160 #define OHWA0_R4KEOP_CHECKED 0x00000001
01161 #define OHWA1_R4KEOP_CLEAN 0x00000002
01162
01163
01164
01165 #define R_MIPS_NONE 0
01166 #define R_MIPS_16 1
01167 #define R_MIPS_32 2
01168 #define R_MIPS_REL32 3
01169 #define R_MIPS_26 4
01170 #define R_MIPS_HI16 5
01171 #define R_MIPS_LO16 6
01172 #define R_MIPS_GPREL16 7
01173 #define R_MIPS_LITERAL 8
01174 #define R_MIPS_GOT16 9
01175 #define R_MIPS_PC16 10
01176 #define R_MIPS_CALL16 11
01177 #define R_MIPS_GPREL32 12
01178
01179 #define R_MIPS_SHIFT5 16
01180 #define R_MIPS_SHIFT6 17
01181 #define R_MIPS_64 18
01182 #define R_MIPS_GOT_DISP 19
01183 #define R_MIPS_GOT_PAGE 20
01184 #define R_MIPS_GOT_OFST 21
01185 #define R_MIPS_GOT_HI16 22
01186 #define R_MIPS_GOT_LO16 23
01187 #define R_MIPS_SUB 24
01188 #define R_MIPS_INSERT_A 25
01189 #define R_MIPS_INSERT_B 26
01190 #define R_MIPS_DELETE 27
01191 #define R_MIPS_HIGHER 28
01192 #define R_MIPS_HIGHEST 29
01193 #define R_MIPS_CALL_HI16 30
01194 #define R_MIPS_CALL_LO16 31
01195 #define R_MIPS_SCN_DISP 32
01196 #define R_MIPS_REL16 33
01197 #define R_MIPS_ADD_IMMEDIATE 34
01198 #define R_MIPS_PJUMP 35
01199 #define R_MIPS_RELGOT 36
01200 #define R_MIPS_JALR 37
01201
01202 #define R_MIPS_NUM 38
01203
01204
01205
01206 #define PT_MIPS_REGINFO 0x70000000
01207 #define PT_MIPS_RTPROC 0x70000001
01208 #define PT_MIPS_OPTIONS 0x70000002
01209
01210
01211
01212 #define PF_MIPS_LOCAL 0x10000000
01213
01214
01215
01216 #define DT_MIPS_RLD_VERSION 0x70000001
01217 #define DT_MIPS_TIME_STAMP 0x70000002
01218 #define DT_MIPS_ICHECKSUM 0x70000003
01219 #define DT_MIPS_IVERSION 0x70000004
01220 #define DT_MIPS_FLAGS 0x70000005
01221 #define DT_MIPS_BASE_ADDRESS 0x70000006
01222 #define DT_MIPS_MSYM 0x70000007
01223 #define DT_MIPS_CONFLICT 0x70000008
01224 #define DT_MIPS_LIBLIST 0x70000009
01225 #define DT_MIPS_LOCAL_GOTNO 0x7000000a
01226 #define DT_MIPS_CONFLICTNO 0x7000000b
01227 #define DT_MIPS_LIBLISTNO 0x70000010
01228 #define DT_MIPS_SYMTABNO 0x70000011
01229 #define DT_MIPS_UNREFEXTNO 0x70000012
01230 #define DT_MIPS_GOTSYM 0x70000013
01231 #define DT_MIPS_HIPAGENO 0x70000014
01232 #define DT_MIPS_RLD_MAP 0x70000016
01233 #define DT_MIPS_DELTA_CLASS 0x70000017
01234 #define DT_MIPS_DELTA_CLASS_NO 0x70000018
01235
01236 #define DT_MIPS_DELTA_INSTANCE 0x70000019
01237 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
01238
01239 #define DT_MIPS_DELTA_RELOC 0x7000001b
01240 #define DT_MIPS_DELTA_RELOC_NO 0x7000001c
01241
01242 #define DT_MIPS_DELTA_SYM 0x7000001d
01243
01244 #define DT_MIPS_DELTA_SYM_NO 0x7000001e
01245
01246 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
01247
01248 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
01249
01250 #define DT_MIPS_CXX_FLAGS 0x70000022
01251 #define DT_MIPS_PIXIE_INIT 0x70000023
01252 #define DT_MIPS_SYMBOL_LIB 0x70000024
01253 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
01254 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
01255 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
01256 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
01257 #define DT_MIPS_OPTIONS 0x70000029
01258 #define DT_MIPS_INTERFACE 0x7000002a
01259 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
01260 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
01261 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
01262
01263 #define DT_MIPS_PERF_SUFFIX 0x7000002e
01264
01265 #define DT_MIPS_COMPACT_SIZE 0x7000002f
01266 #define DT_MIPS_GP_VALUE 0x70000030
01267 #define DT_MIPS_AUX_DYNAMIC 0x70000031
01268 #define DT_MIPS_NUM 0x32
01269
01270
01271
01272 #define RHF_NONE 0
01273 #define RHF_QUICKSTART (1 << 0)
01274 #define RHF_NOTPOT (1 << 1)
01275 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
01276 #define RHF_NO_MOVE (1 << 3)
01277 #define RHF_SGI_ONLY (1 << 4)
01278 #define RHF_GUARANTEE_INIT (1 << 5)
01279 #define RHF_DELTA_C_PLUS_PLUS (1 << 6)
01280 #define RHF_GUARANTEE_START_INIT (1 << 7)
01281 #define RHF_PIXIE (1 << 8)
01282 #define RHF_DEFAULT_DELAY_LOAD (1 << 9)
01283 #define RHF_REQUICKSTART (1 << 10)
01284 #define RHF_REQUICKSTARTED (1 << 11)
01285 #define RHF_CORD (1 << 12)
01286 #define RHF_NO_UNRES_UNDEF (1 << 13)
01287 #define RHF_RLD_ORDER_SAFE (1 << 14)
01288
01289
01290
01291 typedef struct
01292 {
01293 Elf32_Word l_name;
01294 Elf32_Word l_time_stamp;
01295 Elf32_Word l_checksum;
01296 Elf32_Word l_version;
01297 Elf32_Word l_flags;
01298 } Elf32_Lib;
01299
01300 typedef struct
01301 {
01302 Elf64_Word l_name;
01303 Elf64_Word l_time_stamp;
01304 Elf64_Word l_checksum;
01305 Elf64_Word l_version;
01306 Elf64_Word l_flags;
01307 } Elf64_Lib;
01308
01309
01310
01311
01312 #define LL_NONE 0
01313 #define LL_EXACT_MATCH (1 << 0)
01314 #define LL_IGNORE_INT_VER (1 << 1)
01315 #define LL_REQUIRE_MINOR (1 << 2)
01316 #define LL_EXPORTS (1 << 3)
01317 #define LL_DELAY_LOAD (1 << 4)
01318 #define LL_DELTA (1 << 5)
01319
01320
01321
01322 typedef Elf32_Addr Elf32_Conflict;
01323
01324
01325
01326
01327
01328
01329 #define EF_PARISC_TRAPNL 1
01330 #define EF_PARISC_EXT 2
01331 #define EF_PARISC_ARCH 0xffff0000
01332
01333
01334
01335
01336
01337
01338
01339
01340
01341 #define SHT_PARISC_GOT 0x70000000
01342 #define SHT_PARISC_ARCH 0x70000001
01343 #define SHT_PARISC_GLOBAL 0x70000002
01344 #define SHT_PARISC_MILLI 0x70000003
01345 #define SHT_PARISC_UNWIND 0x70000004
01346 #define SHT_PARISC_PLT 0x70000005
01347 #define SHT_PARISC_SDATA 0x70000006
01348 #define SHT_PARISC_SBSS 0x70000007
01349 #define SHT_PARISC_SYMEXTN 0x70000008
01350 #define SHT_PARISC_STUBS 0x70000009
01351
01352
01353
01354 #define SHF_PARISC_GLOBAL 0x10000000
01355 #define SHF_PARISC_SHORT 0x20000000
01356
01357
01358
01359 #define STT_PARISC_MILLICODE 13
01360
01361
01362
01363 #define R_PARISC_NONE 0
01364 #define R_PARISC_DIR32 1
01365 #define R_PARISC_DIR21L 2
01366 #define R_PARISC_DIR17R 3
01367 #define R_PARISC_DIR14R 4
01368 #define R_PARISC_PCREL21L 5
01369 #define R_PARISC_PCREL14R 6
01370 #define R_PARISC_PCREL17C 7
01371
01372 #define R_PARISC_PCREL17F 8
01373
01374 #define R_PARISC_DPREL21L 9
01375 #define R_PARISC_DPREL14R 10
01376 #define R_PARISC_DPREL14F 11
01377 #define R_PARISC_DLTREL21L 12
01378 #define R_PARISC_DLTREL14R 13
01379 #define R_PARISC_DLTREL14F 14
01380 #define R_PARISC_DLTIND21L 15
01381
01382 #define R_PARISC_DLTIND14R 16
01383
01384 #define R_PARISC_DLTIND14F 17
01385
01386 #define R_PARISC_PLABEL32 18
01387
01388
01389
01390
01391
01392 #define EF_ALPHA_32BIT 1
01393 #define EF_ALPHA_CANRELAX 2
01394
01395
01396
01397
01398 #define SHT_ALPHA_DEBUG 0x70000001
01399 #define SHT_ALPHA_REGINFO 0x70000002
01400
01401
01402
01403 #define SHF_ALPHA_GPREL 0x10000000
01404
01405
01406 #define STO_ALPHA_NOPV 0x80
01407 #define STO_ALPHA_STD_GPLOAD 0x88
01408
01409
01410
01411 #define R_ALPHA_NONE 0
01412 #define R_ALPHA_REFLONG 1
01413 #define R_ALPHA_REFQUAD 2
01414 #define R_ALPHA_GPREL32 3
01415 #define R_ALPHA_LITERAL 4
01416 #define R_ALPHA_LITUSE 5
01417 #define R_ALPHA_GPDISP 6
01418 #define R_ALPHA_BRADDR 7
01419 #define R_ALPHA_HINT 8
01420 #define R_ALPHA_SREL16 9
01421 #define R_ALPHA_SREL32 10
01422 #define R_ALPHA_SREL64 11
01423 #define R_ALPHA_OP_PUSH 12
01424 #define R_ALPHA_OP_STORE 13
01425 #define R_ALPHA_OP_PSUB 14
01426 #define R_ALPHA_OP_PRSHIFT 15
01427 #define R_ALPHA_GPVALUE 16
01428 #define R_ALPHA_GPRELHIGH 17
01429 #define R_ALPHA_GPRELLOW 18
01430 #define R_ALPHA_IMMED_GP_16 19
01431 #define R_ALPHA_IMMED_GP_HI32 20
01432 #define R_ALPHA_IMMED_SCN_HI32 21
01433 #define R_ALPHA_IMMED_BR_HI32 22
01434 #define R_ALPHA_IMMED_LO32 23
01435 #define R_ALPHA_COPY 24
01436 #define R_ALPHA_GLOB_DAT 25
01437 #define R_ALPHA_JMP_SLOT 26
01438 #define R_ALPHA_RELATIVE 27
01439
01440 #define R_ALPHA_NUM 28
01441
01442
01443
01444
01445
01446 #define R_PPC_NONE 0
01447 #define R_PPC_ADDR32 1
01448 #define R_PPC_ADDR24 2
01449 #define R_PPC_ADDR16 3
01450 #define R_PPC_ADDR16_LO 4
01451 #define R_PPC_ADDR16_HI 5
01452 #define R_PPC_ADDR16_HA 6
01453 #define R_PPC_ADDR14 7
01454 #define R_PPC_ADDR14_BRTAKEN 8
01455 #define R_PPC_ADDR14_BRNTAKEN 9
01456 #define R_PPC_REL24 10
01457 #define R_PPC_REL14 11
01458 #define R_PPC_REL14_BRTAKEN 12
01459 #define R_PPC_REL14_BRNTAKEN 13
01460 #define R_PPC_GOT16 14
01461 #define R_PPC_GOT16_LO 15
01462 #define R_PPC_GOT16_HI 16
01463 #define R_PPC_GOT16_HA 17
01464 #define R_PPC_PLTREL24 18
01465 #define R_PPC_COPY 19
01466 #define R_PPC_GLOB_DAT 20
01467 #define R_PPC_JMP_SLOT 21
01468 #define R_PPC_RELATIVE 22
01469 #define R_PPC_LOCAL24PC 23
01470 #define R_PPC_UADDR32 24
01471 #define R_PPC_UADDR16 25
01472 #define R_PPC_REL32 26
01473 #define R_PPC_PLT32 27
01474 #define R_PPC_PLTREL32 28
01475 #define R_PPC_PLT16_LO 29
01476 #define R_PPC_PLT16_HI 30
01477 #define R_PPC_PLT16_HA 31
01478 #define R_PPC_SDAREL16 32
01479 #define R_PPC_SECTOFF 33
01480 #define R_PPC_SECTOFF_LO 34
01481 #define R_PPC_SECTOFF_HI 35
01482 #define R_PPC_SECTOFF_HA 36
01483
01484 #define R_PPC_NUM 37
01485
01486
01487
01488 #define R_PPC_EMB_NADDR32 101
01489 #define R_PPC_EMB_NADDR16 102
01490 #define R_PPC_EMB_NADDR16_LO 103
01491 #define R_PPC_EMB_NADDR16_HI 104
01492 #define R_PPC_EMB_NADDR16_HA 105
01493 #define R_PPC_EMB_SDAI16 106
01494 #define R_PPC_EMB_SDA2I16 107
01495 #define R_PPC_EMB_SDA2REL 108
01496 #define R_PPC_EMB_SDA21 109
01497 #define R_PPC_EMB_MRKREF 110
01498 #define R_PPC_EMB_RELSEC16 111
01499 #define R_PPC_EMB_RELST_LO 112
01500 #define R_PPC_EMB_RELST_HI 113
01501 #define R_PPC_EMB_RELST_HA 114
01502 #define R_PPC_EMB_BIT_FLD 115
01503 #define R_PPC_EMB_RELSDA 116
01504
01505
01506 #define R_PPC_DIAB_SDA21_LO 180
01507 #define R_PPC_DIAB_SDA21_HI 181
01508 #define R_PPC_DIAB_SDA21_HA 182
01509 #define R_PPC_DIAB_RELSDA_LO 183
01510 #define R_PPC_DIAB_RELSDA_HI 184
01511 #define R_PPC_DIAB_RELSDA_HA 185
01512
01513
01514
01515 #define R_PPC_TOC16 255
01516
01517
01518
01519
01520
01521 #define EF_ARM_RELEXEC 0x01
01522 #define EF_ARM_HASENTRY 0x02
01523 #define EF_ARM_INTERWORK 0x04
01524 #define EF_ARM_APCS_26 0x08
01525 #define EF_ARM_APCS_FLOAT 0x10
01526 #define EF_ARM_PIC 0x20
01527 #define EF_ALIGN8 0x40
01528 #define EF_NEW_ABI 0x80
01529 #define EF_OLD_ABI 0x100
01530
01531
01532 #define STT_ARM_TFUNC 0xd
01533
01534
01535 #define SHF_ARM_ENTRYSECT 0x10000000
01536 #define SHF_ARM_COMDEF 0x80000000
01537
01538
01539
01540 #define PF_ARM_SB 0x10000000
01541
01542
01543
01544 #define R_ARM_NONE 0
01545 #define R_ARM_PC24 1
01546 #define R_ARM_ABS32 2
01547 #define R_ARM_REL32 3
01548 #define R_ARM_PC13 4
01549 #define R_ARM_ABS16 5
01550 #define R_ARM_ABS12 6
01551 #define R_ARM_THM_ABS5 7
01552 #define R_ARM_ABS8 8
01553 #define R_ARM_SBREL32 9
01554 #define R_ARM_THM_PC22 10
01555 #define R_ARM_THM_PC8 11
01556 #define R_ARM_AMP_VCALL9 12
01557 #define R_ARM_SWI24 13
01558 #define R_ARM_THM_SWI8 14
01559 #define R_ARM_XPC25 15
01560 #define R_ARM_THM_XPC22 16
01561 #define R_ARM_COPY 20
01562 #define R_ARM_GLOB_DAT 21
01563 #define R_ARM_JUMP_SLOT 22
01564 #define R_ARM_RELATIVE 23
01565 #define R_ARM_GOTOFF 24
01566 #define R_ARM_GOTPC 25
01567 #define R_ARM_GOT32 26
01568 #define R_ARM_PLT32 27
01569 #define R_ARM_GNU_VTENTRY 100
01570 #define R_ARM_GNU_VTINHERIT 101
01571 #define R_ARM_THM_PC11 102
01572 #define R_ARM_THM_PC9 103
01573 #define R_ARM_RXPC25 249
01574 #define R_ARM_RSBREL32 250
01575 #define R_ARM_THM_RPC22 251
01576 #define R_ARM_RREL32 252
01577 #define R_ARM_RABS22 253
01578 #define R_ARM_RPC24 254
01579 #define R_ARM_RBASE 255
01580
01581 #define R_ARM_NUM 256
01582
01583 __END_DECLS
01584
01585 #endif
01586