Warning, cross-references for /kernel/include/util/elf.h need to be fixed.
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025 #ifndef _ELF_H_
0026 #define _ELF_H_
0027 #include"types.h"
0028
0029
0030 typedef uint16 Elf32_Half;
0031 typedef uint16 Elf64_Half;
0032
0033
0034 typedef uint32 Elf32_Word;
0035 typedef long Elf32_Sword;
0036 typedef uint32 Elf64_Word;
0037 typedef long Elf64_Sword;
0038
0039
0040 typedef uint64 Elf32_Xword;
0041 typedef sint64 Elf32_Sxword;
0042 typedef uint64 Elf64_Xword;
0043 typedef sint64 Elf64_Sxword;
0044
0045
0046 typedef uint32 Elf32_Addr;
0047 typedef uint64 Elf64_Addr;
0048
0049
0050 typedef uint32 Elf32_Off;
0051 typedef uint64 Elf64_Off;
0052
0053
0054 typedef uint16 Elf32_Section;
0055 typedef uint16 Elf64_Section;
0056
0057
0058 typedef Elf32_Half Elf32_Versym;
0059 typedef Elf64_Half Elf64_Versym;
0060
0061
0062
0063
0064 #define EI_NIDENT (16)
0065
0066 typedef struct
0067 {
0068 uint8 e_ident[EI_NIDENT];
0069 Elf32_Half e_type;
0070 Elf32_Half e_machine;
0071 Elf32_Word e_version;
0072 Elf32_Addr e_entry;
0073 Elf32_Off e_phoff;
0074 Elf32_Off e_shoff;
0075 Elf32_Word e_flags;
0076 Elf32_Half e_ehsize;
0077 Elf32_Half e_phentsize;
0078 Elf32_Half e_phnum;
0079 Elf32_Half e_shentsize;
0080 Elf32_Half e_shnum;
0081 Elf32_Half e_shstrndx;
0082 } Elf32_Ehdr;
0083
0084 typedef struct
0085 {
0086 uint8 e_ident[EI_NIDENT];
0087 Elf64_Half e_type;
0088 Elf64_Half e_machine;
0089 Elf64_Word e_version;
0090 Elf64_Addr e_entry;
0091 Elf64_Off e_phoff;
0092 Elf64_Off e_shoff;
0093 Elf64_Word e_flags;
0094 Elf64_Half e_ehsize;
0095 Elf64_Half e_phentsize;
0096 Elf64_Half e_phnum;
0097 Elf64_Half e_shentsize;
0098 Elf64_Half e_shnum;
0099 Elf64_Half e_shstrndx;
0100 } Elf64_Ehdr;
0101
0102
0103
0104
0105
0106 #define EI_MAG0 0
0107 #define ELFMAG0 0x7f
0108
0109 #define EI_MAG1 1
0110 #define ELFMAG1 'E'
0111
0112 #define EI_MAG2 2
0113 #define ELFMAG2 'L'
0114
0115 #define EI_MAG3 3
0116 #define ELFMAG3 'F'
0117
0118
0119 #define ELFMAG "\177ELF"
0120 #define SELFMAG 4
0121
0122 #define EI_CLASS 4
0123 #define ELFCLASSNONE 0
0124 #define ELFCLASS32 1
0125 #define ELFCLASS64 2
0126 #define ELFCLASSNUM 3
0127
0128 #define EI_DATA 5
0129 #define ELFDATANONE 0
0130 #define ELFDATA2LSB 1
0131 #define ELFDATA2MSB 2
0132 #define ELFDATANUM 3
0133
0134 #define EI_VERSION 6
0135
0136
0137 #define EI_OSABI 7
0138 #define ELFOSABI_SYSV 0
0139 #define ELFOSABI_HPUX 1
0140 #define ELFOSABI_ARM 97
0141 #define ELFOSABI_STANDALONE 255
0142
0143 #define EI_ABIVERSION 8
0144
0145 #define EI_PAD 9
0146
0147
0148
0149 #define ET_NONE 0
0150 #define ET_REL 1
0151 #define ET_EXEC 2
0152 #define ET_DYN 3
0153 #define ET_CORE 4
0154 #define ET_NUM 5
0155 #define ET_LOOS 0xfe00
0156 #define ET_HIOS 0xfeff
0157 #define ET_LOPROC 0xff00
0158 #define ET_HIPROC 0xffff
0159
0160
0161
0162 #define EM_NONE 0
0163 #define EM_M32 1
0164 #define EM_SPARC 2
0165 #define EM_386 3
0166 #define EM_68K 4
0167 #define EM_88K 5
0168 #define EM_860 7
0169 #define EM_MIPS 8
0170 #define EM_S370 9
0171 #define EM_MIPS_RS3_LE 10
0172
0173 #define EM_PARISC 15
0174 #define EM_VPP500 17
0175 #define EM_SPARC32PLUS 18
0176 #define EM_960 19
0177 #define EM_PPC 20
0178 #define EM_PPC64 21
0179 #define EM_S390 22
0180
0181 #define EM_V800 36
0182 #define EM_FR20 37
0183 #define EM_RH32 38
0184 #define EM_RCE 39
0185 #define EM_ARM 40
0186 #define EM_FAKE_ALPHA 41
0187 #define EM_SH 42
0188 #define EM_SPARCV9 43
0189 #define EM_TRICORE 44
0190 #define EM_ARC 45
0191 #define EM_H8_300 46
0192 #define EM_H8_300H 47
0193 #define EM_H8S 48
0194 #define EM_H8_500 49
0195 #define EM_IA_64 50
0196 #define EM_MIPS_X 51
0197 #define EM_COLDFIRE 52
0198 #define EM_68HC12 53
0199 #define EM_MMA 54
0200 #define EM_PCP 55
0201 #define EM_NCPU 56
0202 #define EM_NDR1 57
0203 #define EM_STARCORE 58
0204 #define EM_ME16 59
0205 #define EM_ST100 60
0206 #define EM_TINYJ 61
0207 #define EM_X86_64 62
0208 #define EM_PDSP 63
0209
0210 #define EM_FX66 66
0211 #define EM_ST9PLUS 67
0212 #define EM_ST7 68
0213 #define EM_68HC16 69
0214 #define EM_68HC11 70
0215 #define EM_68HC08 71
0216 #define EM_68HC05 72
0217 #define EM_SVX 73
0218 #define EM_AT19 74
0219 #define EM_VAX 75
0220 #define EM_CRIS 76
0221 #define EM_JAVELIN 77
0222 #define EM_FIREPATH 78
0223 #define EM_ZSP 79
0224 #define EM_MMIX 80
0225 #define EM_HUANY 81
0226 #define EM_PRISM 82
0227 #define EM_AVR 83
0228 #define EM_FR30 84
0229 #define EM_D10V 85
0230 #define EM_D30V 86
0231 #define EM_V850 87
0232 #define EM_M32R 88
0233 #define EM_MN10300 89
0234 #define EM_MN10200 90
0235 #define EM_PJ 91
0236 #define EM_NUM 92
0237
0238
0239
0240
0241
0242 #define EM_ALPHA 0x9026
0243
0244
0245
0246 #define EV_NONE 0
0247 #define EV_CURRENT 1
0248 #define EV_NUM 2
0249
0250
0251
0252 typedef struct
0253 {
0254 Elf32_Word sh_name;
0255 Elf32_Word sh_type;
0256 Elf32_Word sh_flags;
0257 Elf32_Addr sh_addr;
0258 Elf32_Off sh_offset;
0259 Elf32_Word sh_size;
0260 Elf32_Word sh_link;
0261 Elf32_Word sh_info;
0262 Elf32_Word sh_addralign;
0263 Elf32_Word sh_entsize;
0264 } Elf32_Shdr;
0265
0266 typedef struct
0267 {
0268 Elf64_Word sh_name;
0269 Elf64_Word sh_type;
0270 Elf64_Xword sh_flags;
0271 Elf64_Addr sh_addr;
0272 Elf64_Off sh_offset;
0273 Elf64_Xword sh_size;
0274 Elf64_Word sh_link;
0275 Elf64_Word sh_info;
0276 Elf64_Xword sh_addralign;
0277 Elf64_Xword sh_entsize;
0278 } Elf64_Shdr;
0279
0280
0281
0282 #define SHN_UNDEF 0
0283 #define SHN_LORESERVE 0xff00
0284 #define SHN_LOPROC 0xff00
0285 #define SHN_HIPROC 0xff1f
0286 #define SHN_LOOS 0xff20
0287 #define SHN_HIOS 0xff3f
0288 #define SHN_ABS 0xfff1
0289 #define SHN_COMMON 0xfff2
0290 #define SHN_XINDEX 0xffff
0291 #define SHN_HIRESERVE 0xffff
0292
0293
0294
0295 #define SHT_NULL 0
0296 #define SHT_PROGBITS 1
0297 #define SHT_SYMTAB 2
0298 #define SHT_STRTAB 3
0299 #define SHT_RELA 4
0300 #define SHT_HASH 5
0301 #define SHT_DYNAMIC 6
0302 #define SHT_NOTE 7
0303 #define SHT_NOBITS 8
0304 #define SHT_REL 9
0305 #define SHT_SHLIB 10
0306 #define SHT_DYNSYM 11
0307 #define SHT_INIT_ARRAY 14
0308 #define SHT_FINI_ARRAY 15
0309 #define SHT_PREINIT_ARRAY 16
0310 #define SHT_GROUP 17
0311 #define SHT_SYMTAB_SHNDX 18
0312 #define SHT_NUM 19
0313 #define SHT_LOOS 0x60000000
0314 #define SHT_CHECKSUM 0x6ffffff8
0315 #define SHT_LOSUNW 0x6ffffffa
0316 #define SHT_SUNW_move 0x6ffffffa
0317 #define SHT_SUNW_COMDAT 0x6ffffffb
0318 #define SHT_SUNW_syminfo 0x6ffffffc
0319 #define SHT_GNU_verdef 0x6ffffffd
0320 #define SHT_GNU_verneed 0x6ffffffe
0321 #define SHT_GNU_versym 0x6fffffff
0322 #define SHT_HISUNW 0x6fffffff
0323 #define SHT_HIOS 0x6fffffff
0324 #define SHT_LOPROC 0x70000000
0325 #define SHT_HIPROC 0x7fffffff
0326 #define SHT_LOUSER 0x80000000
0327 #define SHT_HIUSER 0x8fffffff
0328
0329
0330
0331 #define SHF_WRITE (1 << 0)
0332 #define SHF_ALLOC (1 << 1)
0333 #define SHF_EXECINSTR (1 << 2)
0334 #define SHF_MERGE (1 << 4)
0335 #define SHF_STRINGS (1 << 5)
0336 #define SHF_INFO_LINK (1 << 6)
0337 #define SHF_LINK_ORDER (1 << 7)
0338 #define SHF_OS_NONCONFORMING (1 << 8)
0339
0340 #define SHF_MASKOS 0x0ff00000
0341 #define SHF_MASKPROC 0xf0000000
0342
0343
0344 #define GRP_COMDAT 0x1
0345
0346
0347
0348 typedef struct
0349 {
0350 Elf32_Word st_name;
0351 Elf32_Addr st_value;
0352 Elf32_Word st_size;
0353 uint8 st_info;
0354 uint8 st_other;
0355 Elf32_Section st_shndx;
0356 } Elf32_Sym;
0357
0358 typedef struct
0359 {
0360 Elf64_Word st_name;
0361 uint8 st_info;
0362 uint8 st_other;
0363 Elf64_Section st_shndx;
0364 Elf64_Addr st_value;
0365 Elf64_Xword st_size;
0366 } Elf64_Sym;
0367
0368
0369
0370
0371 typedef struct
0372 {
0373 Elf32_Half si_boundto;
0374 Elf32_Half si_flags;
0375 } Elf32_Syminfo;
0376
0377 typedef struct
0378 {
0379 Elf64_Half si_boundto;
0380 Elf64_Half si_flags;
0381 } Elf64_Syminfo;
0382
0383
0384 #define SYMINFO_BT_SELF 0xffff
0385 #define SYMINFO_BT_PARENT 0xfffe
0386 #define SYMINFO_BT_LOWRESERVE 0xff00
0387
0388
0389 #define SYMINFO_FLG_DIRECT 0x0001
0390 #define SYMINFO_FLG_PASSTHRU 0x0002
0391 #define SYMINFO_FLG_COPY 0x0004
0392 #define SYMINFO_FLG_LAZYLOAD 0x0008
0393
0394
0395 #define SYMINFO_NONE 0
0396 #define SYMINFO_CURRENT 1
0397 #define SYMINFO_NUM 2
0398
0399
0400
0401
0402 #define SHN_UNDEF 0
0403
0404
0405
0406 #define ELF32_ST_BIND(val) (((uint8) (val)) >> 4)
0407 #define ELF32_ST_TYPE(val) ((val) & 0xf)
0408 #define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
0409
0410
0411 #define ELF64_ST_BIND(val) ELF32_ST_BIND (val)
0412 #define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val)
0413 #define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type))
0414
0415
0416
0417 #define STB_LOCAL 0
0418 #define STB_GLOBAL 1
0419 #define STB_WEAK 2
0420 #define STB_NUM 3
0421 #define STB_LOOS 10
0422 #define STB_HIOS 12
0423 #define STB_LOPROC 13
0424 #define STB_HIPROC 15
0425
0426
0427
0428 #define STT_NOTYPE 0
0429 #define STT_OBJECT 1
0430 #define STT_FUNC 2
0431 #define STT_SECTION 3
0432 #define STT_FILE 4
0433 #define STT_COMMON 5
0434 #define STT_NUM 6
0435 #define STT_LOOS 10
0436 #define STT_HIOS 12
0437 #define STT_LOPROC 13
0438 #define STT_HIPROC 15
0439
0440
0441
0442
0443
0444
0445 #define STN_UNDEF 0
0446
0447
0448
0449
0450 #define ELF32_ST_VISIBILITY(o) ((o) & 0x03)
0451
0452
0453 #define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o)
0454
0455
0456 #define STV_DEFAULT 0
0457 #define STV_INTERNAL 1
0458 #define STV_HIDDEN 2
0459 #define STV_PROTECTED 3
0460
0461
0462
0463
0464 typedef struct
0465 {
0466 Elf32_Addr r_offset;
0467 Elf32_Word r_info;
0468 } Elf32_Rel;
0469
0470
0471
0472
0473
0474
0475 typedef struct
0476 {
0477 Elf64_Addr r_offset;
0478 Elf64_Xword r_info;
0479 } Elf64_Rel;
0480
0481
0482
0483 typedef struct
0484 {
0485 Elf32_Addr r_offset;
0486 Elf32_Word r_info;
0487 Elf32_Sword r_addend;
0488 } Elf32_Rela;
0489
0490 typedef struct
0491 {
0492 Elf64_Addr r_offset;
0493 Elf64_Xword r_info;
0494 Elf64_Sxword r_addend;
0495 } Elf64_Rela;
0496
0497
0498
0499 #define ELF32_R_SYM(val) ((val) >> 8)
0500 #define ELF32_R_TYPE(val) ((val) & 0xff)
0501 #define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff))
0502
0503 #define ELF64_R_SYM(i) ((i) >> 32)
0504 #define ELF64_R_TYPE(i) ((i) & 0xffffffff)
0505 #define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type))
0506
0507
0508
0509 typedef struct
0510 {
0511 Elf32_Word p_type;
0512 Elf32_Off p_offset;
0513 Elf32_Addr p_vaddr;
0514 Elf32_Addr p_paddr;
0515 Elf32_Word p_filesz;
0516 Elf32_Word p_memsz;
0517 Elf32_Word p_flags;
0518 Elf32_Word p_align;
0519 } Elf32_Phdr;
0520
0521 typedef struct
0522 {
0523 Elf64_Word p_type;
0524 Elf64_Word p_flags;
0525 Elf64_Off p_offset;
0526 Elf64_Addr p_vaddr;
0527 Elf64_Addr p_paddr;
0528 Elf64_Xword p_filesz;
0529 Elf64_Xword p_memsz;
0530 Elf64_Xword p_align;
0531 } Elf64_Phdr;
0532
0533
0534
0535 #define PT_NULL 0
0536 #define PT_LOAD 1
0537 #define PT_DYNAMIC 2
0538 #define PT_INTERP 3
0539 #define PT_NOTE 4
0540 #define PT_SHLIB 5
0541 #define PT_PHDR 6
0542 #define PT_NUM 7
0543 #define PT_LOOS 0x60000000
0544 #define PT_HIOS 0x6fffffff
0545 #define PT_LOPROC 0x70000000
0546 #define PT_HIPROC 0x7fffffff
0547
0548
0549
0550 #define PF_X (1 << 0)
0551 #define PF_W (1 << 1)
0552 #define PF_R (1 << 2)
0553 #define PF_MASKOS 0x0ff00000
0554 #define PF_MASKPROC 0xf0000000
0555
0556
0557
0558 #define NT_PRSTATUS 1
0559 #define NT_FPREGSET 2
0560 #define NT_PRPSINFO 3
0561 #define NT_PRXREG 4
0562 #define NT_PLATFORM 5
0563 #define NT_AUXV 6
0564 #define NT_GWINDOWS 7
0565 #define NT_PSTATUS 10
0566 #define NT_PSINFO 13
0567 #define NT_PRCRED 14
0568 #define NT_UTSNAME 15
0569 #define NT_LWPSTATUS 16
0570 #define NT_LWPSINFO 17
0571 #define NT_PRFPXREG 20
0572
0573
0574
0575 #define NT_VERSION 1
0576
0577
0578
0579
0580 typedef struct
0581 {
0582 Elf32_Sword d_tag;
0583 union
0584 {
0585 Elf32_Word d_val;
0586 Elf32_Addr d_ptr;
0587 } d_un;
0588 } Elf32_Dyn;
0589
0590 typedef struct
0591 {
0592 Elf64_Sxword d_tag;
0593 union
0594 {
0595 Elf64_Xword d_val;
0596 Elf64_Addr d_ptr;
0597 } d_un;
0598 } Elf64_Dyn;
0599
0600
0601
0602 #define DT_NULL 0
0603 #define DT_NEEDED 1
0604 #define DT_PLTRELSZ 2
0605 #define DT_PLTGOT 3
0606 #define DT_HASH 4
0607 #define DT_STRTAB 5
0608 #define DT_SYMTAB 6
0609 #define DT_RELA 7
0610 #define DT_RELASZ 8
0611 #define DT_RELAENT 9
0612 #define DT_STRSZ 10
0613 #define DT_SYMENT 11
0614 #define DT_INIT 12
0615 #define DT_FINI 13
0616 #define DT_SONAME 14
0617 #define DT_RPATH 15
0618 #define DT_SYMBOLIC 16
0619 #define DT_REL 17
0620 #define DT_RELSZ 18
0621 #define DT_RELENT 19
0622 #define DT_PLTREL 20
0623 #define DT_DEBUG 21
0624 #define DT_TEXTREL 22
0625 #define DT_JMPREL 23
0626 #define DT_BIND_NOW 24
0627 #define DT_INIT_ARRAY 25
0628 #define DT_FINI_ARRAY 26
0629 #define DT_INIT_ARRAYSZ 27
0630 #define DT_FINI_ARRAYSZ 28
0631 #define DT_RUNPATH 29
0632 #define DT_FLAGS 30
0633 #define DT_ENCODING 32
0634 #define DT_PREINIT_ARRAY 32
0635 #define DT_PREINIT_ARRAYSZ 33
0636 #define DT_NUM 34
0637 #define DT_LOOS 0x60000000
0638 #define DT_HIOS 0x6fffffff
0639 #define DT_LOPROC 0x70000000
0640 #define DT_HIPROC 0x7fffffff
0641 #define DT_PROCNUM DT_MIPS_NUM
0642
0643
0644
0645
0646 #define DT_VALRNGLO 0x6ffffd00
0647 #define DT_CHECKSUM 0x6ffffdf8
0648 #define DT_PLTPADSZ 0x6ffffdf9
0649 #define DT_MOVEENT 0x6ffffdfa
0650 #define DT_MOVESZ 0x6ffffdfb
0651 #define DT_FEATURE_1 0x6ffffdfc
0652 #define DT_POSFLAG_1 0x6ffffdfd
0653
0654 #define DT_SYMINSZ 0x6ffffdfe
0655 #define DT_SYMINENT 0x6ffffdff
0656 #define DT_VALRNGHI 0x6ffffdff
0657
0658
0659
0660
0661
0662
0663 #define DT_ADDRRNGLO 0x6ffffe00
0664 #define DT_SYMINFO 0x6ffffeff
0665 #define DT_ADDRRNGHI 0x6ffffeff
0666
0667
0668
0669 #define DT_VERSYM 0x6ffffff0
0670
0671 #define DT_RELACOUNT 0x6ffffff9
0672 #define DT_RELCOUNT 0x6ffffffa
0673
0674
0675 #define DT_FLAGS_1 0x6ffffffb
0676 #define DT_VERDEF 0x6ffffffc
0677
0678 #define DT_VERDEFNUM 0x6ffffffd
0679 #define DT_VERNEED 0x6ffffffe
0680
0681 #define DT_VERNEEDNUM 0x6fffffff
0682 #define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag))
0683 #define DT_VERSIONTAGNUM 16
0684
0685
0686
0687 #define DT_AUXILIARY 0x7ffffffd
0688 #define DT_FILTER 0x7fffffff
0689 #define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
0690 #define DT_EXTRANUM 3
0691
0692
0693 #define DF_ORIGIN 0x00000001
0694 #define DF_SYMBOLIC 0x00000002
0695 #define DF_TEXTREL 0x00000004
0696 #define DF_BIND_NOW 0x00000008
0697
0698
0699
0700 #define DF_1_NOW 0x00000001
0701 #define DF_1_GLOBAL 0x00000002
0702 #define DF_1_GROUP 0x00000004
0703 #define DF_1_NODELETE 0x00000008
0704 #define DF_1_LOADFLTR 0x00000010
0705 #define DF_1_INITFIRST 0x00000020
0706 #define DF_1_NOOPEN 0x00000040
0707 #define DF_1_ORIGIN 0x00000080
0708 #define DF_1_DIRECT 0x00000100
0709 #define DF_1_TRANS 0x00000200
0710 #define DF_1_INTERPOSE 0x00000400
0711 #define DF_1_NODEFLIB 0x00000800
0712 #define DF_1_NODUMP 0x00001000
0713 #define DF_1_CONFALT 0x00002000
0714 #define DF_1_ENDFILTEE 0x00004000
0715
0716
0717 #define DTF_1_PARINIT 0x00000001
0718 #define DTF_1_CONFEXP 0x00000002
0719
0720
0721 #define DF_P1_LAZYLOAD 0x00000001
0722 #define DF_P1_GROUPPERM 0x00000002
0723
0724
0725
0726
0727 typedef struct
0728 {
0729 Elf32_Half vd_version;
0730 Elf32_Half vd_flags;
0731 Elf32_Half vd_ndx;
0732 Elf32_Half vd_cnt;
0733 Elf32_Word vd_hash;
0734 Elf32_Word vd_aux;
0735 Elf32_Word vd_next;
0736
0737 } Elf32_Verdef;
0738
0739 typedef struct
0740 {
0741 Elf64_Half vd_version;
0742 Elf64_Half vd_flags;
0743 Elf64_Half vd_ndx;
0744 Elf64_Half vd_cnt;
0745 Elf64_Word vd_hash;
0746 Elf64_Word vd_aux;
0747 Elf64_Word vd_next;
0748
0749 } Elf64_Verdef;
0750
0751
0752
0753 #define VER_DEF_NONE 0
0754 #define VER_DEF_CURRENT 1
0755 #define VER_DEF_NUM 2
0756
0757
0758 #define VER_FLG_BASE 0x1
0759 #define VER_FLG_WEAK 0x2
0760
0761
0762
0763 typedef struct
0764 {
0765 Elf32_Word vda_name;
0766 Elf32_Word vda_next;
0767
0768 } Elf32_Verdaux;
0769
0770 typedef struct
0771 {
0772 Elf64_Word vda_name;
0773 Elf64_Word vda_next;
0774
0775 } Elf64_Verdaux;
0776
0777
0778
0779
0780 typedef struct
0781 {
0782 Elf32_Half vn_version;
0783 Elf32_Half vn_cnt;
0784 Elf32_Word vn_file;
0785
0786 Elf32_Word vn_aux;
0787 Elf32_Word vn_next;
0788
0789 } Elf32_Verneed;
0790
0791 typedef struct
0792 {
0793 Elf64_Half vn_version;
0794 Elf64_Half vn_cnt;
0795 Elf64_Word vn_file;
0796
0797 Elf64_Word vn_aux;
0798 Elf64_Word vn_next;
0799
0800 } Elf64_Verneed;
0801
0802
0803
0804 #define VER_NEED_NONE 0
0805 #define VER_NEED_CURRENT 1
0806 #define VER_NEED_NUM 2
0807
0808
0809
0810 typedef struct
0811 {
0812 Elf32_Word vna_hash;
0813 Elf32_Half vna_flags;
0814 Elf32_Half vna_other;
0815 Elf32_Word vna_name;
0816 Elf32_Word vna_next;
0817
0818 } Elf32_Vernaux;
0819
0820 typedef struct
0821 {
0822 Elf64_Word vna_hash;
0823 Elf64_Half vna_flags;
0824 Elf64_Half vna_other;
0825 Elf64_Word vna_name;
0826 Elf64_Word vna_next;
0827
0828 } Elf64_Vernaux;
0829
0830
0831
0832 #define VER_FLG_WEAK 0x2
0833
0834
0835
0836
0837
0838
0839
0840
0841
0842
0843
0844 typedef struct
0845 {
0846 int a_type;
0847 union
0848 {
0849 long int a_val;
0850 void *a_ptr;
0851 void (*a_fcn) (void);
0852 } a_un;
0853 } Elf32_auxv_t;
0854
0855 typedef struct
0856 {
0857 long int a_type;
0858 union
0859 {
0860 long int a_val;
0861 void *a_ptr;
0862 void (*a_fcn) (void);
0863 } a_un;
0864 } Elf64_auxv_t;
0865
0866
0867
0868 #define AT_NULL 0
0869 #define AT_IGNORE 1
0870 #define AT_EXECFD 2
0871 #define AT_PHDR 3
0872 #define AT_PHENT 4
0873 #define AT_PHNUM 5
0874 #define AT_PAGESZ 6
0875 #define AT_BASE 7
0876 #define AT_FLAGS 8
0877 #define AT_ENTRY 9
0878 #define AT_NOTELF 10
0879 #define AT_UID 11
0880 #define AT_EUID 12
0881 #define AT_GID 13
0882 #define AT_EGID 14
0883 #define AT_CLKTCK 17
0884
0885
0886 #define AT_PLATFORM 15
0887 #define AT_HWCAP 16
0888
0889
0890
0891
0892 #define AT_FPUCW 18
0893
0894
0895 #define AT_DCACHEBSIZE 19
0896 #define AT_ICACHEBSIZE 20
0897 #define AT_UCACHEBSIZE 21
0898
0899
0900
0901 #define AT_IGNOREPPC 22
0902
0903
0904
0905
0906
0907 typedef struct
0908 {
0909 Elf32_Word n_namesz;
0910 Elf32_Word n_descsz;
0911 Elf32_Word n_type;
0912 } Elf32_Nhdr;
0913
0914 typedef struct
0915 {
0916 Elf64_Word n_namesz;
0917 Elf64_Word n_descsz;
0918 Elf64_Word n_type;
0919 } Elf64_Nhdr;
0920
0921
0922
0923
0924 #define ELF_NOTE_SOLARIS "SUNW Solaris"
0925
0926
0927 #define ELF_NOTE_GNU "GNU"
0928
0929
0930
0931
0932
0933 #define ELF_NOTE_PAGESIZE_HINT 1
0934
0935
0936
0937
0938
0939
0940
0941
0942
0943
0944 #define ELF_NOTE_ABI 1
0945
0946
0947
0948 #define ELF_NOTE_OS_LINUX 0
0949 #define ELF_NOTE_OS_GNU 1
0950 #define ELF_NOTE_OS_SOLARIS2 2
0951
0952
0953
0954 typedef struct
0955 {
0956 Elf32_Xword m_value;
0957 Elf32_Word m_info;
0958 Elf32_Word m_poffset;
0959 Elf32_Half m_repeat;
0960 Elf32_Half m_stride;
0961 } Elf32_Move;
0962
0963 typedef struct
0964 {
0965 Elf64_Xword m_value;
0966 Elf64_Xword m_info;
0967 Elf64_Xword m_poffset;
0968 Elf64_Half m_repeat;
0969 Elf64_Half m_stride;
0970 } Elf64_Move;
0971
0972
0973 #define ELF32_M_SYM(info) ((info) >> 8)
0974 #define ELF32_M_SIZE(info) ((uint8) (info))
0975 #define ELF32_M_INFO(sym, size) (((sym) << 8) + (uint8) (size))
0976
0977 #define ELF64_M_SYM(info) ELF32_M_SYM (info)
0978 #define ELF64_M_SIZE(info) ELF32_M_SIZE (info)
0979 #define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
0980
0981
0982
0983
0984
0985 #define EF_CPU32 0x00810000
0986
0987
0988
0989 #define R_68K_NONE 0
0990 #define R_68K_32 1
0991 #define R_68K_16 2
0992 #define R_68K_8 3
0993 #define R_68K_PC32 4
0994 #define R_68K_PC16 5
0995 #define R_68K_PC8 6
0996 #define R_68K_GOT32 7
0997 #define R_68K_GOT16 8
0998 #define R_68K_GOT8 9
0999 #define R_68K_GOT32O 10
1000 #define R_68K_GOT16O 11
1001 #define R_68K_GOT8O 12
1002 #define R_68K_PLT32 13
1003 #define R_68K_PLT16 14
1004 #define R_68K_PLT8 15
1005 #define R_68K_PLT32O 16
1006 #define R_68K_PLT16O 17
1007 #define R_68K_PLT8O 18
1008 #define R_68K_COPY 19
1009 #define R_68K_GLOB_DAT 20
1010 #define R_68K_JMP_SLOT 21
1011 #define R_68K_RELATIVE 22
1012
1013 #define R_68K_NUM 23
1014
1015
1016
1017
1018
1019 #define R_386_NONE 0
1020 #define R_386_32 1
1021 #define R_386_PC32 2
1022 #define R_386_GOT32 3
1023 #define R_386_PLT32 4
1024 #define R_386_COPY 5
1025 #define R_386_GLOB_DAT 6
1026 #define R_386_JMP_SLOT 7
1027 #define R_386_RELATIVE 8
1028 #define R_386_GOTOFF 9
1029 #define R_386_GOTPC 10
1030
1031 #define R_386_NUM 11
1032
1033
1034
1035
1036
1037 #define STT_REGISTER 13
1038
1039
1040
1041 #define EF_SPARCV9_MM 3
1042 #define EF_SPARCV9_TSO 0
1043 #define EF_SPARCV9_PSO 1
1044 #define EF_SPARCV9_RMO 2
1045 #define EF_SPARC_LEDATA 0x800000
1046 #define EF_SPARC_EXT_MASK 0xFFFF00
1047 #define EF_SPARC_32PLUS 0x000100
1048 #define EF_SPARC_SUN_US1 0x000200
1049 #define EF_SPARC_HAL_R1 0x000400
1050 #define EF_SPARC_SUN_US3 0x000800
1051
1052
1053
1054 #define R_SPARC_NONE 0
1055 #define R_SPARC_8 1
1056 #define R_SPARC_16 2
1057 #define R_SPARC_32 3
1058 #define R_SPARC_DISP8 4
1059 #define R_SPARC_DISP16 5
1060 #define R_SPARC_DISP32 6
1061 #define R_SPARC_WDISP30 7
1062 #define R_SPARC_WDISP22 8
1063 #define R_SPARC_HI22 9
1064 #define R_SPARC_22 10
1065 #define R_SPARC_13 11
1066 #define R_SPARC_LO10 12
1067 #define R_SPARC_GOT10 13
1068 #define R_SPARC_GOT13 14
1069 #define R_SPARC_GOT22 15
1070 #define R_SPARC_PC10 16
1071 #define R_SPARC_PC22 17
1072 #define R_SPARC_WPLT30 18
1073 #define R_SPARC_COPY 19
1074 #define R_SPARC_GLOB_DAT 20
1075 #define R_SPARC_JMP_SLOT 21
1076 #define R_SPARC_RELATIVE 22
1077 #define R_SPARC_UA32 23
1078
1079
1080
1081 #define R_SPARC_PLT32 24
1082 #define R_SPARC_HIPLT22 25
1083 #define R_SPARC_LOPLT10 26
1084 #define R_SPARC_PCPLT32 27
1085 #define R_SPARC_PCPLT22 28
1086 #define R_SPARC_PCPLT10 29
1087 #define R_SPARC_10 30
1088 #define R_SPARC_11 31
1089 #define R_SPARC_64 32
1090 #define R_SPARC_OLO10 33
1091 #define R_SPARC_HH22 34
1092 #define R_SPARC_HM10 35
1093 #define R_SPARC_LM22 36
1094 #define R_SPARC_PC_HH22 37
1095 #define R_SPARC_PC_HM10 38
1096 #define R_SPARC_PC_LM22 39
1097 #define R_SPARC_WDISP16 40
1098 #define R_SPARC_WDISP19 41
1099 #define R_SPARC_7 43
1100 #define R_SPARC_5 44
1101 #define R_SPARC_6 45
1102 #define R_SPARC_DISP64 46
1103 #define R_SPARC_PLT64 47
1104 #define R_SPARC_HIX22 48
1105 #define R_SPARC_LOX10 49
1106 #define R_SPARC_H44 50
1107 #define R_SPARC_M44 51
1108 #define R_SPARC_L44 52
1109 #define R_SPARC_REGISTER 53
1110 #define R_SPARC_UA64 54
1111 #define R_SPARC_UA16 55
1112
1113 #define R_SPARC_NUM 56
1114
1115
1116
1117 #define DT_SPARC_REGISTER 0x70000001
1118 #define DT_SPARC_NUM 2
1119
1120
1121
1122 #define HWCAP_SPARC_FLUSH 1
1123 #define HWCAP_SPARC_STBAR 2
1124 #define HWCAP_SPARC_SWAP 4
1125 #define HWCAP_SPARC_MULDIV 8
1126 #define HWCAP_SPARC_V9 16
1127 #define HWCAP_SPARC_ULTRA3 32
1128
1129
1130
1131
1132
1133 #define EF_MIPS_NOREORDER 1
1134 #define EF_MIPS_PIC 2
1135 #define EF_MIPS_CPIC 4
1136 #define EF_MIPS_XGOT 8
1137 #define EF_MIPS_64BIT_WHIRL 16
1138 #define EF_MIPS_ABI2 32
1139 #define EF_MIPS_ABI_ON32 64
1140 #define EF_MIPS_ARCH 0xf0000000
1141
1142
1143
1144 #define EF_MIPS_ARCH_1 0x00000000
1145 #define EF_MIPS_ARCH_2 0x10000000
1146 #define EF_MIPS_ARCH_3 0x20000000
1147 #define EF_MIPS_ARCH_4 0x30000000
1148 #define EF_MIPS_ARCH_5 0x40000000
1149 #define EF_MIPS_ARCH_32 0x60000000
1150 #define EF_MIPS_ARCH_64 0x70000000
1151
1152
1153
1154 #define E_MIPS_ARCH_1 0x00000000
1155 #define E_MIPS_ARCH_2 0x10000000
1156 #define E_MIPS_ARCH_3 0x20000000
1157 #define E_MIPS_ARCH_4 0x30000000
1158 #define E_MIPS_ARCH_5 0x40000000
1159 #define E_MIPS_ARCH_32 0x60000000
1160 #define E_MIPS_ARCH_64 0x70000000
1161
1162
1163
1164 #define SHN_MIPS_ACOMMON 0xff00
1165 #define SHN_MIPS_TEXT 0xff01
1166 #define SHN_MIPS_DATA 0xff02
1167 #define SHN_MIPS_SCOMMON 0xff03
1168 #define SHN_MIPS_SUNDEFINED 0xff04
1169
1170
1171
1172 #define SHT_MIPS_LIBLIST 0x70000000
1173 #define SHT_MIPS_MSYM 0x70000001
1174 #define SHT_MIPS_CONFLICT 0x70000002
1175 #define SHT_MIPS_GPTAB 0x70000003
1176 #define SHT_MIPS_UCODE 0x70000004
1177 #define SHT_MIPS_DEBUG 0x70000005
1178 #define SHT_MIPS_REGINFO 0x70000006
1179 #define SHT_MIPS_PACKAGE 0x70000007
1180 #define SHT_MIPS_PACKSYM 0x70000008
1181 #define SHT_MIPS_RELD 0x70000009
1182 #define SHT_MIPS_IFACE 0x7000000b
1183 #define SHT_MIPS_CONTENT 0x7000000c
1184 #define SHT_MIPS_OPTIONS 0x7000000d
1185 #define SHT_MIPS_SHDR 0x70000010
1186 #define SHT_MIPS_FDESC 0x70000011
1187 #define SHT_MIPS_EXTSYM 0x70000012
1188 #define SHT_MIPS_DENSE 0x70000013
1189 #define SHT_MIPS_PDESC 0x70000014
1190 #define SHT_MIPS_LOCSYM 0x70000015
1191 #define SHT_MIPS_AUXSYM 0x70000016
1192 #define SHT_MIPS_OPTSYM 0x70000017
1193 #define SHT_MIPS_LOCSTR 0x70000018
1194 #define SHT_MIPS_LINE 0x70000019
1195 #define SHT_MIPS_RFDESC 0x7000001a
1196 #define SHT_MIPS_DELTASYM 0x7000001b
1197 #define SHT_MIPS_DELTAINST 0x7000001c
1198 #define SHT_MIPS_DELTACLASS 0x7000001d
1199 #define SHT_MIPS_DWARF 0x7000001e
1200 #define SHT_MIPS_DELTADECL 0x7000001f
1201 #define SHT_MIPS_SYMBOL_LIB 0x70000020
1202 #define SHT_MIPS_EVENTS 0x70000021
1203 #define SHT_MIPS_TRANSLATE 0x70000022
1204 #define SHT_MIPS_PIXIE 0x70000023
1205 #define SHT_MIPS_XLATE 0x70000024
1206 #define SHT_MIPS_XLATE_DEBUG 0x70000025
1207 #define SHT_MIPS_WHIRL 0x70000026
1208 #define SHT_MIPS_EH_REGION 0x70000027
1209 #define SHT_MIPS_XLATE_OLD 0x70000028
1210 #define SHT_MIPS_PDR_EXCEPTION 0x70000029
1211
1212
1213
1214 #define SHF_MIPS_GPREL 0x10000000
1215 #define SHF_MIPS_MERGE 0x20000000
1216 #define SHF_MIPS_ADDR 0x40000000
1217 #define SHF_MIPS_STRINGS 0x80000000
1218 #define SHF_MIPS_NOSTRIP 0x08000000
1219 #define SHF_MIPS_LOCAL 0x04000000
1220 #define SHF_MIPS_NAMES 0x02000000
1221 #define SHF_MIPS_NODUPE 0x01000000
1222
1223
1224
1225
1226
1227 #define STO_MIPS_DEFAULT 0x0
1228 #define STO_MIPS_INTERNAL 0x1
1229 #define STO_MIPS_HIDDEN 0x2
1230 #define STO_MIPS_PROTECTED 0x3
1231 #define STO_MIPS_SC_ALIGN_UNUSED 0xff
1232
1233
1234 #define STB_MIPS_SPLIT_COMMON 13
1235
1236
1237
1238 typedef union
1239 {
1240 struct
1241 {
1242 Elf32_Word gt_current_g_value;
1243 Elf32_Word gt_unused;
1244 } gt_header;
1245 struct
1246 {
1247 Elf32_Word gt_g_value;
1248 Elf32_Word gt_bytes;
1249 } gt_entry;
1250 } Elf32_gptab;
1251
1252
1253
1254 typedef struct
1255 {
1256 Elf32_Word ri_gprmask;
1257 Elf32_Word ri_cprmask[4];
1258 Elf32_Sword ri_gp_value;
1259 } Elf32_RegInfo;
1260
1261
1262
1263 typedef struct
1264 {
1265 uint8 kind;
1266
1267 uint8 size;
1268 Elf32_Section section;
1269
1270 Elf32_Word info;
1271 } Elf_Options;
1272
1273
1274
1275 #define ODK_NULL 0
1276 #define ODK_REGINFO 1
1277 #define ODK_EXCEPTIONS 2
1278 #define ODK_PAD 3
1279 #define ODK_HWPATCH 4
1280 #define ODK_FILL 5
1281 #define ODK_TAGS 6
1282 #define ODK_HWAND 7
1283 #define ODK_HWOR 8
1284
1285
1286
1287 #define OEX_FPU_MIN 0x1f
1288 #define OEX_FPU_MAX 0x1f00
1289 #define OEX_PAGE0 0x10000
1290 #define OEX_SMM 0x20000
1291 #define OEX_FPDBUG 0x40000
1292 #define OEX_PRECISEFP OEX_FPDBUG
1293 #define OEX_DISMISS 0x80000
1294
1295 #define OEX_FPU_INVAL 0x10
1296 #define OEX_FPU_DIV0 0x08
1297 #define OEX_FPU_OFLO 0x04
1298 #define OEX_FPU_UFLO 0x02
1299 #define OEX_FPU_INEX 0x01
1300
1301
1302
1303 #define OHW_R4KEOP 0x1
1304 #define OHW_R8KPFETCH 0x2
1305 #define OHW_R5KEOP 0x4
1306 #define OHW_R5KCVTL 0x8
1307
1308 #define OPAD_PREFIX 0x1
1309 #define OPAD_POSTFIX 0x2
1310 #define OPAD_SYMBOL 0x4
1311
1312
1313
1314 typedef struct
1315 {
1316 Elf32_Word hwp_flags1;
1317 Elf32_Word hwp_flags2;
1318 } Elf_Options_Hw;
1319
1320
1321
1322 #define OHWA0_R4KEOP_CHECKED 0x00000001
1323 #define OHWA1_R4KEOP_CLEAN 0x00000002
1324
1325
1326
1327 #define R_MIPS_NONE 0
1328 #define R_MIPS_16 1
1329 #define R_MIPS_32 2
1330 #define R_MIPS_REL32 3
1331 #define R_MIPS_26 4
1332 #define R_MIPS_HI16 5
1333 #define R_MIPS_LO16 6
1334 #define R_MIPS_GPREL16 7
1335 #define R_MIPS_LITERAL 8
1336 #define R_MIPS_GOT16 9
1337 #define R_MIPS_PC16 10
1338 #define R_MIPS_CALL16 11
1339 #define R_MIPS_GPREL32 12
1340
1341 #define R_MIPS_SHIFT5 16
1342 #define R_MIPS_SHIFT6 17
1343 #define R_MIPS_64 18
1344 #define R_MIPS_GOT_DISP 19
1345 #define R_MIPS_GOT_PAGE 20
1346 #define R_MIPS_GOT_OFST 21
1347 #define R_MIPS_GOT_HI16 22
1348 #define R_MIPS_GOT_LO16 23
1349 #define R_MIPS_SUB 24
1350 #define R_MIPS_INSERT_A 25
1351 #define R_MIPS_INSERT_B 26
1352 #define R_MIPS_DELETE 27
1353 #define R_MIPS_HIGHER 28
1354 #define R_MIPS_HIGHEST 29
1355 #define R_MIPS_CALL_HI16 30
1356 #define R_MIPS_CALL_LO16 31
1357 #define R_MIPS_SCN_DISP 32
1358 #define R_MIPS_REL16 33
1359 #define R_MIPS_ADD_IMMEDIATE 34
1360 #define R_MIPS_PJUMP 35
1361 #define R_MIPS_RELGOT 36
1362 #define R_MIPS_JALR 37
1363
1364 #define R_MIPS_NUM 38
1365
1366
1367
1368 #define PT_MIPS_REGINFO 0x70000000
1369 #define PT_MIPS_RTPROC 0x70000001
1370 #define PT_MIPS_OPTIONS 0x70000002
1371
1372
1373
1374 #define PF_MIPS_LOCAL 0x10000000
1375
1376
1377
1378 #define DT_MIPS_RLD_VERSION 0x70000001
1379 #define DT_MIPS_TIME_STAMP 0x70000002
1380 #define DT_MIPS_ICHECKSUM 0x70000003
1381 #define DT_MIPS_IVERSION 0x70000004
1382 #define DT_MIPS_FLAGS 0x70000005
1383 #define DT_MIPS_BASE_ADDRESS 0x70000006
1384 #define DT_MIPS_MSYM 0x70000007
1385 #define DT_MIPS_CONFLICT 0x70000008
1386 #define DT_MIPS_LIBLIST 0x70000009
1387 #define DT_MIPS_LOCAL_GOTNO 0x7000000a
1388 #define DT_MIPS_CONFLICTNO 0x7000000b
1389 #define DT_MIPS_LIBLISTNO 0x70000010
1390 #define DT_MIPS_SYMTABNO 0x70000011
1391 #define DT_MIPS_UNREFEXTNO 0x70000012
1392 #define DT_MIPS_GOTSYM 0x70000013
1393 #define DT_MIPS_HIPAGENO 0x70000014
1394 #define DT_MIPS_RLD_MAP 0x70000016
1395 #define DT_MIPS_DELTA_CLASS 0x70000017
1396 #define DT_MIPS_DELTA_CLASS_NO 0x70000018
1397
1398 #define DT_MIPS_DELTA_INSTANCE 0x70000019
1399 #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a
1400
1401 #define DT_MIPS_DELTA_RELOC 0x7000001b
1402 #define DT_MIPS_DELTA_RELOC_NO 0x7000001c
1403
1404 #define DT_MIPS_DELTA_SYM 0x7000001d
1405
1406 #define DT_MIPS_DELTA_SYM_NO 0x7000001e
1407
1408 #define DT_MIPS_DELTA_CLASSSYM 0x70000020
1409
1410 #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021
1411
1412 #define DT_MIPS_CXX_FLAGS 0x70000022
1413 #define DT_MIPS_PIXIE_INIT 0x70000023
1414 #define DT_MIPS_SYMBOL_LIB 0x70000024
1415 #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
1416 #define DT_MIPS_LOCAL_GOTIDX 0x70000026
1417 #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
1418 #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
1419 #define DT_MIPS_OPTIONS 0x70000029
1420 #define DT_MIPS_INTERFACE 0x7000002a
1421 #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
1422 #define DT_MIPS_INTERFACE_SIZE 0x7000002c
1423 #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d
1424
1425 #define DT_MIPS_PERF_SUFFIX 0x7000002e
1426
1427 #define DT_MIPS_COMPACT_SIZE 0x7000002f
1428 #define DT_MIPS_GP_VALUE 0x70000030
1429 #define DT_MIPS_AUX_DYNAMIC 0x70000031
1430 #define DT_MIPS_NUM 0x32
1431
1432
1433
1434 #define RHF_NONE 0
1435 #define RHF_QUICKSTART (1 << 0)
1436 #define RHF_NOTPOT (1 << 1)
1437 #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)
1438 #define RHF_NO_MOVE (1 << 3)
1439 #define RHF_SGI_ONLY (1 << 4)
1440 #define RHF_GUARANTEE_INIT (1 << 5)
1441 #define RHF_DELTA_C_PLUS_PLUS (1 << 6)
1442 #define RHF_GUARANTEE_START_INIT (1 << 7)
1443 #define RHF_PIXIE (1 << 8)
1444 #define RHF_DEFAULT_DELAY_LOAD (1 << 9)
1445 #define RHF_REQUICKSTART (1 << 10)
1446 #define RHF_REQUICKSTARTED (1 << 11)
1447 #define RHF_CORD (1 << 12)
1448 #define RHF_NO_UNRES_UNDEF (1 << 13)
1449 #define RHF_RLD_ORDER_SAFE (1 << 14)
1450
1451
1452
1453 typedef struct
1454 {
1455 Elf32_Word l_name;
1456 Elf32_Word l_time_stamp;
1457 Elf32_Word l_checksum;
1458 Elf32_Word l_version;
1459 Elf32_Word l_flags;
1460 } Elf32_Lib;
1461
1462 typedef struct
1463 {
1464 Elf64_Word l_name;
1465 Elf64_Word l_time_stamp;
1466 Elf64_Word l_checksum;
1467 Elf64_Word l_version;
1468 Elf64_Word l_flags;
1469 } Elf64_Lib;
1470
1471
1472
1473
1474 #define LL_NONE 0
1475 #define LL_EXACT_MATCH (1 << 0)
1476 #define LL_IGNORE_INT_VER (1 << 1)
1477 #define LL_REQUIRE_MINOR (1 << 2)
1478 #define LL_EXPORTS (1 << 3)
1479 #define LL_DELAY_LOAD (1 << 4)
1480 #define LL_DELTA (1 << 5)
1481
1482
1483
1484 typedef Elf32_Addr Elf32_Conflict;
1485
1486
1487
1488
1489
1490
1491 #define EF_PARISC_TRAPNIL 0x00010000
1492 #define EF_PARISC_EXT 0x00020000
1493 #define EF_PARISC_LSB 0x00040000
1494 #define EF_PARISC_WIDE 0x00080000
1495 #define EF_PARISC_NO_KABP 0x00100000
1496
1497 #define EF_PARISC_LAZYSWAP 0x00400000
1498 #define EF_PARISC_ARCH 0x0000ffff
1499
1500
1501
1502 #define EFA_PARISC_1_0 0x020b
1503 #define EFA_PARISC_1_1 0x0210
1504 #define EFA_PARISC_2_0 0x0214
1505
1506
1507
1508 #define SHN_PARISC_ANSI_COMMON 0xff00
1509
1510 #define SHN_PARISC_HUGE_COMMON 0xff01
1511
1512
1513
1514 #define SHT_PARISC_EXT 0x70000000
1515 #define SHT_PARISC_UNWIND 0x70000001
1516 #define SHT_PARISC_DOC 0x70000002
1517
1518
1519
1520 #define SHF_PARISC_SHORT 0x20000000
1521 #define SHF_PARISC_HUGE 0x40000000
1522 #define SHF_PARISC_SBP 0x80000000
1523
1524
1525
1526 #define STT_PARISC_MILLICODE 13
1527
1528 #define STT_HP_OPAQUE (STT_LOOS + 0x1)
1529 #define STT_HP_STUB (STT_LOOS + 0x2)
1530
1531
1532
1533 #define R_PARISC_NONE 0
1534 #define R_PARISC_DIR32 1
1535 #define R_PARISC_DIR21L 2
1536 #define R_PARISC_DIR17R 3
1537 #define R_PARISC_DIR17F 4
1538 #define R_PARISC_DIR14R 6
1539 #define R_PARISC_PCREL32 9
1540 #define R_PARISC_PCREL21L 10
1541 #define R_PARISC_PCREL17R 11
1542 #define R_PARISC_PCREL17F 12
1543 #define R_PARISC_PCREL14R 14
1544 #define R_PARISC_DPREL21L 18
1545 #define R_PARISC_DPREL14R 22
1546 #define R_PARISC_GPREL21L 26
1547 #define R_PARISC_GPREL14R 30
1548 #define R_PARISC_LTOFF21L 34
1549 #define R_PARISC_LTOFF14R 38
1550 #define R_PARISC_SECREL32 41
1551 #define R_PARISC_SEGBASE 48
1552 #define R_PARISC_SEGREL32 49
1553 #define R_PARISC_PLTOFF21L 50
1554 #define R_PARISC_PLTOFF14R 54
1555 #define R_PARISC_LTOFF_FPTR32 57
1556 #define R_PARISC_LTOFF_FPTR21L 58
1557 #define R_PARISC_LTOFF_FPTR14R 62
1558 #define R_PARISC_FPTR64 64
1559 #define R_PARISC_PLABEL32 65
1560 #define R_PARISC_PCREL64 72
1561 #define R_PARISC_PCREL22F 74
1562 #define R_PARISC_PCREL14WR 75
1563 #define R_PARISC_PCREL14DR 76
1564 #define R_PARISC_PCREL16F 77
1565 #define R_PARISC_PCREL16WF 78
1566 #define R_PARISC_PCREL16DF 79
1567 #define R_PARISC_DIR64 80
1568 #define R_PARISC_DIR14WR 83
1569 #define R_PARISC_DIR14DR 84
1570 #define R_PARISC_DIR16F 85
1571 #define R_PARISC_DIR16WF 86
1572 #define R_PARISC_DIR16DF 87
1573 #define R_PARISC_GPREL64 88
1574 #define R_PARISC_GPREL14WR 91
1575 #define R_PARISC_GPREL14DR 92
1576 #define R_PARISC_GPREL16F 93
1577 #define R_PARISC_GPREL16WF 94
1578 #define R_PARISC_GPREL16DF 95
1579 #define R_PARISC_LTOFF64 96
1580 #define R_PARISC_LTOFF14WR 99
1581 #define R_PARISC_LTOFF14DR 100
1582 #define R_PARISC_LTOFF16F 101
1583 #define R_PARISC_LTOFF16WF 102
1584 #define R_PARISC_LTOFF16DF 103
1585 #define R_PARISC_SECREL64 104
1586 #define R_PARISC_SEGREL64 112
1587 #define R_PARISC_PLTOFF14WR 115
1588 #define R_PARISC_PLTOFF14DR 116
1589 #define R_PARISC_PLTOFF16F 117
1590 #define R_PARISC_PLTOFF16WF 118
1591 #define R_PARISC_PLTOFF16DF 119
1592 #define R_PARISC_LTOFF_FPTR64 120
1593 #define R_PARISC_LTOFF_FPTR14WR 123
1594 #define R_PARISC_LTOFF_FPTR14DR 124
1595 #define R_PARISC_LTOFF_FPTR16F 125
1596 #define R_PARISC_LTOFF_FPTR16WF 126
1597 #define R_PARISC_LTOFF_FPTR16DF 127
1598 #define R_PARISC_LORESERVE 128
1599 #define R_PARISC_COPY 128
1600 #define R_PARISC_IPLT 129
1601 #define R_PARISC_EPLT 130
1602 #define R_PARISC_TPREL32 153
1603 #define R_PARISC_TPREL21L 154
1604 #define R_PARISC_TPREL14R 158
1605 #define R_PARISC_LTOFF_TP21L 162
1606 #define R_PARISC_LTOFF_TP14R 166
1607 #define R_PARISC_LTOFF_TP14F 167
1608 #define R_PARISC_TPREL64 216
1609 #define R_PARISC_TPREL14WR 219
1610 #define R_PARISC_TPREL14DR 220
1611 #define R_PARISC_TPREL16F 221
1612 #define R_PARISC_TPREL16WF 222
1613 #define R_PARISC_TPREL16DF 223
1614 #define R_PARISC_LTOFF_TP64 224
1615 #define R_PARISC_LTOFF_TP14WR 227
1616 #define R_PARISC_LTOFF_TP14DR 228
1617 #define R_PARISC_LTOFF_TP16F 229
1618 #define R_PARISC_LTOFF_TP16WF 230
1619 #define R_PARISC_LTOFF_TP16DF 231
1620 #define R_PARISC_HIRESERVE 255
1621
1622
1623
1624 #define PT_HP_TLS (PT_LOOS + 0x0)
1625 #define PT_HP_CORE_NONE (PT_LOOS + 0x1)
1626 #define PT_HP_CORE_VERSION (PT_LOOS + 0x2)
1627 #define PT_HP_CORE_KERNEL (PT_LOOS + 0x3)
1628 #define PT_HP_CORE_COMM (PT_LOOS + 0x4)
1629 #define PT_HP_CORE_PROC (PT_LOOS + 0x5)
1630 #define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6)
1631 #define PT_HP_CORE_STACK (PT_LOOS + 0x7)
1632 #define PT_HP_CORE_SHM (PT_LOOS + 0x8)
1633 #define PT_HP_CORE_MMF (PT_LOOS + 0x9)
1634 #define PT_HP_PARALLEL (PT_LOOS + 0x10)
1635 #define PT_HP_FASTBIND (PT_LOOS + 0x11)
1636 #define PT_HP_OPT_ANNOT (PT_LOOS + 0x12)
1637 #define PT_HP_HSL_ANNOT (PT_LOOS + 0x13)
1638 #define PT_HP_STACK (PT_LOOS + 0x14)
1639
1640 #define PT_PARISC_ARCHEXT 0x70000000
1641 #define PT_PARISC_UNWIND 0x70000001
1642
1643
1644
1645 #define PF_PARISC_SBP 0x08000000
1646
1647 #define PF_HP_PAGE_SIZE 0x00100000
1648 #define PF_HP_FAR_SHARED 0x00200000
1649 #define PF_HP_NEAR_SHARED 0x00400000
1650 #define PF_HP_CODE 0x01000000
1651 #define PF_HP_MODIFY 0x02000000
1652 #define PF_HP_LAZYSWAP 0x04000000
1653 #define PF_HP_SBP 0x08000000
1654
1655
1656
1657
1658
1659
1660 #define EF_ALPHA_32BIT 1
1661 #define EF_ALPHA_CANRELAX 2
1662
1663
1664
1665
1666 #define SHT_ALPHA_DEBUG 0x70000001
1667 #define SHT_ALPHA_REGINFO 0x70000002
1668
1669
1670
1671 #define SHF_ALPHA_GPREL 0x10000000
1672
1673
1674 #define STO_ALPHA_NOPV 0x80
1675 #define STO_ALPHA_STD_GPLOAD 0x88
1676
1677
1678
1679 #define R_ALPHA_NONE 0
1680 #define R_ALPHA_REFLONG 1
1681 #define R_ALPHA_REFQUAD 2
1682 #define R_ALPHA_GPREL32 3
1683 #define R_ALPHA_LITERAL 4
1684 #define R_ALPHA_LITUSE 5
1685 #define R_ALPHA_GPDISP 6
1686 #define R_ALPHA_BRADDR 7
1687 #define R_ALPHA_HINT 8
1688 #define R_ALPHA_SREL16 9
1689 #define R_ALPHA_SREL32 10
1690 #define R_ALPHA_SREL64 11
1691 #define R_ALPHA_OP_PUSH 12
1692 #define R_ALPHA_OP_STORE 13
1693 #define R_ALPHA_OP_PSUB 14
1694 #define R_ALPHA_OP_PRSHIFT 15
1695 #define R_ALPHA_GPVALUE 16
1696 #define R_ALPHA_GPRELHIGH 17
1697 #define R_ALPHA_GPRELLOW 18
1698 #define R_ALPHA_IMMED_GP_16 19
1699 #define R_ALPHA_IMMED_GP_HI32 20
1700 #define R_ALPHA_IMMED_SCN_HI32 21
1701 #define R_ALPHA_IMMED_BR_HI32 22
1702 #define R_ALPHA_IMMED_LO32 23
1703 #define R_ALPHA_COPY 24
1704 #define R_ALPHA_GLOB_DAT 25
1705 #define R_ALPHA_JMP_SLOT 26
1706 #define R_ALPHA_RELATIVE 27
1707
1708 #define R_ALPHA_NUM 28
1709
1710
1711
1712
1713
1714 #define EF_PPC_EMB 0x80000000
1715
1716
1717 #define EF_PPC_RELOCATABLE 0x00010000
1718 #define EF_PPC_RELOCATABLE_LIB 0x00008000
1719
1720
1721
1722 #define R_PPC_NONE 0
1723 #define R_PPC_ADDR32 1
1724 #define R_PPC_ADDR24 2
1725 #define R_PPC_ADDR16 3
1726 #define R_PPC_ADDR16_LO 4
1727 #define R_PPC_ADDR16_HI 5
1728 #define R_PPC_ADDR16_HA 6
1729 #define R_PPC_ADDR14 7
1730 #define R_PPC_ADDR14_BRTAKEN 8
1731 #define R_PPC_ADDR14_BRNTAKEN 9
1732 #define R_PPC_REL24 10
1733 #define R_PPC_REL14 11
1734 #define R_PPC_REL14_BRTAKEN 12
1735 #define R_PPC_REL14_BRNTAKEN 13
1736 #define R_PPC_GOT16 14
1737 #define R_PPC_GOT16_LO 15
1738 #define R_PPC_GOT16_HI 16
1739 #define R_PPC_GOT16_HA 17
1740 #define R_PPC_PLTREL24 18
1741 #define R_PPC_COPY 19
1742 #define R_PPC_GLOB_DAT 20
1743 #define R_PPC_JMP_SLOT 21
1744 #define R_PPC_RELATIVE 22
1745 #define R_PPC_LOCAL24PC 23
1746 #define R_PPC_UADDR32 24
1747 #define R_PPC_UADDR16 25
1748 #define R_PPC_REL32 26
1749 #define R_PPC_PLT32 27
1750 #define R_PPC_PLTREL32 28
1751 #define R_PPC_PLT16_LO 29
1752 #define R_PPC_PLT16_HI 30
1753 #define R_PPC_PLT16_HA 31
1754 #define R_PPC_SDAREL16 32
1755 #define R_PPC_SECTOFF 33
1756 #define R_PPC_SECTOFF_LO 34
1757 #define R_PPC_SECTOFF_HI 35
1758 #define R_PPC_SECTOFF_HA 36
1759
1760 #define R_PPC_NUM 37
1761
1762
1763
1764 #define R_PPC_EMB_NADDR32 101
1765 #define R_PPC_EMB_NADDR16 102
1766 #define R_PPC_EMB_NADDR16_LO 103
1767 #define R_PPC_EMB_NADDR16_HI 104
1768 #define R_PPC_EMB_NADDR16_HA 105
1769 #define R_PPC_EMB_SDAI16 106
1770 #define R_PPC_EMB_SDA2I16 107
1771 #define R_PPC_EMB_SDA2REL 108
1772 #define R_PPC_EMB_SDA21 109
1773 #define R_PPC_EMB_MRKREF 110
1774 #define R_PPC_EMB_RELSEC16 111
1775 #define R_PPC_EMB_RELST_LO 112
1776 #define R_PPC_EMB_RELST_HI 113
1777 #define R_PPC_EMB_RELST_HA 114
1778 #define R_PPC_EMB_BIT_FLD 115
1779 #define R_PPC_EMB_RELSDA 116
1780
1781
1782 #define R_PPC_DIAB_SDA21_LO 180
1783 #define R_PPC_DIAB_SDA21_HI 181
1784 #define R_PPC_DIAB_SDA21_HA 182
1785 #define R_PPC_DIAB_RELSDA_LO 183
1786 #define R_PPC_DIAB_RELSDA_HI 184
1787 #define R_PPC_DIAB_RELSDA_HA 185
1788
1789
1790
1791 #define R_PPC_TOC16 255
1792
1793
1794
1795
1796
1797 #define EF_ARM_RELEXEC 0x01
1798 #define EF_ARM_HASENTRY 0x02
1799 #define EF_ARM_INTERWORK 0x04
1800 #define EF_ARM_APCS_26 0x08
1801 #define EF_ARM_APCS_FLOAT 0x10
1802 #define EF_ARM_PIC 0x20
1803 #define EF_ARM_ALIGN8 0x40
1804 #define EF_ARM_NEW_ABI 0x80
1805 #define EF_ARM_OLD_ABI 0x100
1806
1807
1808
1809 #define EF_ARM_SYMSARESORTED 0x04
1810 #define EF_ARM_DYNSYMSUSESEGIDX 0x08
1811 #define EF_ARM_MAPSYMSFIRST 0x10
1812 #define EF_ARM_EABIMASK 0XFF000000
1813
1814 #define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK)
1815 #define EF_ARM_EABI_UNKNOWN 0x00000000
1816 #define EF_ARM_EABI_VER1 0x01000000
1817 #define EF_ARM_EABI_VER2 0x02000000
1818
1819
1820 #define STT_ARM_TFUNC 0xd
1821
1822
1823 #define SHF_ARM_ENTRYSECT 0x10000000
1824 #define SHF_ARM_COMDEF 0x80000000
1825
1826
1827
1828 #define PF_ARM_SB 0x10000000
1829
1830
1831
1832 #define R_ARM_NONE 0
1833 #define R_ARM_PC24 1
1834 #define R_ARM_ABS32 2
1835 #define R_ARM_REL32 3
1836 #define R_ARM_PC13 4
1837 #define R_ARM_ABS16 5
1838 #define R_ARM_ABS12 6
1839 #define R_ARM_THM_ABS5 7
1840 #define R_ARM_ABS8 8
1841 #define R_ARM_SBREL32 9
1842 #define R_ARM_THM_PC22 10
1843 #define R_ARM_THM_PC8 11
1844 #define R_ARM_AMP_VCALL9 12
1845 #define R_ARM_SWI24 13
1846 #define R_ARM_THM_SWI8 14
1847 #define R_ARM_XPC25 15
1848 #define R_ARM_THM_XPC22 16
1849 #define R_ARM_COPY 20
1850 #define R_ARM_GLOB_DAT 21
1851 #define R_ARM_JUMP_SLOT 22
1852 #define R_ARM_RELATIVE 23
1853 #define R_ARM_GOTOFF 24
1854 #define R_ARM_GOTPC 25
1855 #define R_ARM_GOT32 26
1856 #define R_ARM_PLT32 27
1857 #define R_ARM_ALU_PCREL_7_0 32
1858 #define R_ARM_ALU_PCREL_15_8 33
1859 #define R_ARM_ALU_PCREL_23_15 34
1860 #define R_ARM_LDR_SBREL_11_0 35
1861 #define R_ARM_ALU_SBREL_19_12 36
1862 #define R_ARM_ALU_SBREL_27_20 37
1863 #define R_ARM_GNU_VTENTRY 100
1864 #define R_ARM_GNU_VTINHERIT 101
1865 #define R_ARM_THM_PC11 102
1866 #define R_ARM_THM_PC9 103
1867 #define R_ARM_RXPC25 249
1868 #define R_ARM_RSBREL32 250
1869 #define R_ARM_THM_RPC22 251
1870 #define R_ARM_RREL32 252
1871 #define R_ARM_RABS22 253
1872 #define R_ARM_RPC24 254
1873 #define R_ARM_RBASE 255
1874
1875 #define R_ARM_NUM 256
1876
1877
1878
1879
1880 #define EF_IA_64_MASKOS 0x0000000f
1881 #define EF_IA_64_ABI64 0x00000010
1882 #define EF_IA_64_ARCH 0xff000000
1883
1884
1885 #define PT_IA_64_ARCHEXT (PT_LOPROC + 0)
1886 #define PT_IA_64_UNWIND (PT_LOPROC + 1)
1887
1888
1889 #define PF_IA_64_NORECOV 0x80000000
1890
1891
1892 #define SHT_IA_64_EXT (SHT_LOPROC + 0)
1893 #define SHT_IA_64_UNWIND (SHT_LOPROC + 1)
1894
1895
1896 #define SHF_IA_64_SHORT 0x10000000
1897 #define SHF_IA_64_NORECOV 0x20000000
1898
1899
1900 #define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0)
1901 #define DT_IA_64_NUM 1
1902
1903
1904 #define R_IA64_NONE 0x00
1905 #define R_IA64_IMM14 0x21
1906 #define R_IA64_IMM22 0x22
1907 #define R_IA64_IMM64 0x23
1908 #define R_IA64_DIR32MSB 0x24
1909 #define R_IA64_DIR32LSB 0x25
1910 #define R_IA64_DIR64MSB 0x26
1911 #define R_IA64_DIR64LSB 0x27
1912 #define R_IA64_GPREL22 0x2a
1913 #define R_IA64_GPREL64I 0x2b
1914 #define R_IA64_GPREL32MSB 0x2c
1915 #define R_IA64_GPREL32LSB 0x2d
1916 #define R_IA64_GPREL64MSB 0x2e
1917 #define R_IA64_GPREL64LSB 0x2f
1918 #define R_IA64_LTOFF22 0x32
1919 #define R_IA64_LTOFF64I 0x33
1920 #define R_IA64_PLTOFF22 0x3a
1921 #define R_IA64_PLTOFF64I 0x3b
1922 #define R_IA64_PLTOFF64MSB 0x3e
1923 #define R_IA64_PLTOFF64LSB 0x3f
1924 #define R_IA64_FPTR64I 0x43
1925 #define R_IA64_FPTR32MSB 0x44
1926 #define R_IA64_FPTR32LSB 0x45
1927 #define R_IA64_FPTR64MSB 0x46
1928 #define R_IA64_FPTR64LSB 0x47
1929 #define R_IA64_PCREL60B 0x48
1930 #define R_IA64_PCREL21B 0x49
1931 #define R_IA64_PCREL21M 0x4a
1932 #define R_IA64_PCREL21F 0x4b
1933 #define R_IA64_PCREL32MSB 0x4c
1934 #define R_IA64_PCREL32LSB 0x4d
1935 #define R_IA64_PCREL64MSB 0x4e
1936 #define R_IA64_PCREL64LSB 0x4f
1937 #define R_IA64_LTOFF_FPTR22 0x52
1938 #define R_IA64_LTOFF_FPTR64I 0x53
1939 #define R_IA64_LTOFF_FPTR32MSB 0x54
1940 #define R_IA64_LTOFF_FPTR32LSB 0x55
1941 #define R_IA64_LTOFF_FPTR64MSB 0x56
1942 #define R_IA64_LTOFF_FPTR64LSB 0x57
1943 #define R_IA64_SEGREL32MSB 0x5c
1944 #define R_IA64_SEGREL32LSB 0x5d
1945 #define R_IA64_SEGREL64MSB 0x5e
1946 #define R_IA64_SEGREL64LSB 0x5f
1947 #define R_IA64_SECREL32MSB 0x64
1948 #define R_IA64_SECREL32LSB 0x65
1949 #define R_IA64_SECREL64MSB 0x66
1950 #define R_IA64_SECREL64LSB 0x67
1951 #define R_IA64_REL32MSB 0x6c
1952 #define R_IA64_REL32LSB 0x6d
1953 #define R_IA64_REL64MSB 0x6e
1954 #define R_IA64_REL64LSB 0x6f
1955 #define R_IA64_LTV32MSB 0x74
1956 #define R_IA64_LTV32LSB 0x75
1957 #define R_IA64_LTV64MSB 0x76
1958 #define R_IA64_LTV64LSB 0x77
1959 #define R_IA64_PCREL21BI 0x79
1960 #define R_IA64_PCREL22 0x7a
1961 #define R_IA64_PCREL64I 0x7b
1962 #define R_IA64_IPLTMSB 0x80
1963 #define R_IA64_IPLTLSB 0x81
1964 #define R_IA64_COPY 0x84
1965 #define R_IA64_SUB 0x85
1966 #define R_IA64_LTOFF22X 0x86
1967 #define R_IA64_LDXMOV 0x87
1968 #define R_IA64_TPREL14 0x91
1969 #define R_IA64_TPREL22 0x92
1970 #define R_IA64_TPREL64I 0x93
1971 #define R_IA64_TPREL64MSB 0x96
1972 #define R_IA64_TPREL64LSB 0x97
1973 #define R_IA64_LTOFF_TPREL22 0x9a
1974 #define R_IA64_DTPMOD64MSB 0xa6
1975 #define R_IA64_DTPMOD64LSB 0xa7
1976 #define R_IA64_LTOFF_DTPMOD22 0xaa
1977 #define R_IA64_DTPREL14 0xb1
1978 #define R_IA64_DTPREL22 0xb2
1979 #define R_IA64_DTPREL64I 0xb3
1980 #define R_IA64_DTPREL32MSB 0xb4
1981 #define R_IA64_DTPREL32LSB 0xb5
1982 #define R_IA64_DTPREL64MSB 0xb6
1983 #define R_IA64_DTPREL64LSB 0xb7
1984 #define R_IA64_LTOFF_DTPREL22 0xba
1985
1986
1987
1988
1989 #define R_SH_NONE 0
1990 #define R_SH_DIR32 1
1991 #define R_SH_REL32 2
1992 #define R_SH_DIR8WPN 3
1993 #define R_SH_IND12W 4
1994 #define R_SH_DIR8WPL 5
1995 #define R_SH_DIR8WPZ 6
1996 #define R_SH_DIR8BP 7
1997 #define R_SH_DIR8W 8
1998 #define R_SH_DIR8L 9
1999 #define R_SH_SWITCH16 25
2000 #define R_SH_SWITCH32 26
2001 #define R_SH_USES 27
2002 #define R_SH_COUNT 28
2003 #define R_SH_ALIGN 29
2004 #define R_SH_CODE 30
2005 #define R_SH_DATA 31
2006 #define R_SH_LABEL 32
2007 #define R_SH_SWITCH8 33
2008 #define R_SH_GNU_VTINHERIT 34
2009 #define R_SH_GNU_VTENTRY 35
2010 #define R_SH_GOT32 160
2011 #define R_SH_PLT32 161
2012 #define R_SH_COPY 162
2013 #define R_SH_GLOB_DAT 163
2014 #define R_SH_JMP_SLOT 164
2015 #define R_SH_RELATIVE 165
2016 #define R_SH_GOTOFF 166
2017 #define R_SH_GOTPC 167
2018
2019 #define R_SH_NUM 256
2020
2021
2022
2023 #define R_390_NONE 0
2024 #define R_390_8 1
2025 #define R_390_12 2
2026 #define R_390_16 3
2027 #define R_390_32 4
2028 #define R_390_PC32 5
2029 #define R_390_GOT12 6
2030 #define R_390_GOT32 7
2031 #define R_390_PLT32 8
2032 #define R_390_COPY 9
2033 #define R_390_GLOB_DAT 10
2034 #define R_390_JMP_SLOT 11
2035 #define R_390_RELATIVE 12
2036 #define R_390_GOTOFF 13
2037 #define R_390_GOTPC 14
2038 #define R_390_GOT16 15
2039 #define R_390_PC16 16
2040 #define R_390_PC16DBL 17
2041 #define R_390_PLT16DBL 18
2042 #define R_390_PC32DBL 19
2043 #define R_390_PLT32DBL 20
2044 #define R_390_GOTPCDBL 21
2045 #define R_390_64 22
2046 #define R_390_PC64 23
2047 #define R_390_GOT64 24
2048 #define R_390_PLT64 25
2049 #define R_390_GOTENT 26
2050
2051
2052 #define R_390_NUM 19
2053
2054
2055 #define R_CRIS_NONE 0
2056 #define R_CRIS_8 1
2057 #define R_CRIS_16 2
2058 #define R_CRIS_32 3
2059 #define R_CRIS_8_PCREL 4
2060 #define R_CRIS_16_PCREL 5
2061 #define R_CRIS_32_PCREL 6
2062 #define R_CRIS_GNU_VTINHERIT 7
2063 #define R_CRIS_GNU_VTENTRY 8
2064 #define R_CRIS_COPY 9
2065 #define R_CRIS_GLOB_DAT 10
2066 #define R_CRIS_JUMP_SLOT 11
2067 #define R_CRIS_RELATIVE 12
2068 #define R_CRIS_16_GOT 13
2069 #define R_CRIS_32_GOT 14
2070 #define R_CRIS_16_GOTPLT 15
2071 #define R_CRIS_32_GOTPLT 16
2072 #define R_CRIS_32_GOTREL 17
2073 #define R_CRIS_32_PLT_GOTREL 18
2074 #define R_CRIS_32_PLT_PCREL 19
2075
2076 #define R_CRIS_NUM 20
2077
2078 #endif
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089