00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef _ELF_STUFF_H
00041
00042 #define _ELF_STUFF_H 1
00043
00044 #ifdef __MINGW32__
00045 #ifndef _SYS_CDEFS_H
00046 #define _SYS_CDEFS_H
00047 #ifdef __cplusplus
00048 #define __BEGIN_DECLS extern "C" {
00049 #define __END_DECLS }
00050 #else
00051 #define __BEGIN_DECLS
00052 #define __END_DECLS
00053 #endif
00054 #define __P(protos) protos
00055 #endif
00056 #else
00057 #include <sys/cdefs.h>
00058 #endif
00059
00060 __BEGIN_DECLS
00061
00062
00063
00064 #include <elf.h>
00065 #include <stdint.h>
00066
00067 #if defined(__MIPS_AND_IA64_ELF_H)
00068 typedef unsigned char Elf32_Byte;
00069 typedef unsigned char Elf64_Byte;
00070 #endif
00071
00072
00073
00074 #define EI_NIDENT (16)
00075
00076
00077
00078
00079
00080 #define EI_MAG0 0
00081 #define ELFMAG0 0x7f
00082
00083 #define EI_MAG1 1
00084 #define ELFMAG1 'E'
00085
00086 #define EI_MAG2 2
00087 #define ELFMAG2 'L'
00088
00089 #define EI_MAG3 3
00090 #define ELFMAG3 'F'
00091
00092
00093 #define ELFMAG "\177ELF"
00094 #define SELFMAG 4
00095
00096 #define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
00097 (ehdr).e_ident[EI_MAG1] == ELFMAG1 && \
00098 (ehdr).e_ident[EI_MAG2] == ELFMAG2 && \
00099 (ehdr).e_ident[EI_MAG3] == ELFMAG3)
00100
00101 #define EI_CLASS 4
00102 #define ELFCLASSNONE 0
00103 #define ELFCLASS32 1
00104 #define ELFCLASS64 2
00105
00106 #define EI_DATA 5
00107 #define ELFDATANONE 0
00108 #define ELFDATA2LSB 1
00109 #define ELFDATA2MSB 2
00110
00111 #define EI_VERSION 6
00112
00113
00114
00115
00116 #define ET_NONE 0
00117 #define ET_REL 1
00118 #define ET_EXEC 2
00119 #define ET_DYN 3
00120 #define ET_CORE 4
00121 #define ET_NUM 5
00122 #define ET_LOPROC 0xff00
00123 #define ET_HIPROC 0xffff
00124
00125 #if defined(__MIPS_AND_IA64_ELF_H)
00126 #define ET_IR (ET_LOPROC + 0)
00127 #endif
00128
00129
00130
00131 #define EM_NONE 0
00132 #define EM_M32 1
00133 #define EM_SPARC 2
00134 #define EM_386 3
00135 #define EM_68K 4
00136 #define EM_88K 5
00137 #define EM_486 6
00138 #define EM_860 7
00139 #define EM_MIPS 8
00140 #define EM_S370 9
00141 #define EM_MIPS_RS4_BE 10
00142
00143 #if defined(__MIPS_AND_IA64_ELF_H)
00144
00145 #define EM_XIA64 10
00146
00147
00148 #define EM_IA_64 50
00149 #define EM_EAS2_3 0x0406
00150 #endif
00151
00152 #define EM_SPARC64 11
00153
00154 #define EM_PARISC 15
00155 #define EM_PPC 20
00156
00157
00158
00159
00160
00161 #define EM_ALPHA 0x9026
00162
00163
00164
00165 #define EV_NONE 0
00166 #define EV_CURRENT 1
00167
00168
00169
00170 #if defined(__MIPS_AND_IA64_ELF_H)
00171
00172 #define ELF_BSS ".bss"
00173 #define ELF_COMMENT ".comment"
00174 #define ELF_DATA ".data"
00175 #define ELF_DATA_PU ".data_pu"
00176 #define ELF_DEBUG ".debug"
00177 #define ELF_DYNAMIC ".dynamic"
00178 #define ELF_DYNSTR ".dynstr"
00179 #define ELF_DYNSYM ".dynsym"
00180 #define ELF_MSYM ".msym"
00181 #define ELF_FINI ".fini"
00182 #define ELF_GOT ".got"
00183 #define ELF_PLT ".plt"
00184 #define ELF_HASH ".hash"
00185 #define ELF_INIT ".init"
00186 #define ELF_REL_DATA ".rel.data"
00187 #define ELF_REL_FINI ".rel.fini"
00188 #define ELF_REL_INIT ".rel.init"
00189 #define ELF_REL_DYN ".rel.dyn"
00190 #define ELF_REL_RODATA ".rel.rodata"
00191 #define ELF_REL_TEXT ".rel.text"
00192 #define ELF_RODATA ".rodata"
00193 #define ELF_RODATA_PU ".rodata_pu"
00194 #define ELF_SHSTRTAB ".shstrtab"
00195 #define ELF_STRTAB ".strtab"
00196 #define ELF_SYMTAB ".symtab"
00197 #define ELF_TEXT ".text"
00198 #ifdef KEY
00199 #define ELF_TBSS ".tbss"
00200 #define ELF_TDATA ".tdata"
00201 #endif
00202
00203
00204
00205
00206
00207
00208
00209 #define MIPS_LIBLIST ".liblist"
00210 #define MIPS_MSYM ".msym"
00211 #define MIPS_CONFLICT ".conflict"
00212 #define MIPS_SDATA ".sdata"
00213 #define MIPS_SDATA_PU ".sdata_pu"
00214 #define MIPS_REL_SDATA ".rel.sdata"
00215 #define MIPS_SRDATA ".srdata"
00216 #define MIPS_SRDATA_PU ".srdata_pu"
00217 #define MIPS_RDATA ".rdata"
00218 #define MIPS_SBSS ".sbss"
00219 #define MIPS_LIT4 ".lit4"
00220 #define MIPS_LIT8 ".lit8"
00221 #define MIPS_LIT16 ".lit16"
00222 #define MIPS_EVENTS ".MIPS.events"
00223 #define MIPS_INTERFACES ".MIPS.interfaces"
00224 #define MIPS_OPTIONS ".MIPS.options"
00225 #define MIPS_SYMBOL_LIB ".MIPS.symlib"
00226 #define MIPS_DEBUG_INFO ".debug_info"
00227 #define MIPS_DEBUG_LINE ".debug_line"
00228 #define MIPS_DEBUG_ABBREV ".debug_abbrev"
00229 #define MIPS_DEBUG_FRAME ".debug_frame"
00230 #define MIPS_DEBUG_ARANGES ".debug_aranges"
00231 #define MIPS_DEBUG_PUBNAMES ".debug_pubnames"
00232 #define MIPS_DEBUG_STR ".debug_str"
00233 #define MIPS_DEBUG_FUNCNAMES ".debug_funcnames"
00234 #define MIPS_DEBUG_TYPENAMES ".debug_typenames"
00235 #define MIPS_DEBUG_VARNAMES ".debug_varnames"
00236 #define MIPS_DEBUG_WEAKNAMES ".debug_weaknames"
00237 #define MIPS_XLATE ".MIPS.Xlate"
00238 #define MIPS_XLATE_DEBUG ".MIPS.Xlate_debug"
00239 #define MIPS_CONTENT ".MIPS.content"
00240 #define MIPS_WHIRL ".WHIRL"
00241
00242 #if defined(TARG_SL)
00243
00244 #define MIPS_SSDATA ".sbuf"
00245
00246
00247 #define MIPS_VSDATA ".vbuf"
00248 #define MIPS_VS1DATA ".vs1data"
00249 #define MIPS_VS2DATA ".vs2data"
00250 #define MIPS_VS4DATA ".vs4data"
00251 #endif
00252
00253
00254
00255
00256
00257
00258
00259 #define IA64_LIBLIST ".liblist"
00260 #define IA64_MSYM ".msym"
00261 #define IA64_CONFLICT ".conflict"
00262 #define IA64_SDATA ".sdata"
00263 #define IA64_REL_SDATA ".rel.sdata"
00264 #define IA64_SRDATA ".srdata"
00265 #define IA64_RDATA ".rdata"
00266 #define IA64_SBSS ".sbss"
00267 #define IA64_LIT4 ".lit4"
00268 #define IA64_LIT8 ".lit8"
00269 #define IA64_LIT16 ".lit16"
00270 #define IA64_EVENTS ".IA64.events"
00271 #define IA64_INTERFACES ".IA64.interfaces"
00272 #define IA64_OPTIONS ".IA64.options"
00273 #define IA64_SYMBOL_LIB ".IA64.symlib"
00274 #define IA64_DEBUG_INFO ".debug_info"
00275 #define IA64_DEBUG_LINE ".debug_line"
00276 #define IA64_DEBUG_ABBREV ".debug_abbrev"
00277 #define IA64_DEBUG_FRAME ".debug_frame"
00278 #define IA64_DEBUG_ARANGES ".debug_aranges"
00279 #define IA64_DEBUG_PUBNAMES ".debug_pubnames"
00280 #define IA64_DEBUG_STR ".debug_str"
00281 #define IA64_DEBUG_FUNCNAMES ".debug_funcnames"
00282 #define IA64_DEBUG_TYPENAMES ".debug_typenames"
00283 #define IA64_DEBUG_VARNAMES ".debug_varnames"
00284 #define IA64_DEBUG_WEAKNAMES ".debug_weaknames"
00285 #define IA64_XLATE ".IA64.Xlate"
00286 #define IA64_XLATE_DEBUG ".IA64.Xlate_debug"
00287 #define IA64_WHIRL ".IA64.WHIRL"
00288 #define IA64_CONTENT ".IA64.content"
00289
00290
00291 #ifdef __osf__
00292 #define IA64_PACKAGE ".package"
00293 #define IA64_PACKSYM ".packsym"
00294 #endif
00295
00296
00297
00298
00299
00300
00301
00302 #define IA64_ARCHEXT ".IA_64.archext"
00303 #define IA64_PLTOFF ".IA_64.pltoff"
00304 #define IA64_UNWIND ".IA_64.unwind"
00305 #define IA64_UNWIND_INFO ".IA_64.unwind_info"
00306
00307 #define ELF64_FSZ_ADDR 8
00308 #define ELF64_FSZ_HALF 2
00309 #define ELF64_FSZ_OFF 8
00310 #define ELF64_FSZ_SWORD 4
00311 #define ELF64_FSZ_WORD 4
00312 #define ELF64_FSZ_SXWORD 8
00313 #define ELF64_FSZ_XWORD 8
00314
00315 #define ELF32_FSZ_ADDR 4
00316 #define ELF32_FSZ_HALF 2
00317 #define ELF32_FSZ_OFF 4
00318 #define ELF32_FSZ_SWORD 4
00319 #define ELF32_FSZ_WORD 4
00320
00321
00322 typedef enum {
00323 CK_NULL = 0,
00324 CK_DEFAULT = 0x30,
00325 CK_ALIGN = 0x31,
00326 CK_INSTR = 0x32,
00327 CK_DATA = 0x33,
00328 CK_SADDR_32 = 0x34,
00329 CK_GADDR_32 = 0x35,
00330 CK_CADDR_32 = 0x36,
00331 CK_SADDR_64 = 0x37,
00332 CK_GADDR_64 = 0x38,
00333 CK_CADDR_64 = 0x39,
00334 CK_NO_XFORM = 0x3a,
00335 CK_NO_REORDER = 0x3b,
00336 CK_GP_GROUP = 0x3c,
00337
00338
00339 CK_STUBS = 0x3d
00340 } Elf_MIPS_Content_Kind;
00341
00342
00343
00344
00345 #define ODK_NULL 0
00346 #define ODK_MIPS_REGINFO 1
00347 #define ODK_REGINFO 1
00348 #define ODK_MIPS_EXCEPTIONS 2
00349 #define ODK_EXCEPTIONS 2
00350 #define ODK_PAD 3
00351 #define ODK_MIPS_HWPATCH 4
00352 #define ODK_HWPATCH 4
00353 #define ODK_FILL 5
00354 #define ODK_TAGS 6
00355 #define ODK_MIPS_HWAND 7
00356 #define ODK_HWAND 7
00357 #define ODK_MIPS_HWOR 8
00358 #define ODK_HWOR 8
00359 #define ODK_GP_GROUP 9
00360 #define ODK_IDENT 10
00361 #define ODK_IA64_REGINFO 11
00362 #define ODK_PAGESIZE 12
00363
00364
00365 #define ODK_IA64_EXCEPTIONS 12
00366 #define ODK_IA64_HWAND 13
00367 #define ODK_IA64_HWOR 14
00368
00369
00370
00371
00372
00373
00374 #define OEX_PAGE0 0x10000
00375 #define OEX_SMM 0x20000
00376 #define OEX_FPDBUG 0x40000
00377 #define OEX_PRECISEFP OEX_FPDBUG
00378 #define OEX_DISMISS 0x80000
00379 #define OEX_FPU_MIN 0x1f
00380 #define OEX_FPU_MAX 0x1f00
00381 #define OEX_FPU_INVAL 0x10
00382 #define OEX_FPU_DIV0 0x08
00383 #define OEX_FPU_OFLO 0x04
00384 #define OEX_FPU_UFLO 0x02
00385 #define OEX_FPU_INEX 0x01
00386
00387
00388
00389
00390
00391
00392 #define OHW_R4KEOP 0x1
00393 #define OHW_R8KPFETCH 0x2
00394 #define OHW_R5KEOP 0x4
00395 #define OHW_R5KCVTL 0x8
00396 #define OHW_R10KLDL 0x10
00397
00398
00399
00400
00401
00402
00403 #define OHWO0_FIXADE 0x00000001
00404
00405
00406
00407
00408
00409
00410 #define OPAD_PREFIX 0x1
00411 #define OPAD_POSTFIX 0x2
00412 #define OPAD_SYMBOL 0x4
00413
00414
00415
00416
00417
00418
00419 #define OGP_GROUP 0x0000ffff
00420 #define OGP_SELF 0x00010000
00421 #endif
00422
00423
00424
00425 #define SHN_UNDEF 0
00426 #define SHN_LORESERVE 0xff00
00427 #define SHN_LOPROC 0xff00
00428 #define SHN_HIPROC 0xff1f
00429 #define SHN_ABS 0xfff1
00430 #define SHN_COMMON 0xfff2
00431 #define SHN_HIRESERVE 0xffff
00432
00433
00434
00435 #define SHT_NULL 0
00436 #define SHT_PROGBITS 1
00437 #define SHT_SYMTAB 2
00438 #define SHT_STRTAB 3
00439 #define SHT_RELA 4
00440 #define SHT_HASH 5
00441 #define SHT_DYNAMIC 6
00442 #define SHT_NOTE 7
00443 #define SHT_NOBITS 8
00444 #define SHT_REL 9
00445 #define SHT_SHLIB 10
00446 #define SHT_DYNSYM 11
00447 #define SHT_GNU_verdef 0x6ffffffd
00448 #define SHT_GNU_verneed 0x6ffffffe
00449 #define SHT_GNU_versym 0x6fffffff
00450 #define SHT_HISUNW 0x6fffffff
00451 #define SHT_LOPROC 0x70000000
00452 #define SHT_HIPROC 0x7fffffff
00453 #define SHT_LOUSER 0x80000000
00454 #define SHT_HIUSER 0x8fffffff
00455
00456
00457
00458 #define SHF_WRITE (1 << 0)
00459 #define SHF_ALLOC (1 << 1)
00460 #define SHF_EXECINSTR (1 << 2)
00461 #ifndef SHF_TLS
00462 #define SHF_TLS (1 << 10)
00463 #endif
00464 #define SHF_MASKPROC 0xf0000000
00465
00466
00467
00468
00469
00470 #define SHN_UNDEF 0
00471
00472
00473
00474 #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
00475 #define ELF32_ST_TYPE(val) ((val) & 0xf)
00476 #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
00477
00478
00479 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
00480 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
00481 #define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
00482
00483
00484
00485 #define STB_LOCAL 0
00486 #define STB_GLOBAL 1
00487 #define STB_WEAK 2
00488 #define STB_NUM 3
00489 #define STB_LOPROC 13
00490 #define STB_HIPROC 15
00491
00492
00493
00494 #define STT_NOTYPE 0
00495 #define STT_OBJECT 1
00496 #define STT_FUNC 2
00497 #define STT_SECTION 3
00498 #define STT_FILE 4
00499 #define STT_LOPROC 13
00500 #define STT_HIPROC 15
00501
00502
00503
00504
00505
00506
00507 #define STN_UNDEF 0
00508
00509
00510
00511
00512
00513
00514 typedef struct
00515 {
00516 Elf64_Addr r_offset;
00517 Elf64_Byte r_type;
00518 Elf64_Byte r_type2;
00519 Elf64_Byte r_type3;
00520 Elf64_Byte r_ssym;
00521 Elf64_Word r_sym;
00522 } Elf64_AltRel;
00523
00524 typedef struct {
00525 Elf64_Addr r_offset;
00526 Elf64_Byte r_type;
00527 Elf64_Byte r_type2;
00528 Elf64_Byte r_type3;
00529 Elf64_Byte r_ssym;
00530 Elf64_Word r_sym;
00531 Elf64_Sxword r_addend;
00532 } Elf64_AltRela;
00533
00534 #if defined(__MIPS_AND_IA64_ELF_H)
00535
00536 typedef enum {
00537 RSS_UNDEF = 0,
00538 RSS_GP = 1,
00539 RSS_GP0 = 2,
00540 RSS_LOC = 3
00541 } Elf64_Rel_Ssym;
00542 #else
00543
00544
00545
00546
00547
00548 typedef struct
00549 {
00550 Elf64_Addr r_offset;
00551 Elf64_Xword r_info;
00552 } Elf64_Rel;
00553
00554 typedef struct
00555 {
00556 Elf64_Addr r_offset;
00557 Elf64_Xword r_info;
00558 Elf64_Sxword r_addend;
00559 } Elf64_Rela;
00560 #endif
00561
00562
00563
00564 #define ELF32_R_SYM(val) ((val) >> 8)
00565 #define ELF32_R_TYPE(val) ((val) & 0xff)
00566 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
00567
00568 #define ELF64_R_SYM(i) ((i) >> 32)
00569 #define ELF64_R_TYPE(i) ((i) & 0xffffffff)
00570
00571
00572
00573 #define PT_NULL 0
00574 #define PT_LOAD 1
00575 #define PT_DYNAMIC 2
00576 #define PT_INTERP 3
00577 #define PT_NOTE 4
00578 #define PT_SHLIB 5
00579 #define PT_PHDR 6
00580 #define PT_LOPROC 0x70000000
00581 #define PT_HIPROC 0x7fffffff
00582
00583
00584
00585 #define PF_X (1 << 0)
00586 #define PF_W (1 << 1)
00587 #define PF_R (1 << 2)
00588 #define PF_MASKPROC 0xf0000000
00589
00590
00591
00592 #define NT_PRSTATUS 1
00593 #define NT_FPREGSET 2
00594 #define NT_PRPSINFO 3
00595
00596
00597
00598 #define NT_VERSION 1
00599
00600
00601
00602 #define DT_NULL 0
00603 #define DT_NEEDED 1
00604 #define DT_PLTRELSZ 2
00605 #define DT_PLTGOT 3
00606 #define DT_HASH 4
00607 #define DT_STRTAB 5
00608 #define DT_SYMTAB 6
00609 #define DT_RELA 7
00610 #define DT_RELASZ 8
00611 #define DT_RELAENT 9
00612 #define DT_STRSZ 10
00613 #define DT_SYMENT 11
00614 #define DT_INIT 12
00615 #define DT_FINI 13
00616 #define DT_SONAME 14
00617 #define DT_RPATH 15
00618 #define DT_SYMBOLIC 16
00619 #define DT_REL 17
00620 #define DT_RELSZ 18
00621 #define DT_RELENT 19
00622 #define DT_PLTREL 20
00623 #define DT_DEBUG 21
00624 #define DT_TEXTREL 22
00625 #define DT_JMPREL 23
00626 #define DT_LOPROC 0x70000000
00627 #define DT_HIPROC 0x7fffffff
00628 #define DT_PROCNUM DT_MIPS_NUM
00629
00630
00631
00632 #define DT_VERSYM 0x6ffffff0
00633
00634
00635 #define DT_VERDEF 0x6ffffffc
00636
00637 #define DT_VERDEFNUM 0x6ffffffd
00638 #define DT_VERNEED 0x6ffffffe
00639
00640 #define DT_VERNEEDNUM 0x6fffffff
00641 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
00642 #define DT_VERSIONTAGNUM 16
00643
00644
00645
00646 #define DT_AUXILIARY 0x7ffffffd
00647 #define DT_FILTER 0x7fffffff
00648 #define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
00649 #define DT_EXTRANUM 3
00650
00651
00652 #define VER_DEF_NONE 0
00653 #define VER_DEF_CURRENT 1
00654 #define VER_DEF_NUM 2
00655
00656
00657 #define VER_FLG_BASE 0x1
00658 #define VER_FLG_WEAK 0x2
00659
00660
00661 #define VER_NEED_NONE 0
00662 #define VER_NEED_CURRENT 1
00663 #define VER_NEED_NUM 2
00664
00665
00666 #define VER_FLG_WEAK 0x2
00667
00668
00669
00670 #define AT_NULL 0
00671 #define AT_IGNORE 1
00672 #define AT_EXECFD 2
00673 #define AT_PHDR 3
00674 #define AT_PHENT 4
00675 #define AT_PHNUM 5
00676 #define AT_PAGESZ 6
00677 #define AT_BASE 7
00678 #define AT_FLAGS 8
00679 #define AT_ENTRY 9
00680 #define AT_NOTELF 10
00681 #define AT_UID 11
00682 #define AT_EUID 12
00683 #define AT_GID 13
00684 #define AT_EGID 14
00685
00686
00687
00688
00689
00690 #define R_68K_NONE 0
00691 #define R_68K_32 1
00692 #define R_68K_16 2
00693 #define R_68K_8 3
00694 #define R_68K_PC32 4
00695 #define R_68K_PC16 5
00696 #define R_68K_PC8 6
00697 #define R_68K_GOT32 7
00698 #define R_68K_GOT16 8
00699 #define R_68K_GOT8 9
00700 #define R_68K_GOT32O 10
00701 #define R_68K_GOT16O 11
00702 #define R_68K_GOT8O 12
00703 #define R_68K_PLT32 13
00704 #define R_68K_PLT16 14
00705 #define R_68K_PLT8 15
00706 #define R_68K_PLT32O 16
00707 #define R_68K_PLT16O 17
00708 #define R_68K_PLT8O 18
00709 #define R_68K_COPY 19
00710 #define R_68K_GLOB_DAT 20
00711 #define R_68K_JMP_SLOT 21
00712 #define R_68K_RELATIVE 22
00713 #define R_68K_NUM 23
00714
00715
00716
00717
00718
00719 #define R_386_NONE 0
00720 #define R_386_32 1
00721 #define R_386_PC32 2
00722 #define R_386_GOT32 3
00723 #define R_386_PLT32 4
00724 #define R_386_COPY 5
00725 #define R_386_GLOB_DAT 6
00726 #define R_386_JMP_SLOT 7
00727 #define R_386_RELATIVE 8
00728 #define R_386_GOTOFF 9
00729 #define R_386_GOTPC 10
00730
00731
00732 enum {
00733
00734
00735
00736
00737
00738
00739 R_IA_64_NONE = 0x00,
00740
00741
00742
00743 R_IA_64_IMM14 = 0x21,
00744 R_IA_64_IMM22 = 0x22,
00745 R_IA_64_IMM64 = 0x23,
00746 R_IA_64_DIR32MSB = 0x24,
00747 R_IA_64_DIR32LSB = 0x25,
00748 R_IA_64_DIR64MSB = 0x26,
00749 R_IA_64_DIR64LSB = 0x27,
00750
00751
00752
00753 R_IA_64_GPREL22 = 0x2a,
00754 R_IA_64_GPREL64I = 0x2b,
00755
00756
00757
00758 R_IA_64_GPREL64MSB = 0x2e,
00759 R_IA_64_GPREL64LSB = 0x2f,
00760
00761
00762
00763 R_IA_64_LTOFF22 = 0x32,
00764 R_IA_64_LTOFF64I = 0x33,
00765
00766
00767
00768 R_IA_64_PLTOFF22 = 0x3a,
00769 R_IA_64_PLTOFF64I = 0x3b,
00770
00771
00772
00773 R_IA_64_PLTOFF64MSB = 0x3e,
00774 R_IA_64_PLTOFF64LSB = 0x3f,
00775
00776
00777
00778 R_IA_64_FPTR64I = 0x43,
00779 R_IA_64_FPTR32MSB = 0x44,
00780 R_IA_64_FPTR32LSB = 0x45,
00781 R_IA_64_FPTR64MSB = 0x46,
00782 R_IA_64_FPTR64LSB = 0x47,
00783
00784
00785
00786 R_IA_64_PCREL21B = 0x49,
00787 R_IA_64_PCREL21M = 0x4a,
00788 R_IA_64_PCREL21F = 0x4b,
00789 R_IA_64_PCREL32MSB = 0x4c,
00790 R_IA_64_PCREL32LSB = 0x4d,
00791 R_IA_64_PCREL64MSB = 0x4e,
00792 R_IA_64_PCREL64LSB = 0x4f,
00793
00794
00795
00796 R_IA_64_LTOFF_FPTR22 = 0x52,
00797 R_IA_64_LTOFF_FPTR64I= 0x53,
00798
00799
00800
00801 R_IA_64_SEGREL32MSB = 0x5c,
00802 R_IA_64_SEGREL32LSB = 0x5d,
00803 R_IA_64_SEGREL64MSB = 0x5e,
00804 R_IA_64_SEGREL64LSB = 0x5f,
00805
00806
00807
00808 R_IA_64_SECREL32MSB = 0x64,
00809 R_IA_64_SECREL32LSB = 0x65,
00810 R_IA_64_SECREL64MSB = 0x66,
00811 R_IA_64_SECREL64LSB = 0x67,
00812
00813
00814
00815 R_IA_64_REL32MSB = 0x6c,
00816 R_IA_64_REL32LSB = 0x6d,
00817 R_IA_64_REL64MSB = 0x6e,
00818 R_IA_64_REL64LSB = 0x6f,
00819 R_IA_64_LTV32MSB = 0x70,
00820 R_IA_64_LTV32LSB = 0x71,
00821 R_IA_64_LTV64MSB = 0x72,
00822 R_IA_64_LTV64LSB = 0x73,
00823
00824
00825
00826 R_IA_64_IPLTMSB = 0x80,
00827 R_IA_64_IPLTLSB = 0x81,
00828
00829
00830
00831 R_IA_64_END_ = 0x82
00832
00833
00834 };
00835
00836
00837
00838
00839
00840 #define R_SPARC_NONE 0
00841 #define R_SPARC_8 1
00842 #define R_SPARC_16 2
00843 #define R_SPARC_32 3
00844 #define R_SPARC_DISP8 4
00845 #define R_SPARC_DISP16 5
00846 #define R_SPARC_DISP32 6
00847 #define R_SPARC_WDISP30 7
00848 #define R_SPARC_WDISP22 8
00849 #define R_SPARC_HI22 9
00850 #define R_SPARC_22 10
00851 #define R_SPARC_13 11
00852 #define R_SPARC_LO10 12
00853 #define R_SPARC_GOT10 13
00854 #define R_SPARC_GOT13 14
00855 #define R_SPARC_GOT22 15
00856 #define R_SPARC_PC10 16
00857 #define R_SPARC_PC22 17
00858 #define R_SPARC_WPLT30 18
00859 #define R_SPARC_COPY 19
00860 #define R_SPARC_GLOB_DAT 20
00861 #define R_SPARC_JMP_SLOT 21
00862 #define R_SPARC_RELATIVE 22
00863 #define R_SPARC_UA32 23
00864
00865
00866
00867
00868
00869 #define EF_MIPS_NOREORDER 1
00870 #define EF_MIPS_PIC 2
00871 #define EF_MIPS_CPIC 4
00872 #define EF_MIPS_ARCH 0xf0000000
00873
00874 #if defined(__MIPS_AND_IA64_ELF_H)
00875
00876
00877
00878
00879 #define EI_TVERSION 15
00880 #define EV_T_CURRENT 1
00881
00882 #define EF_IRIX_ABI64 0x00000010
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893
00894
00895
00896
00897 #define EF_MIPS_OPSEX EF_MIPS_NOREORDER
00898 #define EF_MIPS_OPTIONS_FIRST 0x00000080
00899
00900 #define EF_MIPS_UGEN_ALLOC EF_MIPS_XGOT
00901 #define EF_MIPS_UGEN_RESERVED EF_MIPS_64BIT_WHIRL
00902
00903 #define EF_MIPS_ABI64 EF_IRIX_ABI64
00904
00905
00906
00907
00908
00909
00910
00911 #define EF_MIPS_ARCH 0xf0000000
00912 #define EF_MIPS_ARCH_1 0x00000000
00913 #define EF_MIPS_ARCH_2 0x10000000
00914 #define EF_MIPS_ARCH_3 0x20000000
00915 #define EF_MIPS_ARCH_4 0x30000000
00916 #define EF_MIPS_ARCH_5 0x40000000
00917 #define EF_MIPS_ARCH_6 0x50000000
00918
00919
00920
00921
00922
00923
00924
00925 #define EF_MIPS_ARCH_ASE 0x0f000000
00926 #define EF_MIPS_ARCH_ASE_MDMX 0x08000000
00927 #define EF_MIPS_ARCH_ASE_M16 0x04000000
00928
00929
00930
00931
00932
00933
00934
00935
00936
00937
00938
00939
00940
00941
00942
00943
00944
00945 #define EF_IA64_PIC 0x00000002
00946
00947
00948
00949
00950 #define EF_IA64_CPIC 0x00000004
00951
00952
00953
00954
00955
00956 #define EF_IA64_ARCH 0xff000000
00957
00958
00959
00960
00961
00962 #define EF_IA64_ABI64 EF_IRIX_ABI64
00963
00964
00965
00966
00967
00968
00969
00970
00971
00972 #define _TEXT_ALIGN 0x10000
00973 #define _DATA_ALIGN 0x10000
00974 #define ELF_IRIX_MAXPGSZ (64*1024)
00975 #define ELF_IRIX_MINPGSZ (0x1000)
00976
00977 #define ELF_IA64_MAXPGSZ ELF_IRIX_MAXPGSZ
00978 #define ELF_IA64_MINPGSZ ELF_IRIX_MINPGSZ
00979
00980 #define ELF_MIPS_MAXPGSZ ELF_IRIX_MAXPGSZ
00981 #define ELF_MIPS_MINPGSZ ELF_IRIX_MINPGSZ
00982 #endif
00983
00984
00985
00986 #define E_MIPS_ARCH_1 0x00000000
00987 #define E_MIPS_ARCH_2 0x10000000
00988 #define E_MIPS_ARCH_3 0x20000000
00989
00990
00991
00992
00993
00994 #define PF_MIPS_LOCAL 0x10000000
00995
00996
00997
00998 #define SHN_MIPS_ACOMMON 0xff00
00999 #define SHN_MIPS_TEXT 0xff01
01000 #define SHN_MIPS_DATA 0xff02
01001 #define SHN_MIPS_SCOMMON 0xff03
01002 #define SHN_MIPS_SUNDEFINED 0xff04
01003
01004
01005
01006 #define SHT_MIPS_LIBLIST 0x70000000
01007 #define SHT_MIPS_CONFLICT 0x70000002
01008 #define SHT_MIPS_GPTAB 0x70000003
01009 #define SHT_MIPS_UCODE 0x70000004
01010 #define SHT_MIPS_DEBUG 0x70000005
01011 #define SHT_MIPS_REGINFO 0x70000006
01012 #define SHT_MIPS_OPTIONS 0x7000000d
01013 #define SHT_MIPS_DWARF 0x7000001e
01014 #define SHT_MIPS_EVENTS 0x70000021
01015 #define SHT_MIPS_XLATE 0x70000024
01016 #define SHT_MIPS_XLATE_DEBUG 0x70000025
01017 #define SHT_MIPS_WHIRL 0x70000026
01018 #define SHT_MIPS_XLATE_OLD 0x70000028
01019
01020
01021
01022 #define SHF_MIPS_GPREL 0x10000000
01023
01024 #if defined(__MIPS_AND_IA64_ELF_H)
01025 #define SHT_IRIX_LIBLIST (SHT_LOPROC + 0)
01026 #define SHT_IRIX_MSYM (SHT_LOPROC + 1)
01027 #define SHT_IRIX_CONFLICT (SHT_LOPROC + 2)
01028 #define SHT_IRIX_GPTAB (SHT_LOPROC + 3)
01029 #define SHT_IRIX_UCODE (SHT_LOPROC + 4)
01030 #define SHT_IRIX_DEBUG (SHT_LOPROC + 5)
01031 #define SHT_IRIX_REGINFO (SHT_LOPROC + 6)
01032
01033 #ifdef __osf__
01034 #define SHT_IRIX_PACKAGE (SHT_LOPROC + 7)
01035 #define SHT_IRIX_PACKSYM (SHT_LOPROC + 8)
01036 #endif
01037
01038 #define SHT_IRIX_RELD (SHT_LOPROC + 9)
01039 #define SHT_IRIX_DONTUSE (SHT_LOPROC + 10)
01040
01041 #define SHT_IRIX_IFACE (SHT_LOPROC + 11)
01042 #define SHT_IRIX_CONTENT (SHT_LOPROC + 12)
01043 #define SHT_IRIX_OPTIONS (SHT_LOPROC + 13)
01044
01045 #define SHT_IRIX_SHDR (SHT_LOPROC + 16)
01046 #define SHT_IRIX_FDESC (SHT_LOPROC + 17)
01047 #define SHT_IRIX_EXTSYM (SHT_LOPROC + 18)
01048 #define SHT_IRIX_DENSE (SHT_LOPROC + 19)
01049 #define SHT_IRIX_PDESC (SHT_LOPROC + 20)
01050 #define SHT_IRIX_LOCSYM (SHT_LOPROC + 21)
01051 #define SHT_IRIX_AUXSYM (SHT_LOPROC + 22)
01052 #define SHT_IRIX_OPTSYM (SHT_LOPROC + 23)
01053 #define SHT_IRIX_LOCSTR (SHT_LOPROC + 24)
01054 #define SHT_IRIX_LINE (SHT_LOPROC + 25)
01055 #define SHT_IRIX_RFDESC (SHT_LOPROC + 26)
01056
01057 #define SHT_IRIX_DELTASYM (SHT_LOPROC + 27)
01058 #define SHT_IRIX_DELTAINST (SHT_LOPROC + 28)
01059 #define SHT_IRIX_DELTACLASS (SHT_LOPROC + 29)
01060
01061 #define SHT_IRIX_DWARF (SHT_LOPROC + 30)
01062 #define SHT_IRIX_DELTADECL (SHT_LOPROC + 31)
01063 #define SHT_IRIX_SYMBOL_LIB (SHT_LOPROC + 32)
01064 #define SHT_IRIX_EVENTS (SHT_LOPROC + 33)
01065 #define SHT_IRIX_TRANSLATE (SHT_LOPROC + 34)
01066 #define SHT_IRIX_PIXIE (SHT_LOPROC + 35)
01067 #define SHT_IRIX_XLATE (SHT_LOPROC + 36)
01068 #define SHT_IRIX_XLATE_DEBUG (SHT_LOPROC + 37)
01069 #define SHT_IRIX_WHIRL (SHT_LOPROC + 38)
01070 #define SHT_IRIX_EH_REGION (SHT_LOPROC + 39)
01071 #define SHT_IRIX_XLATE_OLD (SHT_LOPROC + 40)
01072 #define SHT_IRIX_PDR_EXCEPTION (SHT_LOPROC + 41)
01073
01074
01075 #define SHT_IRIX_EXT (SHT_LOPROC + 42)
01076 #define SHT_IRIX_UNWIND (SHT_LOPROC + 43)
01077 #define SHT_IRIX_UNWIND_INFO (SHT_LOPROC + 44)
01078 #define SHT_IRIX_PLT (SHT_LOPROC + 45)
01079 #define SHT_IRIX_PLTOFF (SHT_LOPROC + 46)
01080 #define SHT_IA64_UNWIND SHT_IRIX_UNWIND
01081 #define SHT_IA64_UNWIND_INFO SHT_IRIX_UNWIND_INFO
01082 #define SHT_IA64_OPTIONS SHT_IRIX_OPTIONS
01083
01084
01085 #define SHT_IRIX_NUM 47
01086
01087
01088
01089
01090 #define SHT_MIPS_DONTUSE SHT_IRIX_DONTUSE
01091
01092
01093
01094
01095
01096
01097
01098
01099 #define SHF_IRIX_GPREL 0x10000000
01100 #define SHF_IRIX_MERGE 0x20000000
01101 #define SHF_IRIX_ADDR 0x40000000
01102 #define SHF_IRIX_STRINGS 0x80000000
01103 #define SHF_IRIX_NOSTRIP 0x08000000
01104 #define SHF_IRIX_LOCAL 0x04000000
01105 #define SHF_IRIX_NAMES 0x02000000
01106 #define SHF_IRIX_NODUPE 0x01000000
01107
01108
01109
01110
01111
01112
01113
01114
01115
01116
01117
01118 #define STO_DEFAULT 0x0
01119 #define STO_INTERNAL 0x1
01120 #define STO_HIDDEN 0x2
01121 #define STO_PROTECTED 0x3
01122 #define STO_OPTIONAL 0x4
01123 #define STO_SC_ALIGN_UNUSED 0xff
01124
01125
01126
01127
01128 #define STB_SPLIT_COMMON (STB_LOPROC+0)
01129
01130
01131
01132
01133
01134
01135
01136
01137
01138
01139
01140
01141 #define SHN_IRIX_ACOMMON (SHN_LOPROC + 0)
01142 #define SHN_IRIX_TEXT (SHN_LOPROC + 1)
01143 #define SHN_IRIX_DATA (SHN_LOPROC + 2)
01144 #define SHN_IRIX_SCOMMON (SHN_LOPROC + 3)
01145 #define SHN_IRIX_SUNDEFINED (SHN_LOPROC + 4)
01146 #define SHN_IRIX_LCOMMON (SHN_LOPROC + 5)
01147 #define SHN_IRIX_LUNDEFINED (SHN_LOPROC + 6)
01148
01149
01150
01151
01152
01153 #define SHN_MIPS_LCOMMON SHN_IRIX_LCOMMON
01154 #define SHN_MIPS_LUNDEFINED SHN_IRIX_LUNDEFINED
01155
01156
01157
01158 typedef enum {
01159 EK_NULL = 0x00,
01160 EK_ADDR_RESET = 0x01,
01161 EK_INCR_LOC_EXT = 0x02,
01162 EK_ENTRY = 0x03,
01163 EK_IF_ENTRY = 0x04,
01164 EK_EXIT = 0x05,
01165 EK_PEND = 0x06,
01166
01167 EK_SWITCH_32 = 0x7,
01168 EK_SWITCH_64 = 0x8,
01169 EK_DUMMY = 0x09,
01170
01171 EK_BB_START = 0x0a,
01172 EK_INCR_LOC_UNALIGNED = 0x0b,
01173 EK_GP_PROLOG_HI = 0x0c,
01174 EK_GP_PROLOG_LO = 0x0d,
01175 EK_GOT_PAGE = 0x0e,
01176 EK_GOT_OFST = 0x0f,
01177 EK_HI = 0x10,
01178 EK_LO = 0x11,
01179 EK_64_HIGHEST = 0x12,
01180
01181 EK_64_HIGHER = 0x13,
01182
01183 EK_64_HIGH = 0x14,
01184
01185 EK_64_LOW = 0x15,
01186
01187 EK_GPREL = 0x16,
01188
01189 EK_DEF = 0x17,
01190
01191 EK_FCALL_LOCAL = 0x18,
01192 EK_FCALL_EXTERN = 0x19,
01193 EK_FCALL_EXTERN_BIG = 0x1a,
01194 EK_FCALL_MULT = 0x1b,
01195 EK_FCALL_MULT_PARTIAL = 0x1c,
01196
01197 EK_LTR_FCALL = 0x1d,
01198
01199 EK_PCREL_GOT0 = 0x1e,
01200
01201
01202
01203
01204 EK_MEM_COPY_LOAD = 0x1f,
01205 EK_MEM_COPY_STORE = 0x20,
01206
01207
01208 EK_MEM_PARTIAL_LOAD = 0x21,
01209
01210
01211 EK_MEM_EAGER_LOAD = 0x22,
01212 EK_MEM_VALID_LOAD = 0x23,
01213
01214
01215
01216
01217
01218 EK_CK_UNUSED_NONE_0 = 0x50,
01219 EK_CK_UNUSED_NONE_1 = 0x51,
01220 EK_CK_UNUSED_NONE_2 = 0x52,
01221 EK_CK_UNUSED_NONE_3 = 0x53,
01222 EK_CK_UNUSED_NONE_4 = 0x54,
01223
01224
01225
01226
01227 EK_CK_UNUSED_16BIT_0 = 0x55,
01228 EK_CK_UNUSED_16BIT_1 = 0x56,
01229 EK_CK_UNUSED_16BIT_2 = 0x57,
01230 EK_CK_UNUSED_16BIT_3 = 0x58,
01231 EK_CK_UNUSED_16BIT_4 = 0x59,
01232
01233
01234
01235
01236 EK_CK_UNUSED_32BIT_0 = 0x5a,
01237 EK_CK_UNUSED_32BIT_1 = 0x5b,
01238 EK_CK_UNUSED_32BIT_2 = 0x5c,
01239
01240
01241
01242
01243
01244 EK_CK_UNUSED_64BIT_0 = 0x5d,
01245 EK_CK_UNUSED_64BIT_1 = 0x5e,
01246 EK_CK_UNUSED_64BIT_2 = 0x5f,
01247 EK_CK_UNUSED_64BIT_3 = 0x60,
01248 EK_CK_UNUSED_64BIT_4 = 0x61,
01249
01250
01251
01252
01253 EK_CK_UNUSED_ULEB128_0 = 0x62,
01254 EK_CK_UNUSED_ULEB128_1 = 0x63,
01255 EK_CK_UNUSED_ULEB128_2 = 0x64,
01256 EK_CK_UNUSED_ULEB128_3 = 0x65,
01257 EK_CK_UNUSED_ULEB128_4 = 0x66,
01258 EK_CK_UNUSED_ULEB128_5 = 0x67,
01259 EK_CK_UNUSED_ULEB128_6 = 0x68,
01260 EK_CK_UNUSED_ULEB128_7 = 0x69,
01261 EK_CK_UNUSED_ULEB128_8 = 0x6a,
01262 EK_CK_UNUSED_ULEB128_9 = 0x6b,
01263
01264
01265 EK_INCR_LOC = 0x80
01266
01267 } Elf_MIPS_Event_Kind;
01268 typedef Elf_MIPS_Event_Kind Elf_Event_Kind;
01269
01270
01271
01272
01273 #define EK_DEF_UCHAR (1)
01274 #define EK_DEF_USHORT (2)
01275 #define EK_DEF_UINT (3)
01276 #define EK_DEF_ULONG (4)
01277 #define EK_DEF_ULEB128 (5)
01278 #define EK_DEF_CHAR (6)
01279 #define EK_DEF_SHORT (7)
01280 #define EK_DEF_INT (8)
01281 #define EK_DEF_LONG (9)
01282 #define EK_DEF_LEB128 (10)
01283 #define EK_DEF_STRING (11)
01284 #define EK_DEF_VAR (12)
01285
01286
01287
01288
01289 #define CK_DEF EK_DEF
01290
01291 #define R_MIPS_GPREL 7
01292
01293 typedef struct {
01294 Elf64_Word symbol;
01295 Elf64_Half attrs;
01296 Elf64_Byte pcnt;
01297 Elf64_Byte fpmask;
01298 } Elf_Ifd;
01299
01300 typedef Elf_Ifd Elf_Interface_Descriptor;
01301
01302
01303 #define SA_PROTOTYPED 0x8000
01304 #define SA_VARARGS 0x4000
01305 #define SA_PIC 0x2000
01306 #define SA_DSO_ENTRY 0x1000
01307 #define SA_ADDRESSED 0x0800
01308 #define SA_FUNCTION 0x0400
01309 #define SA_NESTED 0x0200
01310 #define SA_IGNORE_ERROR 0x0100
01311 #define SA_DEFINITION 0x0080
01312 #define SA_AT_FREE 0x0040
01313 #define SA_FREE_REGS 0x0020
01314 #define SA_PARAMETERS 0x0010
01315 #define SA_ALTINTERFACE 0x0008
01316
01317
01318 #define FT_unknown 0x0000
01319 #define FT_signed_char 0x0001
01320 #define FT_unsigned_char 0x0002
01321 #define FT_signed_short 0x0003
01322 #define FT_unsigned_short 0x0004
01323 #define FT_signed_int32 0x0005
01324 #define FT_unsigned_int32 0x0006
01325 #define FT_signed_int64 0x0007
01326 #define FT_unsigned_int64 0x0008
01327 #define FT_pointer32 0x0009
01328 #define FT_pointer64 0x000a
01329 #define FT_float32 0x000b
01330 #define FT_float64 0x000c
01331 #define FT_float128 0x000d
01332 #define FT_complex64 0x000e
01333 #define FT_complex128 0x000f
01334 #define FT_complex256 0x0010
01335 #define FT_void 0x0011
01336 #define FT_bool32 0x0012
01337 #define FT_bool64 0x0013
01338 #define FT_label32 0x0014
01339 #define FT_label64 0x0015
01340 #define FT_struct 0x0020
01341 #define FT_union 0x0021
01342 #define FT_enum 0x0022
01343 #define FT_typedef 0x0023
01344 #define FT_set 0x0024
01345 #define FT_range 0x0025
01346 #define FT_member_ptr 0x0026
01347 #define FT_virtual_ptr 0x0027
01348 #define FT_class 0x0028
01349
01350
01351 #define MOD_pointer_to 0x01
01352 #define MOD_reference_to 0x02
01353 #define MOD_const 0x03
01354 #define MOD_volatile 0x04
01355 #define MOD_function 0x80
01356 #define MOD_array_of 0x81
01357
01358
01359 #define PDM_TYPE 0x00ff
01360 #define PDM_REFERENCE 0x4000
01361 #define PDM_SIZE 0x2000
01362 #define PDM_Qualifiers 0x0f00
01363
01364
01365 #define PDMF_REFERENCE 0x40
01366 #define PDMF_SIZE 0x20
01367 #define PDMF_Qualifiers 0x0f
01368 #endif
01369
01370
01371
01372 #define R_MIPS_NONE 0
01373 #define R_MIPS_16 1
01374 #define R_MIPS_32 2
01375 #define R_MIPS_REL32 3
01376 #define R_MIPS_26 4
01377 #define R_MIPS_HI16 5
01378 #define R_MIPS_LO16 6
01379 #define R_MIPS_GPREL16 7
01380 #define R_MIPS_LITERAL 8
01381 #define R_MIPS_GOT16 9
01382 #define R_MIPS_PC16 10
01383 #define R_MIPS_CALL16 11
01384 #define R_MIPS_GPREL32 12
01385 #define R_MIPS_SHIFT5 16
01386 #define R_MIPS_SHIFT6 17
01387 #define R_MIPS_64 18
01388 #define R_MIPS_GOT_DISP 19
01389 #define R_MIPS_GOT_PAGE 20
01390 #define R_MIPS_GOT_OFST 21
01391 #define R_MIPS_GOT_HI16 22
01392 #define R_MIPS_GOT_LO16 23
01393 #define R_MIPS_SUB 24
01394 #define R_MIPS_INSERT_A 25
01395 #define R_MIPS_INSERT_B 26
01396 #define R_MIPS_DELETE 27
01397 #define R_MIPS_HIGHER 28
01398 #define R_MIPS_HIGHEST 29
01399 #define R_MIPS_CALL_HI16 30
01400 #define R_MIPS_CALL_LO16 31
01401 #define R_MIPS_SCN_DISP 32
01402 #define R_MIPS_REL16 33
01403 #define R_MIPS_ADD_IMMEDIATE 34
01404 #define R_MIPS_PJUMP 35
01405 #define R_MIPS_RELGOT 36
01406 #define R_MIPS_JALR 37
01407
01408
01409 #define _R_MIPS_COUNT_ 38
01410
01411
01412
01413
01414
01415
01416
01417
01418 #define PT_MIPS_REGINFO 0x70000000
01419
01420
01421
01422
01423
01424 #define PT_IA64_ARCHEXT (PT_LOPROC + 0)
01425
01426
01427
01428 #define PT_IA64_UNWIND (PT_LOPROC + 1)
01429
01430
01431
01432
01433
01434
01435 #define PT_IA64_OPTIONS (PT_LOPROC + 2)
01436
01437
01438
01439
01440
01441
01442
01443
01444
01445
01446 #define PF_IA64_NORECOV 0x80000000
01447
01448
01449
01450
01451
01452
01453
01454
01455
01456
01457
01458
01459
01460
01461
01462
01463
01464
01465
01466
01467 #define DT_MIPS_RLD_VERSION 0x70000001
01468 #define DT_MIPS_TIME_STAMP 0x70000002
01469 #define DT_MIPS_ICHECKSUM 0x70000003
01470 #define DT_MIPS_IVERSION 0x70000004
01471 #define DT_MIPS_FLAGS 0x70000005
01472 #define DT_MIPS_BASE_ADDRESS 0x70000006
01473 #define DT_MIPS_MSYM 0x70000007
01474 #define DT_MIPS_CONFLICT 0x70000008
01475 #define DT_MIPS_LIBLIST 0x70000009
01476 #define DT_MIPS_LOCAL_GOTNO 0x7000000a
01477 #define DT_MIPS_CONFLICTNO 0x7000000b
01478 #define DT_MIPS_LIBLISTNO 0x70000010
01479 #define DT_MIPS_SYMTABNO 0x70000011
01480 #define DT_MIPS_UNREFEXTNO 0x70000012
01481 #define DT_MIPS_GOTSYM 0x70000013
01482 #define DT_MIPS_HIPAGENO 0x70000014
01483 #define DT_MIPS_RLD_MAP 0x70000016
01484
01485
01486
01487 #define RHF_NONE 0
01488 #define RHF_QUICKSTART (1 << 0)
01489 #define RHF_NOTPOT (1 << 1)
01490 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
01491
01492
01493
01494 #define LL_EXACT_MATCH (1 << 0)
01495 #define LL_IGNORE_INT_VER (1 << 1)
01496
01497 #if defined(__MIPS_AND_IA64_ELF_H)
01498
01499
01500
01501
01502
01503
01504
01505
01506
01507
01508
01509
01510
01511
01512
01513
01514
01515
01516
01517
01518
01519
01520
01521
01522
01523
01524
01525
01526
01527
01528
01529
01530
01531
01532
01533
01534
01535
01536
01537
01538
01539 #define LL_NONE 0
01540
01541 #define DT_IRIX_LTR 0x70000033
01542 #define DT_IRIX_LPT 0x70000034
01543 #define DT_IRIX_LPT_IDX 0x70000035
01544 #define DT_IRIX_LPT_NO 0x70000036
01545 #define DT_IRIX_PLT 0x70000037
01546 #define DT_IRIX_PLT_NON_PREEMPT_IDX 0x70000038
01547 #define DT_IRIX_PLT_NON_PREEMPT_NO 0x70000039
01548 #define DT_IRIX_PLT_IN_DYNSYM_IDX 0x7000003A
01549 #define DT_IRIX_PLT_IN_DYMSYM_NO 0x7000003B
01550 #define DT_IRIX_PLT_PROTECTED_IDX 0x7000003C
01551 #define DT_IRIX_PLT_PROTECTED_NO 0x7000003D
01552 #define DT_IRIX_PLT_PREEMPT_IDX 0x7000003E
01553 #define DT_IRIX_PLT_PREEMPT_NO 0x7000003F
01554 #define DT_IRIX_DLT 0x70000040
01555 #define DT_IRIX_DLT_NON_PREEMPT_IDX 0x70000041
01556 #define DT_IRIX_DLT_NON_PREEMPT_NO 0x70000042
01557 #define DT_IRIX_DLT_IN_DYNSYM_IDX 0x70000043
01558 #define DT_IRIX_DLT_IN_DYMSYM_NO 0x70000044
01559 #define DT_IRIX_DLT_PROTECTED_IDX 0x70000045
01560 #define DT_IRIX_DLT_PROTECTED_NO 0x70000046
01561 #define DT_IRIX_DLT_PREEMPT_IDX 0x70000047
01562 #define DT_IRIX_DLT_PREEMPT_NO 0x70000048
01563 #define DT_IRIX_DSYM_PLT_IDX 0x70000049
01564 #define DT_IRIX_DSYM_DLT_IDX 0x7000004A
01565
01566
01567
01568
01569
01570
01571
01572
01573
01574
01575
01576
01577
01578
01579
01580
01581
01582 #ifndef __osf__
01583
01584 #define DT_MIPS_70000015 0x70000015
01585
01586
01587
01588
01589
01590 #if (defined(_DELTA_C_PLUS_PLUS) && (_DELTA_C_PLUS_PLUS==1))
01591
01592 #define DT_MIPS_DELTA_CLASS 0x70000017
01593 #define DT_MIPS_DELTA_CLASS_NO 0x70000018
01594 #define DT_MIPS_DELTA_INSTANCE 0x70000019
01595 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001A
01596 #define DT_MIPS_DELTA_RELOC 0x7000001B
01597 #define DT_MIPS_DELTA_RELOC_NO 0x7000001C
01598 #define DT_MIPS_DELTA_SYM 0x7000001D
01599
01600 #define DT_MIPS_DELTA_SYM_NO 0x7000001E
01601 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
01602 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
01603
01604 #endif
01605
01606
01607 #define DT_MIPS_CXX_FLAGS 0x70000022
01608 #define DT_MIPS_PIXIE_INIT 0x70000023
01609 #define DT_MIPS_SYMBOL_LIB 0x70000024
01610 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
01611 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
01612 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
01613 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
01614 #define DT_MIPS_OPTIONS 0x70000029
01615 #define DT_MIPS_INTERFACE 0x7000002a
01616 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
01617 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
01618 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
01619 #define DT_MIPS_PERF_SUFFIX 0x7000002e
01620
01621 #define DT_MIPS_COMPACT_SIZE 0x7000002f
01622 #define DT_MIPS_GP_VALUE 0x70000030
01623 #define DT_MIPS_AUX_DYNAMIC 0x70000031
01624
01625 #else
01626
01627 #define DT_MIPS_PACKAGE 0x70000014
01628 #define DT_MIPS_PACKAGENO 0x70000015
01629 #define DT_MIPS_PACKSYM 0x70000016
01630 #define DT_MIPS_PACKSYMNO 0x70000017
01631 #define DT_MIPS_IMPACKNO 0x70000018
01632 #define DT_MIPS_EXPACKNO 0x70000019
01633 #define DT_MIPS_IMPSYMNO 0x7000001A
01634 #define DT_MIPS_EXPSYMNO 0x7000001B
01635 #define DT_MIPS_HIPAGENO 0x7000001C
01636
01637 #endif
01638
01639
01640
01641
01642
01643 typedef struct
01644 {
01645 Elf64_Addr ri_gp_value;
01646
01647
01648
01649 }
01650 Elf_IA64_RegInfo;
01651 #endif
01652
01653
01654
01655 typedef Elf64_Addr Elf64_Conflict;
01656
01657 extern Elf64_Conflict _ConflictList64 [];
01658
01659 #define RLD_VERSION 1
01660
01661
01662
01663
01664
01665
01666 #define SHT_PARISC_GOT 0x70000000
01667 #define SHT_PARISC_ARCH 0x70000001
01668 #define SHT_PARISC_GLOBAL 0x70000002
01669 #define SHT_PARISC_MILLI 0x70000003
01670 #define SHT_PARISC_PLT 0x70000005
01671 #define SHT_PARISC_SDATA 0x70000006
01672 #define SHT_PARISC_SBSS 0x70000007
01673 #define SHT_PARISC_SYMEXTN 0x70000008
01674 #define SHT_PARISC_STUBS 0x70000009
01675
01676
01677
01678 #define SHF_PARISC_SHORT 0x20000000
01679
01680
01681
01682 #define STT_PARISC_MILLICODE 13
01683
01684
01685
01686
01687
01688
01689 #define R_ALPHA_NONE 0
01690 #define R_ALPHA_REFLONG 1
01691 #define R_ALPHA_REFQUAD 2
01692 #define R_ALPHA_GPREL32 3
01693 #define R_ALPHA_LITERAL 4
01694 #define R_ALPHA_LITUSE 5
01695 #define R_ALPHA_GPDISP 6
01696 #define R_ALPHA_BRADDR 7
01697 #define R_ALPHA_HINT 8
01698 #define R_ALPHA_SREL16 9
01699 #define R_ALPHA_SREL32 10
01700 #define R_ALPHA_SREL64 11
01701 #define R_ALPHA_OP_PUSH 12
01702 #define R_ALPHA_OP_STORE 13
01703 #define R_ALPHA_OP_PSUB 14
01704 #define R_ALPHA_OP_PRSHIFT 15
01705 #define R_ALPHA_GPVALUE 16
01706 #define R_ALPHA_GPRELHIGH 17
01707 #define R_ALPHA_GPRELLOW 18
01708 #define R_ALPHA_IMMED_GP_16 19
01709 #define R_ALPHA_IMMED_GP_HI32 20
01710 #define R_ALPHA_IMMED_SCN_HI32 21
01711 #define R_ALPHA_IMMED_BR_HI32 22
01712 #define R_ALPHA_IMMED_LO32 23
01713 #define R_ALPHA_COPY 24
01714 #define R_ALPHA_GLOB_DAT 25
01715 #define R_ALPHA_JMP_SLOT 26
01716 #define R_ALPHA_RELATIVE 27
01717
01718 __END_DECLS
01719
01720 #endif