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 #ifndef _ELF_H
00037 #define _ELF_H 1
00038
00039 #if defined(__mips)
00040
00041 # include <../../usr/include/elf.h>
00042
00043 #else
00044
00045
00046
00047
00048 #if !(defined(__MIPS_AND_IA64_ELF_H))
00049 # define __MIPS_AND_IA64_ELF_H 1
00050 #endif
00051
00052
00053
00054
00055 #ifdef __BEGIN_DECLS
00056 # undef __BEGIN_DECLS
00057 #endif
00058
00059 #ifdef __END_DECLS
00060 # undef __END_DECLS
00061 #endif
00062
00063 #ifdef _DOTDOTDOT
00064 # undef _DOTDOTDOT
00065 #endif
00066
00067 #if defined(__cplusplus)
00068 # define __BEGIN_DECLS extern "C" {
00069 # define __END_DECLS };
00070 # define _DOTDOTDOT ...
00071 #else
00072 # define __BEGIN_DECLS
00073 # define __END_DECLS
00074 # define _DOTDOTDOT
00075 #endif
00076
00077
00078
00079
00080
00081 __BEGIN_DECLS
00082
00083
00084
00085 #include <inttypes.h>
00086
00087
00088
00089 typedef uint16_t Elf32_Half;
00090 typedef uint16_t Elf64_Half;
00091
00092
00093 typedef uint32_t Elf32_Word;
00094 typedef int32_t Elf32_Sword;
00095 typedef uint32_t Elf64_Word;
00096 typedef int32_t Elf64_Sword;
00097
00098
00099 typedef uint64_t Elf32_Xword;
00100 typedef int64_t Elf32_Sxword;
00101 typedef uint64_t Elf64_Xword;
00102 typedef int64_t Elf64_Sxword;
00103
00104
00105 typedef uint32_t Elf32_Addr;
00106 typedef uint64_t Elf64_Addr;
00107
00108
00109 typedef uint32_t Elf32_Off;
00110 typedef uint64_t Elf64_Off;
00111
00112
00113 typedef uint16_t Elf32_Section;
00114 typedef uint16_t Elf64_Section;
00115
00116
00117 typedef uint32_t Elf32_Symndx;
00118 typedef uint64_t Elf64_Symndx;
00119
00120 #if defined(__MIPS_AND_IA64_ELF_H)
00121 typedef unsigned char Elf32_Byte;
00122 typedef unsigned char Elf64_Byte;
00123 #endif
00124
00125
00126
00127 #define EI_NIDENT (16)
00128
00129 typedef struct
00130 {
00131 unsigned char e_ident[EI_NIDENT];
00132 Elf32_Half e_type;
00133 Elf32_Half e_machine;
00134 Elf32_Word e_version;
00135 Elf32_Addr e_entry;
00136 Elf32_Off e_phoff;
00137 Elf32_Off e_shoff;
00138 Elf32_Word e_flags;
00139 Elf32_Half e_ehsize;
00140 Elf32_Half e_phentsize;
00141 Elf32_Half e_phnum;
00142 Elf32_Half e_shentsize;
00143 Elf32_Half e_shnum;
00144 Elf32_Half e_shstrndx;
00145 } Elf32_Ehdr;
00146
00147 typedef struct
00148 {
00149 unsigned char e_ident[EI_NIDENT];
00150 Elf64_Half e_type;
00151 Elf64_Half e_machine;
00152 Elf64_Word e_version;
00153 Elf64_Addr e_entry;
00154 Elf64_Off e_phoff;
00155 Elf64_Off e_shoff;
00156 Elf64_Word e_flags;
00157 Elf64_Half e_ehsize;
00158 Elf64_Half e_phentsize;
00159 Elf64_Half e_phnum;
00160 Elf64_Half e_shentsize;
00161 Elf64_Half e_shnum;
00162 Elf64_Half e_shstrndx;
00163 } Elf64_Ehdr;
00164
00165
00166
00167
00168
00169 #define EI_MAG0 0
00170 #define ELFMAG0 0x7f
00171
00172 #define EI_MAG1 1
00173 #define ELFMAG1 'E'
00174
00175 #define EI_MAG2 2
00176 #define ELFMAG2 'L'
00177
00178 #define EI_MAG3 3
00179 #define ELFMAG3 'F'
00180
00181
00182 #define ELFMAG "\177ELF"
00183 #define SELFMAG 4
00184
00185 #define IS_ELF(ehdr) ((ehdr).e_ident[EI_MAG0] == ELFMAG0 && \
00186 (ehdr).e_ident[EI_MAG1] == ELFMAG1 && \
00187 (ehdr).e_ident[EI_MAG2] == ELFMAG2 && \
00188 (ehdr).e_ident[EI_MAG3] == ELFMAG3)
00189
00190 #define EI_CLASS 4
00191 #define ELFCLASSNONE 0
00192 #define ELFCLASS32 1
00193 #define ELFCLASS64 2
00194
00195 #define EI_DATA 5
00196 #define ELFDATANONE 0
00197 #define ELFDATA2LSB 1
00198 #define ELFDATA2MSB 2
00199
00200 #define EI_VERSION 6
00201
00202
00203 #define EI_PAD 7
00204
00205
00206
00207 #define ET_NONE 0
00208 #define ET_REL 1
00209 #define ET_EXEC 2
00210 #define ET_DYN 3
00211 #define ET_CORE 4
00212 #define ET_NUM 5
00213 #define ET_LOPROC 0xff00
00214 #define ET_HIPROC 0xffff
00215
00216 #if defined(__MIPS_AND_IA64_ELF_H)
00217 # define ET_IR (ET_LOPROC + 0)
00218 #endif
00219
00220
00221
00222 #define EM_NONE 0
00223 #define EM_M32 1
00224 #define EM_SPARC 2
00225 #define EM_386 3
00226 #define EM_68K 4
00227 #define EM_88K 5
00228 #define EM_486 6
00229 #define EM_860 7
00230 #define EM_MIPS 8
00231 #define EM_S370 9
00232 #define EM_MIPS_RS4_BE 10
00233
00234 #if defined(__MIPS_AND_IA64_ELF_H)
00235
00236 #define EM_XIA64 10
00237
00238
00239 #define EM_IA_64 50
00240 #define EM_EAS2_3 0x0406
00241 #endif
00242
00243 #define EM_SPARC64 11
00244
00245 #define EM_PARISC 15
00246 #define EM_PPC 20
00247
00248
00249
00250
00251
00252 #define EM_ALPHA 0x9026
00253
00254
00255
00256 #define EV_NONE 0
00257 #define EV_CURRENT 1
00258
00259
00260
00261 typedef struct
00262 {
00263 Elf32_Word sh_name;
00264 Elf32_Word sh_type;
00265 Elf32_Word sh_flags;
00266 Elf32_Addr sh_addr;
00267 Elf32_Off sh_offset;
00268 Elf32_Word sh_size;
00269 Elf32_Word sh_link;
00270 Elf32_Word sh_info;
00271 Elf32_Word sh_addralign;
00272 Elf32_Word sh_entsize;
00273 } Elf32_Shdr;
00274
00275 typedef struct
00276 {
00277 Elf64_Word sh_name;
00278 Elf64_Word sh_type;
00279 Elf64_Xword sh_flags;
00280 Elf64_Addr sh_addr;
00281 Elf64_Off sh_offset;
00282 Elf64_Xword sh_size;
00283 Elf64_Word sh_link;
00284 Elf64_Word sh_info;
00285 Elf64_Xword sh_addralign;
00286 Elf64_Xword sh_entsize;
00287 } Elf64_Shdr;
00288
00289
00290
00291 #if defined(__mips)
00292 #define MIPS_LBSS ".lbss"
00293 #endif
00294
00295 #if defined(__MIPS_AND_IA64_ELF_H)
00296
00297 #define ELF_BSS ".bss"
00298 #define ELF_COMMENT ".comment"
00299 #define ELF_DATA ".data"
00300 #define ELF_DATA_PU ".data_pu"
00301 #define ELF_DEBUG ".debug"
00302 #define ELF_DYNAMIC ".dynamic"
00303 #define ELF_DYNSTR ".dynstr"
00304 #define ELF_DYNSYM ".dynsym"
00305 #define ELF_MSYM ".msym"
00306 #define ELF_FINI ".fini"
00307 #define ELF_GOT ".got"
00308 #define ELF_PLT ".plt"
00309 #define ELF_HASH ".hash"
00310 #define ELF_INIT ".init"
00311 #define ELF_REL_DATA ".rel.data"
00312 #define ELF_REL_FINI ".rel.fini"
00313 #define ELF_REL_INIT ".rel.init"
00314 #define ELF_REL_DYN ".rel.dyn"
00315 #define ELF_REL_RODATA ".rel.rodata"
00316 #define ELF_REL_TEXT ".rel.text"
00317 #define ELF_RODATA ".rodata"
00318 #define ELF_RODATA_PU ".rodata_pu"
00319 #define ELF_SHSTRTAB ".shstrtab"
00320 #define ELF_STRTAB ".strtab"
00321 #define ELF_SYMTAB ".symtab"
00322 #define ELF_TEXT ".text"
00323
00324
00325
00326
00327
00328
00329
00330 #define MIPS_LIBLIST ".liblist"
00331 #define MIPS_MSYM ".msym"
00332 #define MIPS_CONFLICT ".conflict"
00333 #define MIPS_SDATA ".sdata"
00334 #define MIPS_SDATA_PU ".sdata_pu"
00335 #define MIPS_REL_SDATA ".rel.sdata"
00336 #define MIPS_SRDATA ".srdata"
00337 #define MIPS_SRDATA_PU ".srdata_pu"
00338 #define MIPS_RDATA ".rdata"
00339 #define MIPS_SBSS ".sbss"
00340 #define MIPS_LIT4 ".lit4"
00341 #define MIPS_LIT8 ".lit8"
00342 #define MIPS_LIT16 ".lit16"
00343 #define MIPS_EVENTS ".MIPS.events"
00344 #define MIPS_INTERFACES ".MIPS.interfaces"
00345 #define MIPS_OPTIONS ".MIPS.options"
00346 #define MIPS_SYMBOL_LIB ".MIPS.symlib"
00347 #define MIPS_DEBUG_INFO ".debug_info"
00348 #define MIPS_DEBUG_LINE ".debug_line"
00349 #define MIPS_DEBUG_ABBREV ".debug_abbrev"
00350 #define MIPS_DEBUG_FRAME ".debug_frame"
00351 #define MIPS_DEBUG_ARANGES ".debug_aranges"
00352 #define MIPS_DEBUG_PUBNAMES ".debug_pubnames"
00353 #define MIPS_DEBUG_STR ".debug_str"
00354 #define MIPS_DEBUG_FUNCNAMES ".debug_funcnames"
00355 #define MIPS_DEBUG_TYPENAMES ".debug_typenames"
00356 #define MIPS_DEBUG_VARNAMES ".debug_varnames"
00357 #define MIPS_DEBUG_WEAKNAMES ".debug_weaknames"
00358 #define MIPS_XLATE ".MIPS.Xlate"
00359 #define MIPS_XLATE_DEBUG ".MIPS.Xlate_debug"
00360 #define MIPS_CONTENT ".MIPS.content"
00361 #define MIPS_WHIRL ".WHIRL"
00362
00363
00364
00365
00366
00367
00368
00369 #define IA64_LIBLIST ".liblist"
00370 #define IA64_MSYM ".msym"
00371 #define IA64_CONFLICT ".conflict"
00372 #define IA64_SDATA ".sdata"
00373 #define IA64_REL_SDATA ".rel.sdata"
00374 #define IA64_SRDATA ".srdata"
00375 #define IA64_RDATA ".rdata"
00376 #define IA64_SBSS ".sbss"
00377 #define IA64_LIT4 ".lit4"
00378 #define IA64_LIT8 ".lit8"
00379 #define IA64_LIT16 ".lit16"
00380 #define IA64_EVENTS ".IA64.events"
00381 #define IA64_INTERFACES ".IA64.interfaces"
00382 #define IA64_OPTIONS ".IA64.options"
00383 #define IA64_SYMBOL_LIB ".IA64.symlib"
00384 #define IA64_DEBUG_INFO ".debug_info"
00385 #define IA64_DEBUG_LINE ".debug_line"
00386 #define IA64_DEBUG_ABBREV ".debug_abbrev"
00387 #define IA64_DEBUG_FRAME ".debug_frame"
00388 #define IA64_DEBUG_ARANGES ".debug_aranges"
00389 #define IA64_DEBUG_PUBNAMES ".debug_pubnames"
00390 #define IA64_DEBUG_STR ".debug_str"
00391 #define IA64_DEBUG_FUNCNAMES ".debug_funcnames"
00392 #define IA64_DEBUG_TYPENAMES ".debug_typenames"
00393 #define IA64_DEBUG_VARNAMES ".debug_varnames"
00394 #define IA64_DEBUG_WEAKNAMES ".debug_weaknames"
00395 #define IA64_XLATE ".IA64.Xlate"
00396 #define IA64_XLATE_DEBUG ".IA64.Xlate_debug"
00397 #define IA64_WHIRL ".IA64.WHIRL"
00398 #define IA64_CONTENT ".IA64.content"
00399
00400
00401 #ifdef __osf__
00402 #define IA64_PACKAGE ".package"
00403 #define IA64_PACKSYM ".packsym"
00404 #endif
00405
00406
00407
00408
00409
00410
00411
00412 #define IA64_ARCHEXT ".IA_64.archext"
00413 #define IA64_PLTOFF ".IA_64.pltoff"
00414 #define IA64_UNWIND ".IA_64.unwind"
00415 #define IA64_UNWIND_INFO ".IA_64.unwind_info"
00416
00417 #define ELF64_FSZ_ADDR 8
00418 #define ELF64_FSZ_HALF 2
00419 #define ELF64_FSZ_OFF 8
00420 #define ELF64_FSZ_SWORD 4
00421 #define ELF64_FSZ_WORD 4
00422 #define ELF64_FSZ_SXWORD 8
00423 #define ELF64_FSZ_XWORD 8
00424
00425 #define ELF32_FSZ_ADDR 4
00426 #define ELF32_FSZ_HALF 2
00427 #define ELF32_FSZ_OFF 4
00428 #define ELF32_FSZ_SWORD 4
00429 #define ELF32_FSZ_WORD 4
00430
00431
00432 typedef enum {
00433 CK_NULL = 0,
00434 CK_DEFAULT = 0x30,
00435 CK_ALIGN = 0x31,
00436 CK_INSTR = 0x32,
00437 CK_DATA = 0x33,
00438 CK_SADDR_32 = 0x34,
00439 CK_GADDR_32 = 0x35,
00440 CK_CADDR_32 = 0x36,
00441 CK_SADDR_64 = 0x37,
00442 CK_GADDR_64 = 0x38,
00443 CK_CADDR_64 = 0x39,
00444 CK_NO_XFORM = 0x3a,
00445 CK_NO_REORDER = 0x3b,
00446 CK_GP_GROUP = 0x3c,
00447
00448
00449 CK_STUBS = 0x3d
00450 } Elf_MIPS_Content_Kind;
00451
00452 typedef struct
00453 {
00454 Elf32_Word hwp_flags1;
00455 Elf32_Word hwp_flags2;
00456 } Elf_Options_Hw;
00457
00458
00459
00460
00461 #define ODK_NULL 0
00462 #define ODK_MIPS_REGINFO 1
00463 #define ODK_REGINFO 1
00464 #define ODK_MIPS_EXCEPTIONS 2
00465 #define ODK_EXCEPTIONS 2
00466 #define ODK_PAD 3
00467 #define ODK_MIPS_HWPATCH 4
00468 #define ODK_HWPATCH 4
00469 #define ODK_FILL 5
00470 #define ODK_TAGS 6
00471 #define ODK_MIPS_HWAND 7
00472 #define ODK_HWAND 7
00473 #define ODK_MIPS_HWOR 8
00474 #define ODK_HWOR 8
00475 #define ODK_GP_GROUP 9
00476 #define ODK_IDENT 10
00477 #define ODK_IA64_REGINFO 11
00478 #define ODK_PAGESIZE 12
00479
00480
00481 #define ODK_IA64_EXCEPTIONS 12
00482 #define ODK_IA64_HWAND 13
00483 #define ODK_IA64_HWOR 14
00484
00485
00486
00487
00488
00489
00490 #define OEX_PAGE0 0x10000
00491 #define OEX_SMM 0x20000
00492 #define OEX_FPDBUG 0x40000
00493 #define OEX_PRECISEFP OEX_FPDBUG
00494 #define OEX_DISMISS 0x80000
00495 #define OEX_FPU_MIN 0x1f
00496 #define OEX_FPU_MAX 0x1f00
00497 #define OEX_FPU_INVAL 0x10
00498 #define OEX_FPU_DIV0 0x08
00499 #define OEX_FPU_OFLO 0x04
00500 #define OEX_FPU_UFLO 0x02
00501 #define OEX_FPU_INEX 0x01
00502
00503
00504
00505
00506
00507
00508 #define OHW_R4KEOP 0x1
00509 #define OHW_R8KPFETCH 0x2
00510 #define OHW_R5KEOP 0x4
00511 #define OHW_R5KCVTL 0x8
00512 #define OHW_R10KLDL 0x10
00513
00514
00515
00516
00517
00518
00519 #define OHWO0_FIXADE 0x00000001
00520
00521
00522
00523
00524
00525
00526 #define OPAD_PREFIX 0x1
00527 #define OPAD_POSTFIX 0x2
00528 #define OPAD_SYMBOL 0x4
00529
00530
00531
00532
00533
00534
00535 #define OGP_GROUP 0x0000ffff
00536 #define OGP_SELF 0x00010000
00537 #endif
00538
00539
00540
00541
00542 #define SHN_UNDEF 0
00543 #define SHN_LORESERVE 0xff00
00544 #define SHN_LOPROC 0xff00
00545 #define SHN_HIPROC 0xff1f
00546 #define SHN_ABS 0xfff1
00547 #define SHN_COMMON 0xfff2
00548 #define SHN_HIRESERVE 0xffff
00549
00550
00551
00552 #define SHT_NULL 0
00553 #define SHT_PROGBITS 1
00554 #define SHT_SYMTAB 2
00555 #define SHT_STRTAB 3
00556 #define SHT_RELA 4
00557 #define SHT_HASH 5
00558 #define SHT_DYNAMIC 6
00559 #define SHT_NOTE 7
00560 #define SHT_NOBITS 8
00561 #define SHT_REL 9
00562 #define SHT_SHLIB 10
00563 #define SHT_DYNSYM 11
00564 #define SHT_NUM 12
00565 #define SHT_LOSUNW 0x6ffffffd
00566 #define SHT_GNU_verdef 0x6ffffffd
00567 #define SHT_GNU_verneed 0x6ffffffe
00568 #define SHT_GNU_versym 0x6fffffff
00569 #define SHT_HISUNW 0x6fffffff
00570 #define SHT_LOPROC 0x70000000
00571 #define SHT_HIPROC 0x7fffffff
00572 #define SHT_LOUSER 0x80000000
00573 #define SHT_HIUSER 0x8fffffff
00574
00575
00576
00577 #define SHF_WRITE (1 << 0)
00578 #define SHF_ALLOC (1 << 1)
00579 #define SHF_EXECINSTR (1 << 2)
00580 #define SHF_MASKPROC 0xf0000000
00581
00582
00583
00584 typedef struct
00585 {
00586 Elf32_Word st_name;
00587 Elf32_Addr st_value;
00588 Elf32_Word st_size;
00589 unsigned char st_info;
00590 unsigned char st_other;
00591 Elf32_Section st_shndx;
00592 } Elf32_Sym;
00593
00594 typedef struct
00595 {
00596 Elf64_Word st_name;
00597 unsigned char st_info;
00598 unsigned char st_other;
00599 Elf64_Section st_shndx;
00600 Elf64_Addr st_value;
00601 Elf64_Xword st_size;
00602 } Elf64_Sym;
00603
00604
00605
00606 #define SHN_UNDEF 0
00607
00608
00609
00610 #define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4)
00611 #define ELF32_ST_TYPE(val) ((val) & 0xf)
00612 #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
00613
00614
00615 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
00616 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
00617 #define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
00618
00619
00620
00621 #define STB_LOCAL 0
00622 #define STB_GLOBAL 1
00623 #define STB_WEAK 2
00624 #define STB_NUM 3
00625 #define STB_LOPROC 13
00626 #define STB_HIPROC 15
00627
00628
00629
00630 #define STT_NOTYPE 0
00631 #define STT_OBJECT 1
00632 #define STT_FUNC 2
00633 #define STT_SECTION 3
00634 #define STT_FILE 4
00635 #define STT_NUM 5
00636 #define STT_LOPROC 13
00637 #define STT_HIPROC 15
00638
00639
00640
00641
00642
00643
00644 #define STN_UNDEF 0
00645
00646
00647
00648
00649 typedef struct
00650 {
00651 Elf32_Addr r_offset;
00652 Elf32_Word r_info;
00653 } Elf32_Rel;
00654
00655 #if defined(__MIPS_AND_IA64_ELF_H)
00656 #if defined(_MIPSEB)
00657 typedef struct
00658 {
00659 Elf64_Addr r_offset;
00660 Elf64_Word r_sym;
00661 Elf64_Byte r_ssym;
00662 Elf64_Byte r_type3;
00663 Elf64_Byte r_type2;
00664 Elf64_Byte r_type;
00665 } Elf64_Rel;
00666
00667 typedef struct {
00668 Elf64_Addr r_offset;
00669 Elf64_Word r_sym;
00670 Elf64_Byte r_ssym;
00671 Elf64_Byte r_type3;
00672 Elf64_Byte r_type2;
00673 Elf64_Byte r_type;
00674 Elf64_Sxword r_addend;
00675 } Elf64_Rela;
00676 #else
00677 typedef struct
00678 {
00679 Elf64_Addr r_offset;
00680 Elf64_Byte r_type;
00681 Elf64_Byte r_type2;
00682 Elf64_Byte r_type3;
00683 Elf64_Byte r_ssym;
00684 Elf64_Word r_sym;
00685 } Elf64_Rel;
00686
00687 typedef struct {
00688 Elf64_Addr r_offset;
00689 Elf64_Byte r_type;
00690 Elf64_Byte r_type2;
00691 Elf64_Byte r_type3;
00692 Elf64_Byte r_ssym;
00693 Elf64_Word r_sym;
00694 Elf64_Sxword r_addend;
00695 } Elf64_Rela;
00696 #endif
00697 typedef struct
00698 {
00699 Elf64_Byte kind;
00700
00701 Elf64_Byte size;
00702 Elf64_Section section;
00703
00704 Elf64_Word info;
00705 } Elf_Options;
00706
00707
00708 typedef enum {
00709 RSS_UNDEF = 0,
00710 RSS_GP = 1,
00711 RSS_GP0 = 2,
00712 RSS_LOC = 3
00713 } Elf64_Rel_Ssym;
00714 #else
00715
00716
00717
00718
00719
00720 typedef struct
00721 {
00722 Elf64_Addr r_offset;
00723 Elf64_Xword r_info;
00724 } Elf64_Rel;
00725
00726 typedef struct
00727 {
00728 Elf64_Addr r_offset;
00729 Elf64_Xword r_info;
00730 Elf64_Sxword r_addend;
00731 } Elf64_Rela;
00732 #endif
00733
00734
00735
00736 typedef struct
00737 {
00738 Elf32_Addr r_offset;
00739 Elf32_Word r_info;
00740 Elf32_Sword r_addend;
00741 } Elf32_Rela;
00742
00743
00744
00745 #define ELF32_R_SYM(val) ((val) >> 8)
00746 #define ELF32_R_TYPE(val) ((val) & 0xff)
00747 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
00748
00749 #define ELF64_R_SYM(i) ((i) >> 32)
00750 #define ELF64_R_TYPE(i) ((i) & 0xffffffff)
00751 #define ELF64_R_INFO(sym,type) (((sym) << 32) + (type))
00752
00753
00754
00755 typedef struct
00756 {
00757 Elf32_Word p_type;
00758 Elf32_Off p_offset;
00759 Elf32_Addr p_vaddr;
00760 Elf32_Addr p_paddr;
00761 Elf32_Word p_filesz;
00762 Elf32_Word p_memsz;
00763 Elf32_Word p_flags;
00764 Elf32_Word p_align;
00765 } Elf32_Phdr;
00766
00767 typedef struct
00768 {
00769 Elf64_Word p_type;
00770 Elf64_Word p_flags;
00771 Elf64_Off p_offset;
00772 Elf64_Addr p_vaddr;
00773 Elf64_Addr p_paddr;
00774 Elf64_Xword p_filesz;
00775 Elf64_Xword p_memsz;
00776 Elf64_Xword p_align;
00777 } Elf64_Phdr;
00778
00779
00780
00781 #define PT_NULL 0
00782 #define PT_LOAD 1
00783 #define PT_DYNAMIC 2
00784 #define PT_INTERP 3
00785 #define PT_NOTE 4
00786 #define PT_SHLIB 5
00787 #define PT_PHDR 6
00788 #define PT_NUM 7
00789 #define PT_LOPROC 0x70000000
00790 #define PT_HIPROC 0x7fffffff
00791
00792
00793
00794 #define PF_X (1 << 0)
00795 #define PF_W (1 << 1)
00796 #define PF_R (1 << 2)
00797 #define PF_MASKPROC 0xf0000000
00798
00799
00800
00801 #define NT_PRSTATUS 1
00802 #define NT_FPREGSET 2
00803 #define NT_PRPSINFO 3
00804
00805
00806
00807 #define NT_VERSION 1
00808
00809
00810
00811
00812 typedef struct
00813 {
00814 Elf32_Sword d_tag;
00815 union
00816 {
00817 Elf32_Word d_val;
00818 Elf32_Addr d_ptr;
00819 } d_un;
00820 } Elf32_Dyn;
00821
00822 typedef struct
00823 {
00824 Elf64_Sxword d_tag;
00825 union
00826 {
00827 Elf64_Xword d_val;
00828 Elf64_Addr d_ptr;
00829 } d_un;
00830 } Elf64_Dyn;
00831
00832
00833
00834 #define DT_NULL 0
00835 #define DT_NEEDED 1
00836 #define DT_PLTRELSZ 2
00837 #define DT_PLTGOT 3
00838 #define DT_HASH 4
00839 #define DT_STRTAB 5
00840 #define DT_SYMTAB 6
00841 #define DT_RELA 7
00842 #define DT_RELASZ 8
00843 #define DT_RELAENT 9
00844 #define DT_STRSZ 10
00845 #define DT_SYMENT 11
00846 #define DT_INIT 12
00847 #define DT_FINI 13
00848 #define DT_SONAME 14
00849 #define DT_RPATH 15
00850 #define DT_SYMBOLIC 16
00851 #define DT_REL 17
00852 #define DT_RELSZ 18
00853 #define DT_RELENT 19
00854 #define DT_PLTREL 20
00855 #define DT_DEBUG 21
00856 #define DT_TEXTREL 22
00857 #define DT_JMPREL 23
00858 #define DT_NUM 24
00859 #define DT_LOPROC 0x70000000
00860 #define DT_HIPROC 0x7fffffff
00861 #define DT_PROCNUM DT_MIPS_NUM
00862
00863
00864
00865 #define DT_VERSYM 0x6ffffff0
00866
00867
00868 #define DT_VERDEF 0x6ffffffc
00869
00870 #define DT_VERDEFNUM 0x6ffffffd
00871 #define DT_VERNEED 0x6ffffffe
00872
00873 #define DT_VERNEEDNUM 0x6fffffff
00874 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
00875 #define DT_VERSIONTAGNUM 16
00876
00877
00878
00879 #define DT_AUXILIARY 0x7ffffffd
00880 #define DT_FILTER 0x7fffffff
00881 #define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
00882 #define DT_EXTRANUM 3
00883
00884
00885
00886 typedef struct
00887 {
00888 Elf32_Half vd_version;
00889 Elf32_Half vd_flags;
00890 Elf32_Half vd_ndx;
00891 Elf32_Half vd_cnt;
00892 Elf32_Word vd_hash;
00893 Elf32_Word vd_aux;
00894 Elf32_Word vd_next;
00895
00896 } Elf32_Verdef;
00897
00898
00899 #define VER_DEF_NONE 0
00900 #define VER_DEF_CURRENT 1
00901 #define VER_DEF_NUM 2
00902
00903
00904 #define VER_FLG_BASE 0x1
00905 #define VER_FLG_WEAK 0x2
00906
00907
00908
00909 typedef struct
00910 {
00911 Elf32_Addr vda_name;
00912 Elf32_Word vda_next;
00913
00914 } Elf32_Verdaux;
00915
00916
00917
00918 typedef struct
00919 {
00920 Elf32_Half vn_version;
00921 Elf32_Half vn_cnt;
00922 Elf32_Addr vn_file;
00923
00924 Elf32_Word vn_aux;
00925 Elf32_Word vn_next;
00926
00927 } Elf32_Verneed;
00928
00929
00930 #define VER_NEED_NONE 0
00931 #define VER_NEED_CURRENT 1
00932 #define VER_NEED_NUM 2
00933
00934
00935
00936 typedef struct
00937 {
00938 Elf32_Word vna_hash;
00939 Elf32_Half vna_flags;
00940 Elf32_Half vna_other;
00941 Elf32_Addr vna_name;
00942 Elf32_Word vna_next;
00943
00944 } Elf32_Vernaux;
00945
00946
00947 #define VER_FLG_WEAK 0x2
00948
00949
00950
00951
00952
00953
00954
00955
00956
00957
00958
00959 typedef struct
00960 {
00961 int a_type;
00962 union
00963 {
00964 long int a_val;
00965 void *a_ptr;
00966 void (*a_fcn) (void);
00967 } a_un;
00968 } Elf32_auxv_t;
00969
00970 typedef struct
00971 {
00972 long int a_type;
00973 union
00974 {
00975 long int a_val;
00976 void *a_ptr;
00977 void (*a_fcn) (void);
00978 } a_un;
00979 } Elf64_auxv_t;
00980
00981
00982
00983 #define AT_NULL 0
00984 #define AT_IGNORE 1
00985 #define AT_EXECFD 2
00986 #define AT_PHDR 3
00987 #define AT_PHENT 4
00988 #define AT_PHNUM 5
00989 #define AT_PAGESZ 6
00990 #define AT_BASE 7
00991 #define AT_FLAGS 8
00992 #define AT_ENTRY 9
00993 #define AT_NOTELF 10
00994 #define AT_UID 11
00995 #define AT_EUID 12
00996 #define AT_GID 13
00997 #define AT_EGID 14
00998
00999
01000
01001
01002
01003 #define R_68K_NONE 0
01004 #define R_68K_32 1
01005 #define R_68K_16 2
01006 #define R_68K_8 3
01007 #define R_68K_PC32 4
01008 #define R_68K_PC16 5
01009 #define R_68K_PC8 6
01010 #define R_68K_GOT32 7
01011 #define R_68K_GOT16 8
01012 #define R_68K_GOT8 9
01013 #define R_68K_GOT32O 10
01014 #define R_68K_GOT16O 11
01015 #define R_68K_GOT8O 12
01016 #define R_68K_PLT32 13
01017 #define R_68K_PLT16 14
01018 #define R_68K_PLT8 15
01019 #define R_68K_PLT32O 16
01020 #define R_68K_PLT16O 17
01021 #define R_68K_PLT8O 18
01022 #define R_68K_COPY 19
01023 #define R_68K_GLOB_DAT 20
01024 #define R_68K_JMP_SLOT 21
01025 #define R_68K_RELATIVE 22
01026 #define R_68K_NUM 23
01027
01028
01029
01030
01031
01032 #define R_386_NONE 0
01033 #define R_386_32 1
01034 #define R_386_PC32 2
01035 #define R_386_GOT32 3
01036 #define R_386_PLT32 4
01037 #define R_386_COPY 5
01038 #define R_386_GLOB_DAT 6
01039 #define R_386_JMP_SLOT 7
01040 #define R_386_RELATIVE 8
01041 #define R_386_GOTOFF 9
01042 #define R_386_GOTPC 10
01043 #define R_386_NUM 11
01044
01045
01046 enum {
01047
01048
01049
01050
01051
01052
01053 R_IA_64_NONE = 0x00,
01054
01055
01056
01057 R_IA_64_IMM14 = 0x21,
01058 R_IA_64_IMM22 = 0x22,
01059 R_IA_64_IMM64 = 0x23,
01060 R_IA_64_DIR32MSB = 0x24,
01061 R_IA_64_DIR32LSB = 0x25,
01062 R_IA_64_DIR64MSB = 0x26,
01063 R_IA_64_DIR64LSB = 0x27,
01064
01065
01066
01067 R_IA_64_GPREL22 = 0x2a,
01068 R_IA_64_GPREL64I = 0x2b,
01069
01070
01071
01072 R_IA_64_GPREL64MSB = 0x2e,
01073 R_IA_64_GPREL64LSB = 0x2f,
01074
01075
01076
01077 R_IA_64_LTOFF22 = 0x32,
01078 R_IA_64_LTOFF64I = 0x33,
01079
01080
01081
01082 R_IA_64_PLTOFF22 = 0x3a,
01083 R_IA_64_PLTOFF64I = 0x3b,
01084
01085
01086
01087 R_IA_64_PLTOFF64MSB = 0x3e,
01088 R_IA_64_PLTOFF64LSB = 0x3f,
01089
01090
01091
01092 R_IA_64_FPTR64I = 0x43,
01093 R_IA_64_FPTR32MSB = 0x44,
01094 R_IA_64_FPTR32LSB = 0x45,
01095 R_IA_64_FPTR64MSB = 0x46,
01096 R_IA_64_FPTR64LSB = 0x47,
01097
01098
01099
01100 R_IA_64_PCREL21B = 0x49,
01101 R_IA_64_PCREL21M = 0x4a,
01102 R_IA_64_PCREL21F = 0x4b,
01103 R_IA_64_PCREL32MSB = 0x4c,
01104 R_IA_64_PCREL32LSB = 0x4d,
01105 R_IA_64_PCREL64MSB = 0x4e,
01106 R_IA_64_PCREL64LSB = 0x4f,
01107
01108
01109
01110 R_IA_64_LTOFF_FPTR22 = 0x52,
01111 R_IA_64_LTOFF_FPTR64I= 0x53,
01112
01113
01114
01115 R_IA_64_SEGREL32MSB = 0x5c,
01116 R_IA_64_SEGREL32LSB = 0x5d,
01117 R_IA_64_SEGREL64MSB = 0x5e,
01118 R_IA_64_SEGREL64LSB = 0x5f,
01119
01120
01121
01122 R_IA_64_SECREL32MSB = 0x64,
01123 R_IA_64_SECREL32LSB = 0x65,
01124 R_IA_64_SECREL64MSB = 0x66,
01125 R_IA_64_SECREL64LSB = 0x67,
01126
01127
01128
01129 R_IA_64_REL32MSB = 0x6c,
01130 R_IA_64_REL32LSB = 0x6d,
01131 R_IA_64_REL64MSB = 0x6e,
01132 R_IA_64_REL64LSB = 0x6f,
01133 R_IA_64_LTV32MSB = 0x70,
01134 R_IA_64_LTV32LSB = 0x71,
01135 R_IA_64_LTV64MSB = 0x72,
01136 R_IA_64_LTV64LSB = 0x73,
01137
01138
01139
01140 R_IA_64_IPLTMSB = 0x80,
01141 R_IA_64_IPLTLSB = 0x81,
01142
01143
01144
01145 R_IA_64_END_ = 0x82
01146
01147
01148 };
01149
01150
01151
01152
01153
01154 #define R_SPARC_NONE 0
01155 #define R_SPARC_8 1
01156 #define R_SPARC_16 2
01157 #define R_SPARC_32 3
01158 #define R_SPARC_DISP8 4
01159 #define R_SPARC_DISP16 5
01160 #define R_SPARC_DISP32 6
01161 #define R_SPARC_WDISP30 7
01162 #define R_SPARC_WDISP22 8
01163 #define R_SPARC_HI22 9
01164 #define R_SPARC_22 10
01165 #define R_SPARC_13 11
01166 #define R_SPARC_LO10 12
01167 #define R_SPARC_GOT10 13
01168 #define R_SPARC_GOT13 14
01169 #define R_SPARC_GOT22 15
01170 #define R_SPARC_PC10 16
01171 #define R_SPARC_PC22 17
01172 #define R_SPARC_WPLT30 18
01173 #define R_SPARC_COPY 19
01174 #define R_SPARC_GLOB_DAT 20
01175 #define R_SPARC_JMP_SLOT 21
01176 #define R_SPARC_RELATIVE 22
01177 #define R_SPARC_UA32 23
01178 #define R_SPARC_NUM 24
01179
01180
01181
01182
01183
01184 #define EF_MIPS_NOREORDER 1
01185 #define EF_MIPS_PIC 2
01186 #define EF_MIPS_CPIC 4
01187 #define EF_MIPS_ARCH 0xf0000000
01188
01189 #if defined(__MIPS_AND_IA64_ELF_H)
01190
01191
01192
01193
01194 #define EI_TVERSION 15
01195 #define EV_T_CURRENT 1
01196
01197 #define EF_IRIX_ABI64 0x00000010
01198
01199
01200
01201
01202
01203
01204
01205
01206
01207
01208
01209
01210
01211
01212 #define EF_MIPS_OPSEX EF_MIPS_NOREORDER
01213 #define EF_MIPS_XGOT 0x00000008
01214 #define EF_MIPS_OPTIONS_FIRST 0x00000080
01215
01216 #define EF_MIPS_UGEN_ALLOC EF_MIPS_XGOT
01217 #define EF_MIPS_UGEN_RESERVED EF_MIPS_64BIT_WHIRL
01218
01219 #define EF_MIPS_ABI64 EF_IRIX_ABI64
01220
01221
01222 #define EF_MIPS_64BIT_WHIRL EF_MIPS_ABI64
01223
01224
01225 #define EF_MIPS_ABI2 0x00000020
01226
01227
01228
01229
01230
01231
01232
01233 #define EF_MIPS_ARCH 0xf0000000
01234 #define EF_MIPS_ARCH_1 0x00000000
01235 #define EF_MIPS_ARCH_2 0x10000000
01236 #define EF_MIPS_ARCH_3 0x20000000
01237 #define EF_MIPS_ARCH_4 0x30000000
01238 #define EF_MIPS_ARCH_5 0x40000000
01239 #define EF_MIPS_ARCH_6 0x50000000
01240
01241
01242
01243
01244
01245
01246
01247 #define EF_MIPS_ARCH_ASE 0x0f000000
01248 #define EF_MIPS_ARCH_ASE_MDMX 0x08000000
01249 #define EF_MIPS_ARCH_ASE_M16 0x04000000
01250
01251
01252
01253
01254
01255
01256
01257
01258
01259
01260
01261
01262
01263
01264
01265
01266
01267 #define EF_IA64_PIC 0x00000002
01268
01269
01270
01271
01272 #define EF_IA64_CPIC 0x00000004
01273
01274
01275
01276
01277
01278 #define EF_IA64_ARCH 0xff000000
01279
01280
01281
01282
01283
01284 #define EF_IA64_ABI64 EF_IRIX_ABI64
01285
01286
01287
01288
01289
01290
01291
01292
01293
01294 #define _TEXT_ALIGN 0x10000
01295 #define _DATA_ALIGN 0x10000
01296 #define ELF_IRIX_MAXPGSZ (64*1024)
01297 #define ELF_IRIX_MINPGSZ (0x1000)
01298
01299 #define ELF_IA64_MAXPGSZ ELF_IRIX_MAXPGSZ
01300 #define ELF_IA64_MINPGSZ ELF_IRIX_MINPGSZ
01301
01302 #define ELF_MIPS_MAXPGSZ ELF_IRIX_MAXPGSZ
01303 #define ELF_MIPS_MINPGSZ ELF_IRIX_MINPGSZ
01304
01305 typedef struct
01306 {
01307 Elf64_Word l_name;
01308 Elf64_Word l_time_stamp;
01309 Elf64_Word l_checksum;
01310 Elf64_Word l_version;
01311 Elf64_Word l_flags;
01312 } Elf64_Lib;
01313 #endif
01314
01315
01316
01317 #define E_MIPS_ARCH_1 0x00000000
01318 #define E_MIPS_ARCH_2 0x10000000
01319 #define E_MIPS_ARCH_3 0x20000000
01320
01321
01322
01323
01324
01325 #define PF_MIPS_LOCAL 0x10000000
01326
01327
01328
01329 #define SHN_MIPS_ACOMMON 0xff00
01330 #define SHN_MIPS_TEXT 0xff01
01331 #define SHN_MIPS_DATA 0xff02
01332 #define SHN_MIPS_SCOMMON 0xff03
01333 #define SHN_MIPS_SUNDEFINED 0xff04
01334
01335
01336
01337 #define SHT_MIPS_LIBLIST 0x70000000
01338 #define SHT_MIPS_CONFLICT 0x70000002
01339 #define SHT_MIPS_GPTAB 0x70000003
01340 #define SHT_MIPS_UCODE 0x70000004
01341 #define SHT_MIPS_DEBUG 0x70000005
01342 #define SHT_MIPS_REGINFO 0x70000006
01343 #define SHT_MIPS_OPTIONS 0x7000000d
01344 #define SHT_MIPS_DWARF 0x7000001e
01345 #define SHT_MIPS_EVENTS 0x70000021
01346 #define SHT_MIPS_XLATE 0x70000024
01347 #define SHT_MIPS_XLATE_DEBUG 0x70000025
01348 #define SHT_MIPS_WHIRL 0x70000026
01349 #define SHT_MIPS_XLATE_OLD 0x70000028
01350
01351
01352
01353 #define SHF_MIPS_GPREL 0x10000000
01354
01355 #if defined(__MIPS_AND_IA64_ELF_H)
01356 #define SHT_IRIX_LIBLIST (SHT_LOPROC + 0)
01357 #define SHT_IRIX_MSYM (SHT_LOPROC + 1)
01358 #define SHT_IRIX_CONFLICT (SHT_LOPROC + 2)
01359 #define SHT_IRIX_GPTAB (SHT_LOPROC + 3)
01360 #define SHT_IRIX_UCODE (SHT_LOPROC + 4)
01361 #define SHT_IRIX_DEBUG (SHT_LOPROC + 5)
01362 #define SHT_IRIX_REGINFO (SHT_LOPROC + 6)
01363
01364 #ifdef __osf__
01365 #define SHT_IRIX_PACKAGE (SHT_LOPROC + 7)
01366 #define SHT_IRIX_PACKSYM (SHT_LOPROC + 8)
01367 #endif
01368
01369 #define SHT_IRIX_RELD (SHT_LOPROC + 9)
01370 #define SHT_IRIX_DONTUSE (SHT_LOPROC + 10)
01371
01372 #define SHT_IRIX_IFACE (SHT_LOPROC + 11)
01373 #define SHT_IRIX_CONTENT (SHT_LOPROC + 12)
01374 #define SHT_IRIX_OPTIONS (SHT_LOPROC + 13)
01375
01376 #define SHT_IRIX_SHDR (SHT_LOPROC + 16)
01377 #define SHT_IRIX_FDESC (SHT_LOPROC + 17)
01378 #define SHT_IRIX_EXTSYM (SHT_LOPROC + 18)
01379 #define SHT_IRIX_DENSE (SHT_LOPROC + 19)
01380 #define SHT_IRIX_PDESC (SHT_LOPROC + 20)
01381 #define SHT_IRIX_LOCSYM (SHT_LOPROC + 21)
01382 #define SHT_IRIX_AUXSYM (SHT_LOPROC + 22)
01383 #define SHT_IRIX_OPTSYM (SHT_LOPROC + 23)
01384 #define SHT_IRIX_LOCSTR (SHT_LOPROC + 24)
01385 #define SHT_IRIX_LINE (SHT_LOPROC + 25)
01386 #define SHT_IRIX_RFDESC (SHT_LOPROC + 26)
01387
01388 #define SHT_IRIX_DELTASYM (SHT_LOPROC + 27)
01389 #define SHT_IRIX_DELTAINST (SHT_LOPROC + 28)
01390 #define SHT_IRIX_DELTACLASS (SHT_LOPROC + 29)
01391
01392 #define SHT_IRIX_DWARF (SHT_LOPROC + 30)
01393 #define SHT_IRIX_DELTADECL (SHT_LOPROC + 31)
01394 #define SHT_IRIX_SYMBOL_LIB (SHT_LOPROC + 32)
01395 #define SHT_IRIX_EVENTS (SHT_LOPROC + 33)
01396 #define SHT_IRIX_TRANSLATE (SHT_LOPROC + 34)
01397 #define SHT_IRIX_PIXIE (SHT_LOPROC + 35)
01398 #define SHT_IRIX_XLATE (SHT_LOPROC + 36)
01399 #define SHT_IRIX_XLATE_DEBUG (SHT_LOPROC + 37)
01400 #define SHT_IRIX_WHIRL (SHT_LOPROC + 38)
01401 #define SHT_IRIX_EH_REGION (SHT_LOPROC + 39)
01402 #define SHT_IRIX_XLATE_OLD (SHT_LOPROC + 40)
01403 #define SHT_IRIX_PDR_EXCEPTION (SHT_LOPROC + 41)
01404
01405
01406 #define SHT_IRIX_EXT (SHT_LOPROC + 42)
01407 #define SHT_IRIX_UNWIND (SHT_LOPROC + 43)
01408 #define SHT_IRIX_UNWIND_INFO (SHT_LOPROC + 44)
01409 #define SHT_IRIX_PLT (SHT_LOPROC + 45)
01410 #define SHT_IRIX_PLTOFF (SHT_LOPROC + 46)
01411 #define SHT_IA64_UNWIND SHT_IRIX_UNWIND
01412 #define SHT_IA64_UNWIND_INFO SHT_IRIX_UNWIND_INFO
01413 #define SHT_IA64_OPTIONS SHT_IRIX_OPTIONS
01414
01415
01416 #define SHT_IRIX_NUM 47
01417
01418
01419
01420
01421 #define SHT_MIPS_MSYM SHT_IRIX_MSYM
01422 #define SHT_MIPS_CONTENT SHT_IRIX_CONTENT
01423
01424 #define SHT_MIPS_DELTADECL SHT_IRIX_DELTADECL
01425 #define SHT_MIPS_SYMBOL_LIB SHT_IRIX_SYMBOL_LIB
01426 #define SHT_MIPS_TRANSLATE SHT_IRIX_TRANSLATE
01427 #define SHT_MIPS_PIXIE SHT_IRIX_PIXIE
01428 #define SHT_MIPS_EH_REGION SHT_IRIX_EH_REGION
01429 #define SHT_MIPS_PDR_EXCEPTION SHT_IRIX_PDR_EXCEPTION
01430
01431 #define SHT_MIPS_SHDR SHT_IRIX_SHDR
01432 #define SHT_MIPS_FDESC SHT_IRIX_FDESC
01433 #define SHT_MIPS_EXTSYM SHT_IRIX_EXTSYM
01434 #define SHT_MIPS_DENSE SHT_IRIX_DENSE
01435 #define SHT_MIPS_PDESC SHT_IRIX_PDESC
01436 #define SHT_MIPS_LOCSYM SHT_IRIX_LOCSYM
01437 #define SHT_MIPS_AUXSYM SHT_IRIX_AUXSYM
01438 #define SHT_MIPS_OPTSYM SHT_IRIX_OPTSYM
01439 #define SHT_MIPS_LOCSTR SHT_IRIX_LOCSTR
01440 #define SHT_MIPS_LINE SHT_IRIX_LINE
01441 #define SHT_MIPS_RFDESC SHT_IRIX_RFDESC
01442
01443 #define SHT_MIPS_DONTUSE SHT_IRIX_DONTUSE
01444
01445
01446
01447
01448
01449
01450
01451
01452 #define SHF_IRIX_GPREL 0x10000000
01453 #define SHF_IRIX_MERGE 0x20000000
01454 #define SHF_IRIX_ADDR 0x40000000
01455 #define SHF_IRIX_STRINGS 0x80000000
01456 #define SHF_IRIX_NOSTRIP 0x08000000
01457 #define SHF_IRIX_LOCAL 0x04000000
01458 #define SHF_IRIX_NAMES 0x02000000
01459 #define SHF_IRIX_NODUPE 0x01000000
01460
01461 #define SHF_MIPS_MERGE SHF_IRIX_MERGE
01462 #define SHF_MIPS_ADDR SHF_IRIX_ADDR
01463 #define SHF_MIPS_STRINGS SHF_IRIX_STRINGS
01464 #define SHF_MIPS_NOSTRIP SHF_IRIX_NOSTRIP
01465 #define SHF_MIPS_LOCAL SHF_IRIX_LOCAL
01466 #define SHF_MIPS_NAMES SHF_IRIX_NAMES
01467 #define SHF_MIPS_NODUPE SHF_IRIX_NODUPE
01468
01469 #define SHT_MIPS_IFACE SHT_IRIX_IFACE
01470
01471
01472
01473
01474
01475
01476
01477
01478
01479
01480
01481 #define STO_DEFAULT 0x0
01482 #define STO_INTERNAL 0x1
01483 #define STO_HIDDEN 0x2
01484 #define STO_PROTECTED 0x3
01485 #define STO_OPTIONAL 0x4
01486 #define STO_SC_ALIGN_UNUSED 0xff
01487
01488
01489
01490
01491 #define STB_SPLIT_COMMON (STB_LOPROC+0)
01492
01493
01494
01495
01496
01497
01498
01499
01500
01501
01502
01503
01504 #define SHN_IRIX_ACOMMON (SHN_LOPROC + 0)
01505 #define SHN_IRIX_TEXT (SHN_LOPROC + 1)
01506 #define SHN_IRIX_DATA (SHN_LOPROC + 2)
01507 #define SHN_IRIX_SCOMMON (SHN_LOPROC + 3)
01508 #define SHN_IRIX_SUNDEFINED (SHN_LOPROC + 4)
01509 #define SHN_IRIX_LCOMMON (SHN_LOPROC + 5)
01510 #define SHN_IRIX_LUNDEFINED (SHN_LOPROC + 6)
01511
01512
01513
01514
01515
01516 #define SHN_MIPS_LCOMMON SHN_IRIX_LCOMMON
01517 #define SHN_MIPS_LUNDEFINED SHN_IRIX_LUNDEFINED
01518
01519
01520
01521 typedef enum {
01522 EK_NULL = 0x00,
01523 EK_ADDR_RESET = 0x01,
01524 EK_INCR_LOC_EXT = 0x02,
01525 EK_ENTRY = 0x03,
01526 EK_IF_ENTRY = 0x04,
01527 EK_EXIT = 0x05,
01528 EK_PEND = 0x06,
01529
01530 EK_SWITCH_32 = 0x7,
01531 EK_SWITCH_64 = 0x8,
01532 EK_DUMMY = 0x09,
01533
01534 EK_BB_START = 0x0a,
01535 EK_INCR_LOC_UNALIGNED = 0x0b,
01536 EK_GP_PROLOG_HI = 0x0c,
01537 EK_GP_PROLOG_LO = 0x0d,
01538 EK_GOT_PAGE = 0x0e,
01539 EK_GOT_OFST = 0x0f,
01540 EK_HI = 0x10,
01541 EK_LO = 0x11,
01542 EK_64_HIGHEST = 0x12,
01543
01544 EK_64_HIGHER = 0x13,
01545
01546 EK_64_HIGH = 0x14,
01547
01548 EK_64_LOW = 0x15,
01549
01550 EK_GPREL = 0x16,
01551
01552 EK_DEF = 0x17,
01553
01554 EK_FCALL_LOCAL = 0x18,
01555 EK_FCALL_EXTERN = 0x19,
01556 EK_FCALL_EXTERN_BIG = 0x1a,
01557 EK_FCALL_MULT = 0x1b,
01558 EK_FCALL_MULT_PARTIAL = 0x1c,
01559
01560 EK_LTR_FCALL = 0x1d,
01561
01562 EK_PCREL_GOT0 = 0x1e,
01563
01564
01565
01566
01567 EK_MEM_COPY_LOAD = 0x1f,
01568 EK_MEM_COPY_STORE = 0x20,
01569
01570
01571 EK_MEM_PARTIAL_LOAD = 0x21,
01572
01573
01574 EK_MEM_EAGER_LOAD = 0x22,
01575 EK_MEM_VALID_LOAD = 0x23,
01576
01577
01578
01579
01580
01581 EK_CK_UNUSED_NONE_0 = 0x50,
01582 EK_CK_UNUSED_NONE_1 = 0x51,
01583 EK_CK_UNUSED_NONE_2 = 0x52,
01584 EK_CK_UNUSED_NONE_3 = 0x53,
01585 EK_CK_UNUSED_NONE_4 = 0x54,
01586
01587
01588
01589
01590 EK_CK_UNUSED_16BIT_0 = 0x55,
01591 EK_CK_UNUSED_16BIT_1 = 0x56,
01592 EK_CK_UNUSED_16BIT_2 = 0x57,
01593 EK_CK_UNUSED_16BIT_3 = 0x58,
01594 EK_CK_UNUSED_16BIT_4 = 0x59,
01595
01596
01597
01598
01599 EK_CK_UNUSED_32BIT_0 = 0x5a,
01600 EK_CK_UNUSED_32BIT_1 = 0x5b,
01601 EK_CK_UNUSED_32BIT_2 = 0x5c,
01602
01603
01604
01605
01606
01607 EK_CK_UNUSED_64BIT_0 = 0x5d,
01608 EK_CK_UNUSED_64BIT_1 = 0x5e,
01609 EK_CK_UNUSED_64BIT_2 = 0x5f,
01610 EK_CK_UNUSED_64BIT_3 = 0x60,
01611 EK_CK_UNUSED_64BIT_4 = 0x61,
01612
01613
01614
01615
01616 EK_CK_UNUSED_ULEB128_0 = 0x62,
01617 EK_CK_UNUSED_ULEB128_1 = 0x63,
01618 EK_CK_UNUSED_ULEB128_2 = 0x64,
01619 EK_CK_UNUSED_ULEB128_3 = 0x65,
01620 EK_CK_UNUSED_ULEB128_4 = 0x66,
01621 EK_CK_UNUSED_ULEB128_5 = 0x67,
01622 EK_CK_UNUSED_ULEB128_6 = 0x68,
01623 EK_CK_UNUSED_ULEB128_7 = 0x69,
01624 EK_CK_UNUSED_ULEB128_8 = 0x6a,
01625 EK_CK_UNUSED_ULEB128_9 = 0x6b,
01626
01627
01628 EK_INCR_LOC = 0x80
01629
01630 } Elf_MIPS_Event_Kind;
01631 typedef Elf_MIPS_Event_Kind Elf_Event_Kind;
01632
01633
01634
01635
01636 #define EK_DEF_UCHAR (1)
01637 #define EK_DEF_USHORT (2)
01638 #define EK_DEF_UINT (3)
01639 #define EK_DEF_ULONG (4)
01640 #define EK_DEF_ULEB128 (5)
01641 #define EK_DEF_CHAR (6)
01642 #define EK_DEF_SHORT (7)
01643 #define EK_DEF_INT (8)
01644 #define EK_DEF_LONG (9)
01645 #define EK_DEF_LEB128 (10)
01646 #define EK_DEF_STRING (11)
01647 #define EK_DEF_VAR (12)
01648
01649
01650
01651
01652 #define CK_DEF EK_DEF
01653
01654 #define R_MIPS_GPREL 7
01655
01656 typedef struct {
01657 Elf64_Word symbol;
01658 Elf64_Half attrs;
01659 Elf64_Byte pcnt;
01660 Elf64_Byte fpmask;
01661 } Elf_Ifd;
01662
01663 typedef Elf_Ifd Elf_Interface_Descriptor;
01664
01665
01666 #define SA_PROTOTYPED 0x8000
01667 #define SA_VARARGS 0x4000
01668 #define SA_PIC 0x2000
01669 #define SA_DSO_ENTRY 0x1000
01670 #define SA_ADDRESSED 0x0800
01671 #define SA_FUNCTION 0x0400
01672 #define SA_NESTED 0x0200
01673 #define SA_IGNORE_ERROR 0x0100
01674 #define SA_DEFINITION 0x0080
01675 #define SA_AT_FREE 0x0040
01676 #define SA_FREE_REGS 0x0020
01677 #define SA_PARAMETERS 0x0010
01678 #define SA_ALTINTERFACE 0x0008
01679
01680
01681 #define FT_unknown 0x0000
01682 #define FT_signed_char 0x0001
01683 #define FT_unsigned_char 0x0002
01684 #define FT_signed_short 0x0003
01685 #define FT_unsigned_short 0x0004
01686 #define FT_signed_int32 0x0005
01687 #define FT_unsigned_int32 0x0006
01688 #define FT_signed_int64 0x0007
01689 #define FT_unsigned_int64 0x0008
01690 #define FT_pointer32 0x0009
01691 #define FT_pointer64 0x000a
01692 #define FT_float32 0x000b
01693 #define FT_float64 0x000c
01694 #define FT_float128 0x000d
01695 #define FT_complex64 0x000e
01696 #define FT_complex128 0x000f
01697 #define FT_complex256 0x0010
01698 #define FT_void 0x0011
01699 #define FT_bool32 0x0012
01700 #define FT_bool64 0x0013
01701 #define FT_label32 0x0014
01702 #define FT_label64 0x0015
01703 #define FT_struct 0x0020
01704 #define FT_union 0x0021
01705 #define FT_enum 0x0022
01706 #define FT_typedef 0x0023
01707 #define FT_set 0x0024
01708 #define FT_range 0x0025
01709 #define FT_member_ptr 0x0026
01710 #define FT_virtual_ptr 0x0027
01711 #define FT_class 0x0028
01712
01713
01714 #define MOD_pointer_to 0x01
01715 #define MOD_reference_to 0x02
01716 #define MOD_const 0x03
01717 #define MOD_volatile 0x04
01718 #define MOD_function 0x80
01719 #define MOD_array_of 0x81
01720
01721
01722 #define PDM_TYPE 0x00ff
01723 #define PDM_REFERENCE 0x4000
01724 #define PDM_SIZE 0x2000
01725 #define PDM_Qualifiers 0x0f00
01726
01727
01728 #define PDMF_REFERENCE 0x40
01729 #define PDMF_SIZE 0x20
01730 #define PDMF_Qualifiers 0x0f
01731 #endif
01732
01733
01734
01735 typedef union
01736 {
01737 struct
01738 {
01739 Elf32_Word gt_current_g_value;
01740 Elf32_Word gt_unused;
01741 } gt_header;
01742 struct
01743 {
01744 Elf32_Word gt_g_value;
01745 Elf32_Word gt_bytes;
01746 } gt_entry;
01747 } Elf32_gptab;
01748
01749
01750
01751 typedef struct
01752 {
01753 Elf32_Word ri_gprmask;
01754 Elf32_Word ri_cprmask[4];
01755 Elf32_Sword ri_gp_value;
01756 } Elf32_RegInfo;
01757
01758 typedef struct
01759 {
01760 Elf64_Word ri_gprmask;
01761 Elf64_Word ri_pad;
01762 Elf64_Word ri_cprmask[4];
01763 Elf64_Addr ri_gp_value;
01764 } Elf64_RegInfo;
01765
01766
01767
01768 #define R_MIPS_NONE 0
01769 #define R_MIPS_16 1
01770 #define R_MIPS_32 2
01771 #define R_MIPS_REL32 3
01772 #define R_MIPS_26 4
01773 #define R_MIPS_HI16 5
01774 #define R_MIPS_LO16 6
01775 #define R_MIPS_GPREL16 7
01776 #define R_MIPS_LITERAL 8
01777 #define R_MIPS_GOT16 9
01778 #define R_MIPS_PC16 10
01779 #define R_MIPS_CALL16 11
01780 #define R_MIPS_GPREL32 12
01781 #define R_MIPS_NUM 13
01782 #define R_MIPS_SHIFT5 16
01783 #define R_MIPS_SHIFT6 17
01784 #define R_MIPS_64 18
01785 #define R_MIPS_GOT_DISP 19
01786 #define R_MIPS_GOT_PAGE 20
01787 #define R_MIPS_GOT_OFST 21
01788 #define R_MIPS_GOT_HI16 22
01789 #define R_MIPS_GOT_LO16 23
01790 #define R_MIPS_SUB 24
01791 #define R_MIPS_INSERT_A 25
01792 #define R_MIPS_INSERT_B 26
01793 #define R_MIPS_DELETE 27
01794 #define R_MIPS_HIGHER 28
01795 #define R_MIPS_HIGHEST 29
01796 #define R_MIPS_CALL_HI16 30
01797 #define R_MIPS_CALL_LO16 31
01798 #define R_MIPS_SCN_DISP 32
01799 #define R_MIPS_REL16 33
01800 #define R_MIPS_ADD_IMMEDIATE 34
01801 #define R_MIPS_PJUMP 35
01802 #define R_MIPS_RELGOT 36
01803 #define R_MIPS_JALR 37
01804
01805
01806 #define _R_MIPS_COUNT_ 38
01807
01808
01809
01810
01811
01812
01813
01814
01815 #define PT_MIPS_REGINFO 0x70000000
01816
01817
01818
01819
01820
01821 #define PT_IA64_ARCHEXT (PT_LOPROC + 0)
01822
01823
01824
01825 #define PT_IA64_UNWIND (PT_LOPROC + 1)
01826
01827
01828
01829
01830
01831
01832 #define PT_IA64_OPTIONS (PT_LOPROC + 2)
01833
01834
01835
01836
01837
01838
01839
01840
01841
01842
01843 #define PF_IA64_NORECOV 0x80000000
01844
01845
01846
01847
01848
01849
01850
01851
01852
01853
01854
01855
01856
01857
01858
01859
01860
01861
01862
01863
01864 #define DT_MIPS_RLD_VERSION 0x70000001
01865 #define DT_MIPS_TIME_STAMP 0x70000002
01866 #define DT_MIPS_ICHECKSUM 0x70000003
01867 #define DT_MIPS_IVERSION 0x70000004
01868 #define DT_MIPS_FLAGS 0x70000005
01869 #define DT_MIPS_BASE_ADDRESS 0x70000006
01870 #define DT_MIPS_MSYM 0x70000007
01871 #define DT_MIPS_CONFLICT 0x70000008
01872 #define DT_MIPS_LIBLIST 0x70000009
01873 #define DT_MIPS_LOCAL_GOTNO 0x7000000a
01874 #define DT_MIPS_CONFLICTNO 0x7000000b
01875 #define DT_MIPS_LIBLISTNO 0x70000010
01876 #define DT_MIPS_SYMTABNO 0x70000011
01877 #define DT_MIPS_UNREFEXTNO 0x70000012
01878 #define DT_MIPS_GOTSYM 0x70000013
01879 #define DT_MIPS_HIPAGENO 0x70000014
01880 #define DT_MIPS_RLD_MAP 0x70000016
01881 #define DT_MIPS_NUM 0x17
01882
01883
01884
01885 #define RHF_NONE 0
01886 #define RHF_QUICKSTART (1 << 0)
01887 #define RHF_NOTPOT (1 << 1)
01888 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
01889
01890
01891
01892 typedef struct
01893 {
01894 Elf32_Word l_name;
01895 Elf32_Word l_time_stamp;
01896 Elf32_Word l_checksum;
01897 Elf32_Word l_version;
01898 Elf32_Word l_flags;
01899 } Elf32_Lib;
01900
01901
01902
01903 #define LL_EXACT_MATCH (1 << 0)
01904 #define LL_IGNORE_INT_VER (1 << 1)
01905
01906 #if defined(__MIPS_AND_IA64_ELF_H)
01907
01908
01909
01910
01911
01912
01913
01914
01915
01916
01917
01918
01919
01920
01921
01922
01923
01924
01925
01926
01927
01928
01929
01930
01931
01932
01933
01934
01935
01936
01937
01938
01939
01940
01941
01942
01943
01944
01945
01946
01947
01948 #define LL_NONE 0
01949 #define LL_REQUIRE_MINOR 0x4
01950 #define LL_EXPORTS 0x8
01951 #define LL_DELAY_LOAD 0x10
01952
01953 #define LL_DELTA 0x20
01954
01955
01956
01957
01958
01959
01960
01961
01962
01963
01964
01965
01966
01967
01968
01969
01970
01971
01972
01973 #define RHF_NO_MOVE 0x00000008
01974
01975
01976
01977
01978
01979
01980 #define RHF_SGI_ONLY 0x00000010
01981
01982
01983
01984
01985
01986
01987 #define RHF_GUARANTEE_INIT 0x00000020
01988
01989
01990
01991
01992
01993
01994
01995
01996
01997
01998
01999 #define RHF_DELTA_C_PLUS_PLUS 0x00000040
02000
02001
02002
02003 #define RHF_GUARANTEE_START_INIT 0x00000080
02004
02005
02006
02007
02008
02009
02010
02011
02012
02013
02014
02015
02016
02017
02018 #define RHF_PIXIE 0x00000100
02019
02020
02021
02022
02023
02024
02025
02026
02027 #define RHF_DEFAULT_DELAY_LOAD 0x00000200
02028
02029
02030
02031
02032
02033
02034
02035 #define RHF_REQUICKSTART 0x00000400
02036
02037
02038
02039
02040
02041
02042
02043
02044
02045 #define RHF_REQUICKSTARTED 0x00000800
02046
02047
02048
02049
02050 #define RHF_CORD 0x00001000
02051
02052
02053
02054
02055 #define RHF_NO_UNRES_UNDEF 0x00002000
02056
02057
02058
02059
02060
02061 #define RHF_RLD_ORDER_SAFE 0x00004000
02062
02063
02064
02065
02066
02067
02068
02069
02070 #define DT_IRIX_LTR 0x70000033
02071 #define DT_IRIX_LPT 0x70000034
02072 #define DT_IRIX_LPT_IDX 0x70000035
02073 #define DT_IRIX_LPT_NO 0x70000036
02074 #define DT_IRIX_PLT 0x70000037
02075 #define DT_IRIX_PLT_NON_PREEMPT_IDX 0x70000038
02076 #define DT_IRIX_PLT_NON_PREEMPT_NO 0x70000039
02077 #define DT_IRIX_PLT_IN_DYNSYM_IDX 0x7000003A
02078 #define DT_IRIX_PLT_IN_DYMSYM_NO 0x7000003B
02079 #define DT_IRIX_PLT_PROTECTED_IDX 0x7000003C
02080 #define DT_IRIX_PLT_PROTECTED_NO 0x7000003D
02081 #define DT_IRIX_PLT_PREEMPT_IDX 0x7000003E
02082 #define DT_IRIX_PLT_PREEMPT_NO 0x7000003F
02083 #define DT_IRIX_DLT 0x70000040
02084 #define DT_IRIX_DLT_NON_PREEMPT_IDX 0x70000041
02085 #define DT_IRIX_DLT_NON_PREEMPT_NO 0x70000042
02086 #define DT_IRIX_DLT_IN_DYNSYM_IDX 0x70000043
02087 #define DT_IRIX_DLT_IN_DYMSYM_NO 0x70000044
02088 #define DT_IRIX_DLT_PROTECTED_IDX 0x70000045
02089 #define DT_IRIX_DLT_PROTECTED_NO 0x70000046
02090 #define DT_IRIX_DLT_PREEMPT_IDX 0x70000047
02091 #define DT_IRIX_DLT_PREEMPT_NO 0x70000048
02092 #define DT_IRIX_DSYM_PLT_IDX 0x70000049
02093 #define DT_IRIX_DSYM_DLT_IDX 0x7000004A
02094
02095
02096
02097
02098
02099
02100
02101
02102
02103
02104
02105
02106
02107
02108
02109
02110
02111 #ifndef __osf__
02112
02113 #define DT_MIPS_70000015 0x70000015
02114
02115
02116
02117
02118
02119 #if (defined(_DELTA_C_PLUS_PLUS) && (_DELTA_C_PLUS_PLUS==1))
02120
02121 #define DT_MIPS_DELTA_CLASS 0x70000017
02122 #define DT_MIPS_DELTA_CLASS_NO 0x70000018
02123 #define DT_MIPS_DELTA_INSTANCE 0x70000019
02124 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001A
02125 #define DT_MIPS_DELTA_RELOC 0x7000001B
02126 #define DT_MIPS_DELTA_RELOC_NO 0x7000001C
02127 #define DT_MIPS_DELTA_SYM 0x7000001D
02128
02129 #define DT_MIPS_DELTA_SYM_NO 0x7000001E
02130 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
02131 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
02132
02133 #endif
02134
02135
02136 #define DT_MIPS_CXX_FLAGS 0x70000022
02137 #define DT_MIPS_PIXIE_INIT 0x70000023
02138 #define DT_MIPS_SYMBOL_LIB 0x70000024
02139 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
02140 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
02141 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
02142 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
02143 #define DT_MIPS_OPTIONS 0x70000029
02144 #define DT_MIPS_INTERFACE 0x7000002a
02145 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
02146 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
02147 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
02148 #define DT_MIPS_PERF_SUFFIX 0x7000002e
02149
02150 #define DT_MIPS_COMPACT_SIZE 0x7000002f
02151 #define DT_MIPS_GP_VALUE 0x70000030
02152 #define DT_MIPS_AUX_DYNAMIC 0x70000031
02153
02154 #else
02155
02156 #define DT_MIPS_PACKAGE 0x70000014
02157 #define DT_MIPS_PACKAGENO 0x70000015
02158 #define DT_MIPS_PACKSYM 0x70000016
02159 #define DT_MIPS_PACKSYMNO 0x70000017
02160 #define DT_MIPS_IMPACKNO 0x70000018
02161 #define DT_MIPS_EXPACKNO 0x70000019
02162 #define DT_MIPS_IMPSYMNO 0x7000001A
02163 #define DT_MIPS_EXPSYMNO 0x7000001B
02164 #ifndef DT_MIPS_HIPAGENO
02165 #define DT_MIPS_HIPAGENO 0x7000001C
02166 #endif
02167
02168 #endif
02169
02170
02171
02172
02173
02174 typedef struct
02175 {
02176 Elf64_Addr ri_gp_value;
02177
02178
02179
02180 }
02181 Elf_IA64_RegInfo;
02182 #endif
02183
02184
02185
02186 typedef Elf32_Addr Elf32_Conflict;
02187
02188 typedef Elf64_Addr Elf64_Conflict;
02189
02190 extern Elf64_Conflict _ConflictList64 [];
02191
02192 #define RLD_VERSION 1
02193
02194
02195
02196
02197
02198
02199 #define SHT_PARISC_GOT 0x70000000
02200 #define SHT_PARISC_ARCH 0x70000001
02201 #define SHT_PARISC_GLOBAL 0x70000002
02202 #define SHT_PARISC_MILLI 0x70000003
02203 #define SHT_PARISC_UNWIND 0x70000004
02204 #define SHT_PARISC_PLT 0x70000005
02205 #define SHT_PARISC_SDATA 0x70000006
02206 #define SHT_PARISC_SBSS 0x70000007
02207 #define SHT_PARISC_SYMEXTN 0x70000008
02208 #define SHT_PARISC_STUBS 0x70000009
02209
02210
02211
02212 #define SHF_PARISC_SHORT 0x20000000
02213
02214
02215
02216 #define STT_PARISC_MILLICODE 13
02217
02218
02219
02220
02221
02222
02223 #define R_ALPHA_NONE 0
02224 #define R_ALPHA_REFLONG 1
02225 #define R_ALPHA_REFQUAD 2
02226 #define R_ALPHA_GPREL32 3
02227 #define R_ALPHA_LITERAL 4
02228 #define R_ALPHA_LITUSE 5
02229 #define R_ALPHA_GPDISP 6
02230 #define R_ALPHA_BRADDR 7
02231 #define R_ALPHA_HINT 8
02232 #define R_ALPHA_SREL16 9
02233 #define R_ALPHA_SREL32 10
02234 #define R_ALPHA_SREL64 11
02235 #define R_ALPHA_OP_PUSH 12
02236 #define R_ALPHA_OP_STORE 13
02237 #define R_ALPHA_OP_PSUB 14
02238 #define R_ALPHA_OP_PRSHIFT 15
02239 #define R_ALPHA_GPVALUE 16
02240 #define R_ALPHA_GPRELHIGH 17
02241 #define R_ALPHA_GPRELLOW 18
02242 #define R_ALPHA_IMMED_GP_16 19
02243 #define R_ALPHA_IMMED_GP_HI32 20
02244 #define R_ALPHA_IMMED_SCN_HI32 21
02245 #define R_ALPHA_IMMED_BR_HI32 22
02246 #define R_ALPHA_IMMED_LO32 23
02247 #define R_ALPHA_COPY 24
02248 #define R_ALPHA_GLOB_DAT 25
02249 #define R_ALPHA_JMP_SLOT 26
02250 #define R_ALPHA_RELATIVE 27
02251 #define R_ALPHA_NUM 28
02252
02253 __END_DECLS
02254
02255
02256 #endif
02257
02258
02259
02260 #ifndef EM_IA_64
02261 # define EM_IA_64 50
02262 #endif
02263
02264
02265 #define SHT_MIPS_IPALNO (SHT_LOPROC + 42)
02266
02267
02268 #define SHF_IA_64_SHORT SHF_MIPS_GPREL
02269
02270
02271
02272 #endif