elf.h
0001: 
0002: 
0003: 
0004: 
0005: 
0006: 
0007: 
0008: 
0009: 
0010: 
0011: 
0012: 
0013: 
0014: 
0015: 
0016: 
0017: 
0018: 
0019: 
0020: 
0021: #ifndef _ELF_H
0022: #define _ELF_H 1
0023: 
0024: #include <features.h>
0025: 
0026: __BEGIN_DECLS
0027: 
0028: 
0029: 
0030: #include <stdint.h>
0031: 
0032: 
0033: typedef uint16_t Elf32_Half;
0034: typedef uint16_t Elf64_Half;
0035: 
0036: 
0037: typedef uint32_t Elf32_Word;
0038: typedef int32_t  Elf32_Sword;
0039: typedef uint32_t Elf64_Word;
0040: typedef int32_t  Elf64_Sword;
0041: 
0042: 
0043: typedef uint64_t Elf32_Xword;
0044: typedef int64_t  Elf32_Sxword;
0045: typedef uint64_t Elf64_Xword;
0046: typedef int64_t  Elf64_Sxword;
0047: 
0048: 
0049: typedef uint32_t Elf32_Addr;
0050: typedef uint64_t Elf64_Addr;
0051: 
0052: 
0053: typedef uint32_t Elf32_Off;
0054: typedef uint64_t Elf64_Off;
0055: 
0056: 
0057: typedef uint16_t Elf32_Section;
0058: typedef uint16_t Elf64_Section;
0059: 
0060: 
0061: typedef Elf32_Half Elf32_Versym;
0062: typedef Elf64_Half Elf64_Versym;
0063: 
0064: 
0065: 
0066: 
0067: #define EI_NIDENT (16)
0068: 
0069: typedef struct
0070: {
0071:   unsigned char e_ident[EI_NIDENT];     
0072:   Elf32_Half    e_type;                 
0073:   Elf32_Half    e_machine;              
0074:   Elf32_Word    e_version;              
0075:   Elf32_Addr    e_entry;                
0076:   Elf32_Off     e_phoff;                
0077:   Elf32_Off     e_shoff;                
0078:   Elf32_Word    e_flags;                
0079:   Elf32_Half    e_ehsize;               
0080:   Elf32_Half    e_phentsize;            
0081:   Elf32_Half    e_phnum;                
0082:   Elf32_Half    e_shentsize;            
0083:   Elf32_Half    e_shnum;                
0084:   Elf32_Half    e_shstrndx;             
0085: } Elf32_Ehdr;
0086: 
0087: typedef struct
0088: {
0089:   unsigned char e_ident[EI_NIDENT];     
0090:   Elf64_Half    e_type;                 
0091:   Elf64_Half    e_machine;              
0092:   Elf64_Word    e_version;              
0093:   Elf64_Addr    e_entry;                
0094:   Elf64_Off     e_phoff;                
0095:   Elf64_Off     e_shoff;                
0096:   Elf64_Word    e_flags;                
0097:   Elf64_Half    e_ehsize;               
0098:   Elf64_Half    e_phentsize;            
0099:   Elf64_Half    e_phnum;                
0100:   Elf64_Half    e_shentsize;            
0101:   Elf64_Half    e_shnum;                
0102:   Elf64_Half    e_shstrndx;             
0103: } Elf64_Ehdr;
0104: 
0105: 
0106: 
0107: 
0108: 
0109: #define EI_MAG0         0               
0110: #define ELFMAG0         0x7f            
0111: 
0112: #define EI_MAG1         1               
0113: #define ELFMAG1         'E'             
0114: 
0115: #define EI_MAG2         2               
0116: #define ELFMAG2         'L'             
0117: 
0118: #define EI_MAG3         3               
0119: #define ELFMAG3         'F'             
0120: 
0121: 
0122: #define ELFMAG          "\177ELF"
0123: #define SELFMAG         4
0124: 
0125: #define EI_CLASS        4               
0126: #define ELFCLASSNONE    0               
0127: #define ELFCLASS32      1               
0128: #define ELFCLASS64      2               
0129: #define ELFCLASSNUM     3
0130: 
0131: #define EI_DATA         5               
0132: #define ELFDATANONE     0               
0133: #define ELFDATA2LSB     1               
0134: #define ELFDATA2MSB     2               
0135: #define ELFDATANUM      3
0136: 
0137: #define EI_VERSION      6               
0138:                                         
0139: 
0140: #define EI_OSABI        7               
0141: #define ELFOSABI_NONE           0       
0142: #define ELFOSABI_SYSV           0       
0143: #define ELFOSABI_HPUX           1       
0144: #define ELFOSABI_NETBSD         2       
0145: #define ELFOSABI_GNU            3       
0146: #define ELFOSABI_LINUX          ELFOSABI_GNU 
0147: #define ELFOSABI_SOLARIS        6       
0148: #define ELFOSABI_AIX            7       
0149: #define ELFOSABI_IRIX           8       
0150: #define ELFOSABI_FREEBSD        9       
0151: #define ELFOSABI_TRU64          10      
0152: #define ELFOSABI_MODESTO        11      
0153: #define ELFOSABI_OPENBSD        12      
0154: #define ELFOSABI_ARM_AEABI      64      
0155: #define ELFOSABI_ARM            97      
0156: #define ELFOSABI_STANDALONE     255     
0157: 
0158: #define EI_ABIVERSION   8               
0159: 
0160: #define EI_PAD          9               
0161: 
0162: 
0163: 
0164: #define ET_NONE         0               
0165: #define ET_REL          1               
0166: #define ET_EXEC         2               
0167: #define ET_DYN          3               
0168: #define ET_CORE         4               
0169: #define ET_NUM          5               
0170: #define ET_LOOS         0xfe00          
0171: #define ET_HIOS         0xfeff          
0172: #define ET_LOPROC       0xff00          
0173: #define ET_HIPROC       0xffff          
0174: 
0175: 
0176: 
0177: #define EM_NONE          0              
0178: #define EM_M32           1              
0179: #define EM_SPARC         2              
0180: #define EM_386           3              
0181: #define EM_68K           4              
0182: #define EM_88K           5              
0183: #define EM_860           7              
0184: #define EM_MIPS          8              
0185: #define EM_S370          9              
0186: #define EM_MIPS_RS3_LE  10              
0187: 
0188: #define EM_PARISC       15              
0189: #define EM_VPP500       17              
0190: #define EM_SPARC32PLUS  18              
0191: #define EM_960          19              
0192: #define EM_PPC          20              
0193: #define EM_PPC64        21              
0194: #define EM_S390         22              
0195: 
0196: #define EM_V800         36              
0197: #define EM_FR20         37              
0198: #define EM_RH32         38              
0199: #define EM_RCE          39              
0200: #define EM_ARM          40              
0201: #define EM_FAKE_ALPHA   41              
0202: #define EM_SH           42              
0203: #define EM_SPARCV9      43              
0204: #define EM_TRICORE      44              
0205: #define EM_ARC          45              
0206: #define EM_H8_300       46              
0207: #define EM_H8_300H      47              
0208: #define EM_H8S          48              
0209: #define EM_H8_500       49              
0210: #define EM_IA_64        50              
0211: #define EM_MIPS_X       51              
0212: #define EM_COLDFIRE     52              
0213: #define EM_68HC12       53              
0214: #define EM_MMA          54              
0215: #define EM_PCP          55              
0216: #define EM_NCPU         56              
0217: #define EM_NDR1         57              
0218: #define EM_STARCORE     58              
0219: #define EM_ME16         59              
0220: #define EM_ST100        60              
0221: #define EM_TINYJ        61              
0222: #define EM_X86_64       62              
0223: #define EM_PDSP         63              
0224: 
0225: #define EM_FX66         66              
0226: #define EM_ST9PLUS      67              
0227: #define EM_ST7          68              
0228: #define EM_68HC16       69              
0229: #define EM_68HC11       70              
0230: #define EM_68HC08       71              
0231: #define EM_68HC05       72              
0232: #define EM_SVX          73              
0233: #define EM_ST19         74              
0234: #define EM_VAX          75              
0235: #define EM_CRIS         76              
0236: #define EM_JAVELIN      77              
0237: #define EM_FIREPATH     78              
0238: #define EM_ZSP          79              
0239: #define EM_MMIX         80              
0240: #define EM_HUANY        81              
0241: #define EM_PRISM        82              
0242: #define EM_AVR          83              
0243: #define EM_FR30         84              
0244: #define EM_D10V         85              
0245: #define EM_D30V         86              
0246: #define EM_V850         87              
0247: #define EM_M32R         88              
0248: #define EM_MN10300      89              
0249: #define EM_MN10200      90              
0250: #define EM_PJ           91              
0251: #define EM_OPENRISC     92              
0252: #define EM_ARC_A5       93              
0253: #define EM_XTENSA       94              
0254: #define EM_NUM          95
0255: 
0256: 
0257: 
0258: 
0259: 
0260: #define EM_ALPHA        0x9026
0261: 
0262: 
0263: 
0264: #define EV_NONE         0               
0265: #define EV_CURRENT      1               
0266: #define EV_NUM          2
0267: 
0268: 
0269: 
0270: typedef struct
0271: {
0272:   Elf32_Word    sh_name;                
0273:   Elf32_Word    sh_type;                
0274:   Elf32_Word    sh_flags;               
0275:   Elf32_Addr    sh_addr;                
0276:   Elf32_Off     sh_offset;              
0277:   Elf32_Word    sh_size;                
0278:   Elf32_Word    sh_link;                
0279:   Elf32_Word    sh_info;                
0280:   Elf32_Word    sh_addralign;           
0281:   Elf32_Word    sh_entsize;             
0282: } Elf32_Shdr;
0283: 
0284: typedef struct
0285: {
0286:   Elf64_Word    sh_name;                
0287:   Elf64_Word    sh_type;                
0288:   Elf64_Xword   sh_flags;               
0289:   Elf64_Addr    sh_addr;                
0290:   Elf64_Off     sh_offset;              
0291:   Elf64_Xword   sh_size;                
0292:   Elf64_Word    sh_link;                
0293:   Elf64_Word    sh_info;                
0294:   Elf64_Xword   sh_addralign;           
0295:   Elf64_Xword   sh_entsize;             
0296: } Elf64_Shdr;
0297: 
0298: 
0299: 
0300: #define SHN_UNDEF       0               
0301: #define SHN_LORESERVE   0xff00          
0302: #define SHN_LOPROC      0xff00          
0303: #define SHN_BEFORE      0xff00          
0304: 
0305: #define SHN_AFTER       0xff01          
0306: 
0307: #define SHN_HIPROC      0xff1f          
0308: #define SHN_LOOS        0xff20          
0309: #define SHN_HIOS        0xff3f          
0310: #define SHN_ABS         0xfff1          
0311: #define SHN_COMMON      0xfff2          
0312: #define SHN_XINDEX      0xffff          
0313: #define SHN_HIRESERVE   0xffff          
0314: 
0315: 
0316: 
0317: #define SHT_NULL          0             
0318: #define SHT_PROGBITS      1             
0319: #define SHT_SYMTAB        2             
0320: #define SHT_STRTAB        3             
0321: #define SHT_RELA          4             
0322: #define SHT_HASH          5             
0323: #define SHT_DYNAMIC       6             
0324: #define SHT_NOTE          7             
0325: #define SHT_NOBITS        8             
0326: #define SHT_REL           9             
0327: #define SHT_SHLIB         10            
0328: #define SHT_DYNSYM        11            
0329: #define SHT_INIT_ARRAY    14            
0330: #define SHT_FINI_ARRAY    15            
0331: #define SHT_PREINIT_ARRAY 16            
0332: #define SHT_GROUP         17            
0333: #define SHT_SYMTAB_SHNDX  18            
0334: #define SHT_NUM           19            
0335: #define SHT_LOOS          0x60000000    
0336: #define SHT_GNU_ATTRIBUTES 0x6ffffff5   
0337: #define SHT_GNU_HASH      0x6ffffff6    
0338: #define SHT_GNU_LIBLIST   0x6ffffff7    
0339: #define SHT_CHECKSUM      0x6ffffff8    
0340: #define SHT_LOSUNW        0x6ffffffa    
0341: #define SHT_SUNW_move     0x6ffffffa
0342: #define SHT_SUNW_COMDAT   0x6ffffffb
0343: #define SHT_SUNW_syminfo  0x6ffffffc
0344: #define SHT_GNU_verdef    0x6ffffffd    
0345: #define SHT_GNU_verneed   0x6ffffffe    
0346: #define SHT_GNU_versym    0x6fffffff    
0347: #define SHT_HISUNW        0x6fffffff    
0348: #define SHT_HIOS          0x6fffffff    
0349: #define SHT_LOPROC        0x70000000    
0350: #define SHT_HIPROC        0x7fffffff    
0351: #define SHT_LOUSER        0x80000000    
0352: #define SHT_HIUSER        0x8fffffff    
0353: 
0354: 
0355: 
0356: #define SHF_WRITE            (1 << 0)   
0357: #define SHF_ALLOC            (1 << 1)   
0358: #define SHF_EXECINSTR        (1 << 2)   
0359: #define SHF_MERGE            (1 << 4)   
0360: #define SHF_STRINGS          (1 << 5)   
0361: #define SHF_INFO_LINK        (1 << 6)   
0362: #define SHF_LINK_ORDER       (1 << 7)   
0363: #define SHF_OS_NONCONFORMING (1 << 8)   
0364: 
0365: #define SHF_GROUP            (1 << 9)   
0366: #define SHF_TLS              (1 << 10)  
0367: #define SHF_MASKOS           0x0ff00000 
0368: #define SHF_MASKPROC         0xf0000000 
0369: #define SHF_ORDERED          (1 << 30)  
0370: 
0371: #define SHF_EXCLUDE          (1 << 31)  
0372: 
0373: 
0374: 
0375: #define GRP_COMDAT      0x1             
0376: 
0377: 
0378: 
0379: typedef struct
0380: {
0381:   Elf32_Word    st_name;                
0382:   Elf32_Addr    st_value;               
0383:   Elf32_Word    st_size;                
0384:   unsigned char st_info;                
0385:   unsigned char st_other;               
0386:   Elf32_Section st_shndx;               
0387: } Elf32_Sym;
0388: 
0389: typedef struct
0390: {
0391:   Elf64_Word    st_name;                
0392:   unsigned char st_info;                
0393:   unsigned char st_other;               
0394:   Elf64_Section st_shndx;               
0395:   Elf64_Addr    st_value;               
0396:   Elf64_Xword   st_size;                
0397: } Elf64_Sym;
0398: 
0399: 
0400: 
0401: 
0402: typedef struct
0403: {
0404:   Elf32_Half si_boundto;                
0405:   Elf32_Half si_flags;                  
0406: } Elf32_Syminfo;
0407: 
0408: typedef struct
0409: {
0410:   Elf64_Half si_boundto;                
0411:   Elf64_Half si_flags;                  
0412: } Elf64_Syminfo;
0413: 
0414: 
0415: #define SYMINFO_BT_SELF         0xffff  
0416: #define SYMINFO_BT_PARENT       0xfffe  
0417: #define SYMINFO_BT_LOWRESERVE   0xff00  
0418: 
0419: 
0420: #define SYMINFO_FLG_DIRECT      0x0001  
0421: #define SYMINFO_FLG_PASSTHRU    0x0002  
0422: #define SYMINFO_FLG_COPY        0x0004  
0423: #define SYMINFO_FLG_LAZYLOAD    0x0008  
0424: 
0425: 
0426: #define SYMINFO_NONE            0
0427: #define SYMINFO_CURRENT         1
0428: #define SYMINFO_NUM             2
0429: 
0430: 
0431: 
0432: 
0433: #define ELF32_ST_BIND(val)              (((unsigned char) (val)) >> 4)
0434: #define ELF32_ST_TYPE(val)              ((val) & 0xf)
0435: #define ELF32_ST_INFO(bind, type)       (((bind) << 4) + ((type) & 0xf))
0436: 
0437: 
0438: #define ELF64_ST_BIND(val)              ELF32_ST_BIND (val)
0439: #define ELF64_ST_TYPE(val)              ELF32_ST_TYPE (val)
0440: #define ELF64_ST_INFO(bind, type)       ELF32_ST_INFO ((bind), (type))
0441: 
0442: 
0443: 
0444: #define STB_LOCAL       0               
0445: #define STB_GLOBAL      1               
0446: #define STB_WEAK        2               
0447: #define STB_NUM         3               
0448: #define STB_LOOS        10              
0449: #define STB_GNU_UNIQUE  10              
0450: #define STB_HIOS        12              
0451: #define STB_LOPROC      13              
0452: #define STB_HIPROC      15              
0453: 
0454: 
0455: 
0456: #define STT_NOTYPE      0               
0457: #define STT_OBJECT      1               
0458: #define STT_FUNC        2               
0459: #define STT_SECTION     3               
0460: #define STT_FILE        4               
0461: #define STT_COMMON      5               
0462: #define STT_TLS         6               
0463: #define STT_NUM         7               
0464: #define STT_LOOS        10              
0465: #define STT_GNU_IFUNC   10              
0466: #define STT_HIOS        12              
0467: #define STT_LOPROC      13              
0468: #define STT_HIPROC      15              
0469: 
0470: 
0471: 
0472: 
0473: 
0474: 
0475: #define STN_UNDEF       0               
0476: 
0477: 
0478: 
0479: 
0480: #define ELF32_ST_VISIBILITY(o)  ((o) & 0x03)
0481: 
0482: 
0483: #define ELF64_ST_VISIBILITY(o)  ELF32_ST_VISIBILITY (o)
0484: 
0485: 
0486: #define STV_DEFAULT     0               
0487: #define STV_INTERNAL    1               
0488: #define STV_HIDDEN      2               
0489: #define STV_PROTECTED   3               
0490: 
0491: 
0492: 
0493: 
0494: typedef struct
0495: {
0496:   Elf32_Addr    r_offset;               
0497:   Elf32_Word    r_info;                 
0498: } Elf32_Rel;
0499: 
0500: 
0501: 
0502: 
0503: 
0504: 
0505: typedef struct
0506: {
0507:   Elf64_Addr    r_offset;               
0508:   Elf64_Xword   r_info;                 
0509: } Elf64_Rel;
0510: 
0511: 
0512: 
0513: typedef struct
0514: {
0515:   Elf32_Addr    r_offset;               
0516:   Elf32_Word    r_info;                 
0517:   Elf32_Sword   r_addend;               
0518: } Elf32_Rela;
0519: 
0520: typedef struct
0521: {
0522:   Elf64_Addr    r_offset;               
0523:   Elf64_Xword   r_info;                 
0524:   Elf64_Sxword  r_addend;               
0525: } Elf64_Rela;
0526: 
0527: 
0528: 
0529: #define ELF32_R_SYM(val)                ((val) >> 8)
0530: #define ELF32_R_TYPE(val)               ((val) & 0xff)
0531: #define ELF32_R_INFO(sym, type)         (((sym) << 8) + ((type) & 0xff))
0532: 
0533: #define ELF64_R_SYM(i)                  ((i) >> 32)
0534: #define ELF64_R_TYPE(i)                 ((i) & 0xffffffff)
0535: #define ELF64_R_INFO(sym,type)          ((((Elf64_Xword) (sym)) << 32) + (type))
0536: 
0537: 
0538: 
0539: typedef struct
0540: {
0541:   Elf32_Word    p_type;                 
0542:   Elf32_Off     p_offset;               
0543:   Elf32_Addr    p_vaddr;                
0544:   Elf32_Addr    p_paddr;                
0545:   Elf32_Word    p_filesz;               
0546:   Elf32_Word    p_memsz;                
0547:   Elf32_Word    p_flags;                
0548:   Elf32_Word    p_align;                
0549: } Elf32_Phdr;
0550: 
0551: typedef struct
0552: {
0553:   Elf64_Word    p_type;                 
0554:   Elf64_Word    p_flags;                
0555:   Elf64_Off     p_offset;               
0556:   Elf64_Addr    p_vaddr;                
0557:   Elf64_Addr    p_paddr;                
0558:   Elf64_Xword   p_filesz;               
0559:   Elf64_Xword   p_memsz;                
0560:   Elf64_Xword   p_align;                
0561: } Elf64_Phdr;
0562: 
0563: 
0564: 
0565: 
0566: 
0567: #define PN_XNUM         0xffff
0568: 
0569: 
0570: 
0571: #define PT_NULL         0               
0572: #define PT_LOAD         1               
0573: #define PT_DYNAMIC      2               
0574: #define PT_INTERP       3               
0575: #define PT_NOTE         4               
0576: #define PT_SHLIB        5               
0577: #define PT_PHDR         6               
0578: #define PT_TLS          7               
0579: #define PT_NUM          8               
0580: #define PT_LOOS         0x60000000      
0581: #define PT_GNU_EH_FRAME 0x6474e550      
0582: #define PT_GNU_STACK    0x6474e551      
0583: #define PT_GNU_RELRO    0x6474e552      
0584: #define PT_LOSUNW       0x6ffffffa
0585: #define PT_SUNWBSS      0x6ffffffa      
0586: #define PT_SUNWSTACK    0x6ffffffb      
0587: #define PT_HISUNW       0x6fffffff
0588: #define PT_HIOS         0x6fffffff      
0589: #define PT_LOPROC       0x70000000      
0590: #define PT_HIPROC       0x7fffffff      
0591: 
0592: 
0593: 
0594: #define PF_X            (1 << 0)        
0595: #define PF_W            (1 << 1)        
0596: #define PF_R            (1 << 2)        
0597: #define PF_MASKOS       0x0ff00000      
0598: #define PF_MASKPROC     0xf0000000      
0599: 
0600: 
0601: 
0602: #define NT_PRSTATUS     1               
0603: #define NT_FPREGSET     2               
0604: #define NT_PRPSINFO     3               
0605: #define NT_PRXREG       4               
0606: #define NT_TASKSTRUCT   4               
0607: #define NT_PLATFORM     5               
0608: #define NT_AUXV         6               
0609: #define NT_GWINDOWS     7               
0610: #define NT_ASRS         8               
0611: #define NT_PSTATUS      10              
0612: #define NT_PSINFO       13              
0613: #define NT_PRCRED       14              
0614: #define NT_UTSNAME      15              
0615: #define NT_LWPSTATUS    16              
0616: #define NT_LWPSINFO     17              
0617: #define NT_PRFPXREG     20              
0618: #define NT_PRXFPREG     0x46e62b7f      
0619: #define NT_PPC_VMX      0x100           
0620: #define NT_PPC_SPE      0x101           
0621: #define NT_PPC_VSX      0x102           
0622: #define NT_386_TLS      0x200           
0623: #define NT_386_IOPERM   0x201           
0624: #define NT_X86_XSTATE   0x202           
0625: 
0626: 
0627: 
0628: #define NT_VERSION      1               
0629: 
0630: 
0631: 
0632: 
0633: typedef struct
0634: {
0635:   Elf32_Sword   d_tag;                  
0636:   union
0637:     {
0638:       Elf32_Word d_val;                 
0639:       Elf32_Addr d_ptr;                 
0640:     } d_un;
0641: } Elf32_Dyn;
0642: 
0643: typedef struct
0644: {
0645:   Elf64_Sxword  d_tag;                  
0646:   union
0647:     {
0648:       Elf64_Xword d_val;                
0649:       Elf64_Addr d_ptr;                 
0650:     } d_un;
0651: } Elf64_Dyn;
0652: 
0653: 
0654: 
0655: #define DT_NULL         0               
0656: #define DT_NEEDED       1               
0657: #define DT_PLTRELSZ     2               
0658: #define DT_PLTGOT       3               
0659: #define DT_HASH         4               
0660: #define DT_STRTAB       5               
0661: #define DT_SYMTAB       6               
0662: #define DT_RELA         7               
0663: #define DT_RELASZ       8               
0664: #define DT_RELAENT      9               
0665: #define DT_STRSZ        10              
0666: #define DT_SYMENT       11              
0667: #define DT_INIT         12              
0668: #define DT_FINI         13              
0669: #define DT_SONAME       14              
0670: #define DT_RPATH        15              
0671: #define DT_SYMBOLIC     16              
0672: #define DT_REL          17              
0673: #define DT_RELSZ        18              
0674: #define DT_RELENT       19              
0675: #define DT_PLTREL       20              
0676: #define DT_DEBUG        21              
0677: #define DT_TEXTREL      22              
0678: #define DT_JMPREL       23              
0679: #define DT_BIND_NOW     24              
0680: #define DT_INIT_ARRAY   25              
0681: #define DT_FINI_ARRAY   26              
0682: #define DT_INIT_ARRAYSZ 27              
0683: #define DT_FINI_ARRAYSZ 28              
0684: #define DT_RUNPATH      29              
0685: #define DT_FLAGS        30              
0686: #define DT_ENCODING     32              
0687: #define DT_PREINIT_ARRAY 32             
0688: #define DT_PREINIT_ARRAYSZ 33           
0689: #define DT_NUM          34              
0690: #define DT_LOOS         0x6000000d      
0691: #define DT_HIOS         0x6ffff000      
0692: #define DT_LOPROC       0x70000000      
0693: #define DT_HIPROC       0x7fffffff      
0694: #define DT_PROCNUM      DT_MIPS_NUM     
0695: 
0696: 
0697: 
0698: 
0699: #define DT_VALRNGLO     0x6ffffd00
0700: #define DT_GNU_PRELINKED 0x6ffffdf5     
0701: #define DT_GNU_CONFLICTSZ 0x6ffffdf6    
0702: #define DT_GNU_LIBLISTSZ 0x6ffffdf7     
0703: #define DT_CHECKSUM     0x6ffffdf8
0704: #define DT_PLTPADSZ     0x6ffffdf9
0705: #define DT_MOVEENT      0x6ffffdfa
0706: #define DT_MOVESZ       0x6ffffdfb
0707: #define DT_FEATURE_1    0x6ffffdfc      
0708: #define DT_POSFLAG_1    0x6ffffdfd      
0709: 
0710: #define DT_SYMINSZ      0x6ffffdfe      
0711: #define DT_SYMINENT     0x6ffffdff      
0712: #define DT_VALRNGHI     0x6ffffdff
0713: #define DT_VALTAGIDX(tag)       (DT_VALRNGHI - (tag))   
0714: #define DT_VALNUM 12
0715: 
0716: 
0717: 
0718: 
0719: 
0720: 
0721: #define DT_ADDRRNGLO    0x6ffffe00
0722: #define DT_GNU_HASH     0x6ffffef5      
0723: #define DT_TLSDESC_PLT  0x6ffffef6
0724: #define DT_TLSDESC_GOT  0x6ffffef7
0725: #define DT_GNU_CONFLICT 0x6ffffef8      
0726: #define DT_GNU_LIBLIST  0x6ffffef9      
0727: #define DT_CONFIG       0x6ffffefa      
0728: #define DT_DEPAUDIT     0x6ffffefb      
0729: #define DT_AUDIT        0x6ffffefc      
0730: #define DT_PLTPAD       0x6ffffefd      
0731: #define DT_MOVETAB      0x6ffffefe      
0732: #define DT_SYMINFO      0x6ffffeff      
0733: #define DT_ADDRRNGHI    0x6ffffeff
0734: #define DT_ADDRTAGIDX(tag)      (DT_ADDRRNGHI - (tag))  
0735: #define DT_ADDRNUM 11
0736: 
0737: 
0738: 
0739: #define DT_VERSYM       0x6ffffff0
0740: 
0741: #define DT_RELACOUNT    0x6ffffff9
0742: #define DT_RELCOUNT     0x6ffffffa
0743: 
0744: 
0745: #define DT_FLAGS_1      0x6ffffffb      
0746: #define DT_VERDEF       0x6ffffffc      
0747: 
0748: #define DT_VERDEFNUM    0x6ffffffd      
0749: #define DT_VERNEED      0x6ffffffe      
0750: 
0751: #define DT_VERNEEDNUM   0x6fffffff      
0752: #define DT_VERSIONTAGIDX(tag)   (DT_VERNEEDNUM - (tag)) 
0753: #define DT_VERSIONTAGNUM 16
0754: 
0755: 
0756: 
0757: #define DT_AUXILIARY    0x7ffffffd      
0758: #define DT_FILTER       0x7fffffff      
0759: #define DT_EXTRATAGIDX(tag)     ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1)
0760: #define DT_EXTRANUM     3
0761: 
0762: 
0763: #define DF_ORIGIN       0x00000001      
0764: #define DF_SYMBOLIC     0x00000002      
0765: #define DF_TEXTREL      0x00000004      
0766: #define DF_BIND_NOW     0x00000008      
0767: #define DF_STATIC_TLS   0x00000010      
0768: 
0769: 
0770: 
0771: #define DF_1_NOW        0x00000001      
0772: #define DF_1_GLOBAL     0x00000002      
0773: #define DF_1_GROUP      0x00000004      
0774: #define DF_1_NODELETE   0x00000008      
0775: #define DF_1_LOADFLTR   0x00000010      
0776: #define DF_1_INITFIRST  0x00000020      
0777: #define DF_1_NOOPEN     0x00000040      
0778: #define DF_1_ORIGIN     0x00000080      
0779: #define DF_1_DIRECT     0x00000100      
0780: #define DF_1_TRANS      0x00000200
0781: #define DF_1_INTERPOSE  0x00000400      
0782: #define DF_1_NODEFLIB   0x00000800      
0783: #define DF_1_NODUMP     0x00001000      
0784: #define DF_1_CONFALT    0x00002000      
0785: #define DF_1_ENDFILTEE  0x00004000      
0786: #define DF_1_DISPRELDNE 0x00008000      
0787: #define DF_1_DISPRELPND 0x00010000      
0788: 
0789: 
0790: #define DTF_1_PARINIT   0x00000001
0791: #define DTF_1_CONFEXP   0x00000002
0792: 
0793: 
0794: #define DF_P1_LAZYLOAD  0x00000001      
0795: #define DF_P1_GROUPPERM 0x00000002      
0796: 
0797: 
0798: 
0799: 
0800: typedef struct
0801: {
0802:   Elf32_Half    vd_version;             
0803:   Elf32_Half    vd_flags;               
0804:   Elf32_Half    vd_ndx;                 
0805:   Elf32_Half    vd_cnt;                 
0806:   Elf32_Word    vd_hash;                
0807:   Elf32_Word    vd_aux;                 
0808:   Elf32_Word    vd_next;                
0809: 
0810: } Elf32_Verdef;
0811: 
0812: typedef struct
0813: {
0814:   Elf64_Half    vd_version;             
0815:   Elf64_Half    vd_flags;               
0816:   Elf64_Half    vd_ndx;                 
0817:   Elf64_Half    vd_cnt;                 
0818:   Elf64_Word    vd_hash;                
0819:   Elf64_Word    vd_aux;                 
0820:   Elf64_Word    vd_next;                
0821: 
0822: } Elf64_Verdef;
0823: 
0824: 
0825: 
0826: #define VER_DEF_NONE    0               
0827: #define VER_DEF_CURRENT 1               
0828: #define VER_DEF_NUM     2               
0829: 
0830: 
0831: #define VER_FLG_BASE    0x1             
0832: #define VER_FLG_WEAK    0x2             
0833: 
0834: 
0835: #define VER_NDX_LOCAL           0       
0836: #define VER_NDX_GLOBAL          1       
0837: #define VER_NDX_LORESERVE       0xff00  
0838: #define VER_NDX_ELIMINATE       0xff01  
0839: 
0840: 
0841: 
0842: typedef struct
0843: {
0844:   Elf32_Word    vda_name;               
0845:   Elf32_Word    vda_next;               
0846: 
0847: } Elf32_Verdaux;
0848: 
0849: typedef struct
0850: {
0851:   Elf64_Word    vda_name;               
0852:   Elf64_Word    vda_next;               
0853: 
0854: } Elf64_Verdaux;
0855: 
0856: 
0857: 
0858: 
0859: typedef struct
0860: {
0861:   Elf32_Half    vn_version;             
0862:   Elf32_Half    vn_cnt;                 
0863:   Elf32_Word    vn_file;                
0864: 
0865:   Elf32_Word    vn_aux;                 
0866:   Elf32_Word    vn_next;                
0867: 
0868: } Elf32_Verneed;
0869: 
0870: typedef struct
0871: {
0872:   Elf64_Half    vn_version;             
0873:   Elf64_Half    vn_cnt;                 
0874:   Elf64_Word    vn_file;                
0875: 
0876:   Elf64_Word    vn_aux;                 
0877:   Elf64_Word    vn_next;                
0878: 
0879: } Elf64_Verneed;
0880: 
0881: 
0882: 
0883: #define VER_NEED_NONE    0              
0884: #define VER_NEED_CURRENT 1              
0885: #define VER_NEED_NUM     2              
0886: 
0887: 
0888: 
0889: typedef struct
0890: {
0891:   Elf32_Word    vna_hash;               
0892:   Elf32_Half    vna_flags;              
0893:   Elf32_Half    vna_other;              
0894:   Elf32_Word    vna_name;               
0895:   Elf32_Word    vna_next;               
0896: 
0897: } Elf32_Vernaux;
0898: 
0899: typedef struct
0900: {
0901:   Elf64_Word    vna_hash;               
0902:   Elf64_Half    vna_flags;              
0903:   Elf64_Half    vna_other;              
0904:   Elf64_Word    vna_name;               
0905:   Elf64_Word    vna_next;               
0906: 
0907: } Elf64_Vernaux;
0908: 
0909: 
0910: 
0911: #define VER_FLG_WEAK    0x2             
0912: 
0913: 
0914: 
0915: 
0916: 
0917: 
0918: 
0919: 
0920: 
0921: 
0922: 
0923: typedef struct
0924: {
0925:   uint32_t a_type;              
0926:   union
0927:     {
0928:       uint32_t a_val;           
0929:       
0930: 
0931: 
0932:     } a_un;
0933: } Elf32_auxv_t;
0934: 
0935: typedef struct
0936: {
0937:   uint64_t a_type;              
0938:   union
0939:     {
0940:       uint64_t a_val;           
0941:       
0942: 
0943: 
0944:     } a_un;
0945: } Elf64_auxv_t;
0946: 
0947: 
0948: 
0949: #define AT_NULL         0               
0950: #define AT_IGNORE       1               
0951: #define AT_EXECFD       2               
0952: #define AT_PHDR         3               
0953: #define AT_PHENT        4               
0954: #define AT_PHNUM        5               
0955: #define AT_PAGESZ       6               
0956: #define AT_BASE         7               
0957: #define AT_FLAGS        8               
0958: #define AT_ENTRY        9               
0959: #define AT_NOTELF       10              
0960: #define AT_UID          11              
0961: #define AT_EUID         12              
0962: #define AT_GID          13              
0963: #define AT_EGID         14              
0964: #define AT_CLKTCK       17              
0965: 
0966: 
0967: #define AT_PLATFORM     15              
0968: #define AT_HWCAP        16              
0969: 
0970: 
0971: 
0972: 
0973: #define AT_FPUCW        18              
0974: 
0975: 
0976: #define AT_DCACHEBSIZE  19              
0977: #define AT_ICACHEBSIZE  20              
0978: #define AT_UCACHEBSIZE  21              
0979: 
0980: 
0981: 
0982: #define AT_IGNOREPPC    22              
0983: 
0984: #define AT_SECURE       23              
0985: 
0986: #define AT_BASE_PLATFORM 24             
0987: 
0988: #define AT_RANDOM       25              
0989: 
0990: #define AT_EXECFN       31              
0991: 
0992: 
0993: 
0994: #define AT_SYSINFO      32
0995: #define AT_SYSINFO_EHDR 33
0996: 
0997: 
0998: 
0999: #define AT_L1I_CACHESHAPE       34
1000: #define AT_L1D_CACHESHAPE       35
1001: #define AT_L2_CACHESHAPE        36
1002: #define AT_L3_CACHESHAPE        37
1003: 
1004: 
1005: 
1006: 
1007: typedef struct
1008: {
1009:   Elf32_Word n_namesz;                  
1010:   Elf32_Word n_descsz;                  
1011:   Elf32_Word n_type;                    
1012: } Elf32_Nhdr;
1013: 
1014: typedef struct
1015: {
1016:   Elf64_Word n_namesz;                  
1017:   Elf64_Word n_descsz;                  
1018:   Elf64_Word n_type;                    
1019: } Elf64_Nhdr;
1020: 
1021: 
1022: 
1023: 
1024: #define ELF_NOTE_SOLARIS        "SUNW Solaris"
1025: 
1026: 
1027: #define ELF_NOTE_GNU            "GNU"
1028: 
1029: 
1030: 
1031: 
1032: 
1033: #define ELF_NOTE_PAGESIZE_HINT  1
1034: 
1035: 
1036: 
1037: 
1038: 
1039: 
1040: 
1041: 
1042: 
1043: 
1044: #define NT_GNU_ABI_TAG  1
1045: #define ELF_NOTE_ABI    NT_GNU_ABI_TAG 
1046: 
1047: 
1048: 
1049: #define ELF_NOTE_OS_LINUX       0
1050: #define ELF_NOTE_OS_GNU         1
1051: #define ELF_NOTE_OS_SOLARIS2    2
1052: #define ELF_NOTE_OS_FREEBSD     3
1053: 
1054: 
1055: 
1056: 
1057: 
1058: 
1059: 
1060: #define NT_GNU_HWCAP    2
1061: 
1062: 
1063: 
1064: #define NT_GNU_BUILD_ID 3
1065: 
1066: 
1067: #define NT_GNU_GOLD_VERSION     4
1068: 
1069: 
1070: 
1071: typedef struct
1072: {
1073:   Elf32_Xword m_value;          
1074:   Elf32_Word m_info;            
1075:   Elf32_Word m_poffset;         
1076:   Elf32_Half m_repeat;          
1077:   Elf32_Half m_stride;          
1078: } Elf32_Move;
1079: 
1080: typedef struct
1081: {
1082:   Elf64_Xword m_value;          
1083:   Elf64_Xword m_info;           
1084:   Elf64_Xword m_poffset;        
1085:   Elf64_Half m_repeat;          
1086:   Elf64_Half m_stride;          
1087: } Elf64_Move;
1088: 
1089: 
1090: #define ELF32_M_SYM(info)       ((info) >> 8)
1091: #define ELF32_M_SIZE(info)      ((unsigned char) (info))
1092: #define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size))
1093: 
1094: #define ELF64_M_SYM(info)       ELF32_M_SYM (info)
1095: #define ELF64_M_SIZE(info)      ELF32_M_SIZE (info)
1096: #define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size)
1097: 
1098: 
1099: 
1100: 
1101: 
1102: #define EF_CPU32        0x00810000
1103: 
1104: 
1105: 
1106: #define R_68K_NONE      0               
1107: #define R_68K_32        1               
1108: #define R_68K_16        2               
1109: #define R_68K_8         3               
1110: #define R_68K_PC32      4               
1111: #define R_68K_PC16      5               
1112: #define R_68K_PC8       6               
1113: #define R_68K_GOT32     7               
1114: #define R_68K_GOT16     8               
1115: #define R_68K_GOT8      9               
1116: #define R_68K_GOT32O    10              
1117: #define R_68K_GOT16O    11              
1118: #define R_68K_GOT8O     12              
1119: #define R_68K_PLT32     13              
1120: #define R_68K_PLT16     14              
1121: #define R_68K_PLT8      15              
1122: #define R_68K_PLT32O    16              
1123: #define R_68K_PLT16O    17              
1124: #define R_68K_PLT8O     18              
1125: #define R_68K_COPY      19              
1126: #define R_68K_GLOB_DAT  20              
1127: #define R_68K_JMP_SLOT  21              
1128: #define R_68K_RELATIVE  22              
1129: #define R_68K_TLS_GD32      25          
1130: #define R_68K_TLS_GD16      26          
1131: #define R_68K_TLS_GD8       27          
1132: #define R_68K_TLS_LDM32     28          
1133: #define R_68K_TLS_LDM16     29          
1134: #define R_68K_TLS_LDM8      30          
1135: #define R_68K_TLS_LDO32     31          
1136: #define R_68K_TLS_LDO16     32          
1137: #define R_68K_TLS_LDO8      33          
1138: #define R_68K_TLS_IE32      34          
1139: #define R_68K_TLS_IE16      35          
1140: #define R_68K_TLS_IE8       36          
1141: #define R_68K_TLS_LE32      37          
1142: 
1143: #define R_68K_TLS_LE16      38          
1144: 
1145: #define R_68K_TLS_LE8       39          
1146: 
1147: #define R_68K_TLS_DTPMOD32  40          
1148: #define R_68K_TLS_DTPREL32  41          
1149: #define R_68K_TLS_TPREL32   42          
1150: 
1151: #define R_68K_NUM       43
1152: 
1153: 
1154: 
1155: 
1156: 
1157: #define R_386_NONE         0            
1158: #define R_386_32           1            
1159: #define R_386_PC32         2            
1160: #define R_386_GOT32        3            
1161: #define R_386_PLT32        4            
1162: #define R_386_COPY         5            
1163: #define R_386_GLOB_DAT     6            
1164: #define R_386_JMP_SLOT     7            
1165: #define R_386_RELATIVE     8            
1166: #define R_386_GOTOFF       9            
1167: #define R_386_GOTPC        10           
1168: #define R_386_32PLT        11
1169: #define R_386_TLS_TPOFF    14           
1170: #define R_386_TLS_IE       15           
1171: 
1172: #define R_386_TLS_GOTIE    16           
1173: 
1174: #define R_386_TLS_LE       17           
1175: 
1176: #define R_386_TLS_GD       18           
1177: 
1178: #define R_386_TLS_LDM      19           
1179: 
1180: 
1181: #define R_386_16           20
1182: #define R_386_PC16         21
1183: #define R_386_8            22
1184: #define R_386_PC8          23
1185: #define R_386_TLS_GD_32    24           
1186: 
1187: #define R_386_TLS_GD_PUSH  25           
1188: #define R_386_TLS_GD_CALL  26           
1189: 
1190: #define R_386_TLS_GD_POP   27           
1191: #define R_386_TLS_LDM_32   28           
1192: 
1193: #define R_386_TLS_LDM_PUSH 29           
1194: #define R_386_TLS_LDM_CALL 30           
1195: 
1196: #define R_386_TLS_LDM_POP  31           
1197: #define R_386_TLS_LDO_32   32           
1198: #define R_386_TLS_IE_32    33           
1199: 
1200: #define R_386_TLS_LE_32    34           
1201: 
1202: #define R_386_TLS_DTPMOD32 35           
1203: #define R_386_TLS_DTPOFF32 36           
1204: #define R_386_TLS_TPOFF32  37           
1205: 
1206: #define R_386_TLS_GOTDESC  39           
1207: #define R_386_TLS_DESC_CALL 40          
1208: 
1209: 
1210: #define R_386_TLS_DESC     41           
1211: 
1212: 
1213: 
1214: #define R_386_IRELATIVE    42           
1215: 
1216: #define R_386_NUM          43
1217: 
1218: 
1219: 
1220: 
1221: 
1222: #define STT_SPARC_REGISTER      13      
1223: 
1224: 
1225: 
1226: #define EF_SPARCV9_MM           3
1227: #define EF_SPARCV9_TSO          0
1228: #define EF_SPARCV9_PSO          1
1229: #define EF_SPARCV9_RMO          2
1230: #define EF_SPARC_LEDATA         0x800000 
1231: #define EF_SPARC_EXT_MASK       0xFFFF00
1232: #define EF_SPARC_32PLUS         0x000100 
1233: #define EF_SPARC_SUN_US1        0x000200 
1234: #define EF_SPARC_HAL_R1         0x000400 
1235: #define EF_SPARC_SUN_US3        0x000800 
1236: 
1237: 
1238: 
1239: #define R_SPARC_NONE            0       
1240: #define R_SPARC_8               1       
1241: #define R_SPARC_16              2       
1242: #define R_SPARC_32              3       
1243: #define R_SPARC_DISP8           4       
1244: #define R_SPARC_DISP16          5       
1245: #define R_SPARC_DISP32          6       
1246: #define R_SPARC_WDISP30         7       
1247: #define R_SPARC_WDISP22         8       
1248: #define R_SPARC_HI22            9       
1249: #define R_SPARC_22              10      
1250: #define R_SPARC_13              11      
1251: #define R_SPARC_LO10            12      
1252: #define R_SPARC_GOT10           13      
1253: #define R_SPARC_GOT13           14      
1254: #define R_SPARC_GOT22           15      
1255: #define R_SPARC_PC10            16      
1256: #define R_SPARC_PC22            17      
1257: #define R_SPARC_WPLT30          18      
1258: #define R_SPARC_COPY            19      
1259: #define R_SPARC_GLOB_DAT        20      
1260: #define R_SPARC_JMP_SLOT        21      
1261: #define R_SPARC_RELATIVE        22      
1262: #define R_SPARC_UA32            23      
1263: 
1264: 
1265: 
1266: #define R_SPARC_PLT32           24      
1267: #define R_SPARC_HIPLT22         25      
1268: #define R_SPARC_LOPLT10         26      
1269: #define R_SPARC_PCPLT32         27      
1270: #define R_SPARC_PCPLT22         28      
1271: #define R_SPARC_PCPLT10         29      
1272: #define R_SPARC_10              30      
1273: #define R_SPARC_11              31      
1274: #define R_SPARC_64              32      
1275: #define R_SPARC_OLO10           33      
1276: #define R_SPARC_HH22            34      
1277: #define R_SPARC_HM10            35      
1278: #define R_SPARC_LM22            36      
1279: #define R_SPARC_PC_HH22         37      
1280: #define R_SPARC_PC_HM10         38      
1281: #define R_SPARC_PC_LM22         39      
1282: #define R_SPARC_WDISP16         40      
1283: #define R_SPARC_WDISP19         41      
1284: #define R_SPARC_GLOB_JMP        42      
1285: #define R_SPARC_7               43      
1286: #define R_SPARC_5               44      
1287: #define R_SPARC_6               45      
1288: #define R_SPARC_DISP64          46      
1289: #define R_SPARC_PLT64           47      
1290: #define R_SPARC_HIX22           48      
1291: #define R_SPARC_LOX10           49      
1292: #define R_SPARC_H44             50      
1293: #define R_SPARC_M44             51      
1294: #define R_SPARC_L44             52      
1295: #define R_SPARC_REGISTER        53      
1296: #define R_SPARC_UA64            54      
1297: #define R_SPARC_UA16            55      
1298: #define R_SPARC_TLS_GD_HI22     56
1299: #define R_SPARC_TLS_GD_LO10     57
1300: #define R_SPARC_TLS_GD_ADD      58
1301: #define R_SPARC_TLS_GD_CALL     59
1302: #define R_SPARC_TLS_LDM_HI22    60
1303: #define R_SPARC_TLS_LDM_LO10    61
1304: #define R_SPARC_TLS_LDM_ADD     62
1305: #define R_SPARC_TLS_LDM_CALL    63
1306: #define R_SPARC_TLS_LDO_HIX22   64
1307: #define R_SPARC_TLS_LDO_LOX10   65
1308: #define R_SPARC_TLS_LDO_ADD     66
1309: #define R_SPARC_TLS_IE_HI22     67
1310: #define R_SPARC_TLS_IE_LO10     68
1311: #define R_SPARC_TLS_IE_LD       69
1312: #define R_SPARC_TLS_IE_LDX      70
1313: #define R_SPARC_TLS_IE_ADD      71
1314: #define R_SPARC_TLS_LE_HIX22    72
1315: #define R_SPARC_TLS_LE_LOX10    73
1316: #define R_SPARC_TLS_DTPMOD32    74
1317: #define R_SPARC_TLS_DTPMOD64    75
1318: #define R_SPARC_TLS_DTPOFF32    76
1319: #define R_SPARC_TLS_DTPOFF64    77
1320: #define R_SPARC_TLS_TPOFF32     78
1321: #define R_SPARC_TLS_TPOFF64     79
1322: #define R_SPARC_GOTDATA_HIX22   80
1323: #define R_SPARC_GOTDATA_LOX10   81
1324: #define R_SPARC_GOTDATA_OP_HIX22        82
1325: #define R_SPARC_GOTDATA_OP_LOX10        83
1326: #define R_SPARC_GOTDATA_OP      84
1327: #define R_SPARC_H34             85
1328: #define R_SPARC_SIZE32          86
1329: #define R_SPARC_SIZE64          87
1330: #define R_SPARC_JMP_IREL        248
1331: #define R_SPARC_IRELATIVE       249
1332: #define R_SPARC_GNU_VTINHERIT   250
1333: #define R_SPARC_GNU_VTENTRY     251
1334: #define R_SPARC_REV32           252
1335: 
1336: #define R_SPARC_NUM             253
1337: 
1338: 
1339: 
1340: #define DT_SPARC_REGISTER 0x70000001
1341: #define DT_SPARC_NUM    2
1342: 
1343: 
1344: 
1345: 
1346: 
1347: #define EF_MIPS_NOREORDER   1           
1348: #define EF_MIPS_PIC         2           
1349: #define EF_MIPS_CPIC        4           
1350: #define EF_MIPS_XGOT        8
1351: #define EF_MIPS_64BIT_WHIRL 16
1352: #define EF_MIPS_ABI2        32
1353: #define EF_MIPS_ABI_ON32    64
1354: #define EF_MIPS_ARCH        0xf0000000  
1355: 
1356: 
1357: 
1358: #define EF_MIPS_ARCH_1      0x00000000  
1359: #define EF_MIPS_ARCH_2      0x10000000  
1360: #define EF_MIPS_ARCH_3      0x20000000  
1361: #define EF_MIPS_ARCH_4      0x30000000  
1362: #define EF_MIPS_ARCH_5      0x40000000  
1363: #define EF_MIPS_ARCH_32     0x60000000  
1364: #define EF_MIPS_ARCH_64     0x70000000  
1365: 
1366: 
1367: 
1368: #define E_MIPS_ARCH_1     0x00000000    
1369: #define E_MIPS_ARCH_2     0x10000000    
1370: #define E_MIPS_ARCH_3     0x20000000    
1371: #define E_MIPS_ARCH_4     0x30000000    
1372: #define E_MIPS_ARCH_5     0x40000000    
1373: #define E_MIPS_ARCH_32    0x60000000    
1374: #define E_MIPS_ARCH_64    0x70000000    
1375: 
1376: 
1377: 
1378: #define SHN_MIPS_ACOMMON    0xff00      
1379: #define SHN_MIPS_TEXT       0xff01      
1380: #define SHN_MIPS_DATA       0xff02      
1381: #define SHN_MIPS_SCOMMON    0xff03      
1382: #define SHN_MIPS_SUNDEFINED 0xff04      
1383: 
1384: 
1385: 
1386: #define SHT_MIPS_LIBLIST       0x70000000 
1387: #define SHT_MIPS_MSYM          0x70000001
1388: #define SHT_MIPS_CONFLICT      0x70000002 
1389: #define SHT_MIPS_GPTAB         0x70000003 
1390: #define SHT_MIPS_UCODE         0x70000004 
1391: #define SHT_MIPS_DEBUG         0x70000005 
1392: #define SHT_MIPS_REGINFO       0x70000006 
1393: #define SHT_MIPS_PACKAGE       0x70000007
1394: #define SHT_MIPS_PACKSYM       0x70000008
1395: #define SHT_MIPS_RELD          0x70000009
1396: #define SHT_MIPS_IFACE         0x7000000b
1397: #define SHT_MIPS_CONTENT       0x7000000c
1398: #define SHT_MIPS_OPTIONS       0x7000000d 
1399: #define SHT_MIPS_SHDR          0x70000010
1400: #define SHT_MIPS_FDESC         0x70000011
1401: #define SHT_MIPS_EXTSYM        0x70000012
1402: #define SHT_MIPS_DENSE         0x70000013
1403: #define SHT_MIPS_PDESC         0x70000014
1404: #define SHT_MIPS_LOCSYM        0x70000015
1405: #define SHT_MIPS_AUXSYM        0x70000016
1406: #define SHT_MIPS_OPTSYM        0x70000017
1407: #define SHT_MIPS_LOCSTR        0x70000018
1408: #define SHT_MIPS_LINE          0x70000019
1409: #define SHT_MIPS_RFDESC        0x7000001a
1410: #define SHT_MIPS_DELTASYM      0x7000001b
1411: #define SHT_MIPS_DELTAINST     0x7000001c
1412: #define SHT_MIPS_DELTACLASS    0x7000001d
1413: #define SHT_MIPS_DWARF         0x7000001e 
1414: #define SHT_MIPS_DELTADECL     0x7000001f
1415: #define SHT_MIPS_SYMBOL_LIB    0x70000020
1416: #define SHT_MIPS_EVENTS        0x70000021 
1417: #define SHT_MIPS_TRANSLATE     0x70000022
1418: #define SHT_MIPS_PIXIE         0x70000023
1419: #define SHT_MIPS_XLATE         0x70000024
1420: #define SHT_MIPS_XLATE_DEBUG   0x70000025
1421: #define SHT_MIPS_WHIRL         0x70000026
1422: #define SHT_MIPS_EH_REGION     0x70000027
1423: #define SHT_MIPS_XLATE_OLD     0x70000028
1424: #define SHT_MIPS_PDR_EXCEPTION 0x70000029
1425: 
1426: 
1427: 
1428: #define SHF_MIPS_GPREL   0x10000000     
1429: #define SHF_MIPS_MERGE   0x20000000
1430: #define SHF_MIPS_ADDR    0x40000000
1431: #define SHF_MIPS_STRINGS 0x80000000
1432: #define SHF_MIPS_NOSTRIP 0x08000000
1433: #define SHF_MIPS_LOCAL   0x04000000
1434: #define SHF_MIPS_NAMES   0x02000000
1435: #define SHF_MIPS_NODUPE  0x01000000
1436: 
1437: 
1438: 
1439: 
1440: 
1441: #define STO_MIPS_DEFAULT                0x0
1442: #define STO_MIPS_INTERNAL               0x1
1443: #define STO_MIPS_HIDDEN                 0x2
1444: #define STO_MIPS_PROTECTED              0x3
1445: #define STO_MIPS_PLT                    0x8
1446: #define STO_MIPS_SC_ALIGN_UNUSED        0xff
1447: 
1448: 
1449: #define STB_MIPS_SPLIT_COMMON           13
1450: 
1451: 
1452: 
1453: typedef union
1454: {
1455:   struct
1456:     {
1457:       Elf32_Word gt_current_g_value;    
1458:       Elf32_Word gt_unused;             
1459:     } gt_header;                        
1460:   struct
1461:     {
1462:       Elf32_Word gt_g_value;            
1463:       Elf32_Word gt_bytes;              
1464:     } gt_entry;                         
1465: } Elf32_gptab;
1466: 
1467: 
1468: 
1469: typedef struct
1470: {
1471:   Elf32_Word    ri_gprmask;             
1472:   Elf32_Word    ri_cprmask[4];          
1473:   Elf32_Sword   ri_gp_value;            
1474: } Elf32_RegInfo;
1475: 
1476: 
1477: 
1478: typedef struct
1479: {
1480:   unsigned char kind;           
1481: 
1482:   unsigned char size;           
1483:   Elf32_Section section;        
1484: 
1485:   Elf32_Word info;              
1486: } Elf_Options;
1487: 
1488: 
1489: 
1490: #define ODK_NULL        0       
1491: #define ODK_REGINFO     1       
1492: #define ODK_EXCEPTIONS  2       
1493: #define ODK_PAD         3       
1494: #define ODK_HWPATCH     4       
1495: #define ODK_FILL        5       
1496: #define ODK_TAGS        6       
1497: #define ODK_HWAND       7       
1498: #define ODK_HWOR        8       
1499: 
1500: 
1501: 
1502: #define OEX_FPU_MIN     0x1f    
1503: #define OEX_FPU_MAX     0x1f00  
1504: #define OEX_PAGE0       0x10000 
1505: #define OEX_SMM         0x20000 
1506: #define OEX_FPDBUG      0x40000 
1507: #define OEX_PRECISEFP   OEX_FPDBUG
1508: #define OEX_DISMISS     0x80000 
1509: 
1510: #define OEX_FPU_INVAL   0x10
1511: #define OEX_FPU_DIV0    0x08
1512: #define OEX_FPU_OFLO    0x04
1513: #define OEX_FPU_UFLO    0x02
1514: #define OEX_FPU_INEX    0x01
1515: 
1516: 
1517: 
1518: #define OHW_R4KEOP      0x1     
1519: #define OHW_R8KPFETCH   0x2     
1520: #define OHW_R5KEOP      0x4     
1521: #define OHW_R5KCVTL     0x8     
1522: 
1523: #define OPAD_PREFIX     0x1
1524: #define OPAD_POSTFIX    0x2
1525: #define OPAD_SYMBOL     0x4
1526: 
1527: 
1528: 
1529: typedef struct
1530: {
1531:   Elf32_Word hwp_flags1;        
1532:   Elf32_Word hwp_flags2;        
1533: } Elf_Options_Hw;
1534: 
1535: 
1536: 
1537: #define OHWA0_R4KEOP_CHECKED    0x00000001
1538: #define OHWA1_R4KEOP_CLEAN      0x00000002
1539: 
1540: 
1541: 
1542: #define R_MIPS_NONE             0       
1543: #define R_MIPS_16               1       
1544: #define R_MIPS_32               2       
1545: #define R_MIPS_REL32            3       
1546: #define R_MIPS_26               4       
1547: #define R_MIPS_HI16             5       
1548: #define R_MIPS_LO16             6       
1549: #define R_MIPS_GPREL16          7       
1550: #define R_MIPS_LITERAL          8       
1551: #define R_MIPS_GOT16            9       
1552: #define R_MIPS_PC16             10      
1553: #define R_MIPS_CALL16           11      
1554: #define R_MIPS_GPREL32          12      
1555: 
1556: #define R_MIPS_SHIFT5           16
1557: #define R_MIPS_SHIFT6           17
1558: #define R_MIPS_64               18
1559: #define R_MIPS_GOT_DISP         19
1560: #define R_MIPS_GOT_PAGE         20
1561: #define R_MIPS_GOT_OFST         21
1562: #define R_MIPS_GOT_HI16         22
1563: #define R_MIPS_GOT_LO16         23
1564: #define R_MIPS_SUB              24
1565: #define R_MIPS_INSERT_A         25
1566: #define R_MIPS_INSERT_B         26
1567: #define R_MIPS_DELETE           27
1568: #define R_MIPS_HIGHER           28
1569: #define R_MIPS_HIGHEST          29
1570: #define R_MIPS_CALL_HI16        30
1571: #define R_MIPS_CALL_LO16        31
1572: #define R_MIPS_SCN_DISP         32
1573: #define R_MIPS_REL16            33
1574: #define R_MIPS_ADD_IMMEDIATE    34
1575: #define R_MIPS_PJUMP            35
1576: #define R_MIPS_RELGOT           36
1577: #define R_MIPS_JALR             37
1578: #define R_MIPS_TLS_DTPMOD32     38      
1579: #define R_MIPS_TLS_DTPREL32     39      
1580: #define R_MIPS_TLS_DTPMOD64     40      
1581: #define R_MIPS_TLS_DTPREL64     41      
1582: #define R_MIPS_TLS_GD           42      
1583: #define R_MIPS_TLS_LDM          43      
1584: #define R_MIPS_TLS_DTPREL_HI16  44      
1585: #define R_MIPS_TLS_DTPREL_LO16  45      
1586: #define R_MIPS_TLS_GOTTPREL     46      
1587: #define R_MIPS_TLS_TPREL32      47      
1588: #define R_MIPS_TLS_TPREL64      48      
1589: #define R_MIPS_TLS_TPREL_HI16   49      
1590: #define R_MIPS_TLS_TPREL_LO16   50      
1591: #define R_MIPS_GLOB_DAT         51
1592: #define R_MIPS_COPY             126
1593: #define R_MIPS_JUMP_SLOT        127
1594: 
1595: #define R_MIPS_NUM              128
1596: 
1597: 
1598: 
1599: #define PT_MIPS_REGINFO 0x70000000      
1600: #define PT_MIPS_RTPROC  0x70000001      
1601: #define PT_MIPS_OPTIONS 0x70000002
1602: 
1603: 
1604: 
1605: #define PF_MIPS_LOCAL   0x10000000
1606: 
1607: 
1608: 
1609: #define DT_MIPS_RLD_VERSION  0x70000001 
1610: #define DT_MIPS_TIME_STAMP   0x70000002 
1611: #define DT_MIPS_ICHECKSUM    0x70000003 
1612: #define DT_MIPS_IVERSION     0x70000004 
1613: #define DT_MIPS_FLAGS        0x70000005 
1614: #define DT_MIPS_BASE_ADDRESS 0x70000006 
1615: #define DT_MIPS_MSYM         0x70000007
1616: #define DT_MIPS_CONFLICT     0x70000008 
1617: #define DT_MIPS_LIBLIST      0x70000009 
1618: #define DT_MIPS_LOCAL_GOTNO  0x7000000a 
1619: #define DT_MIPS_CONFLICTNO   0x7000000b 
1620: #define DT_MIPS_LIBLISTNO    0x70000010 
1621: #define DT_MIPS_SYMTABNO     0x70000011 
1622: #define DT_MIPS_UNREFEXTNO   0x70000012 
1623: #define DT_MIPS_GOTSYM       0x70000013 
1624: #define DT_MIPS_HIPAGENO     0x70000014 
1625: #define DT_MIPS_RLD_MAP      0x70000016 
1626: #define DT_MIPS_DELTA_CLASS  0x70000017 
1627: #define DT_MIPS_DELTA_CLASS_NO    0x70000018 
1628: 
1629: #define DT_MIPS_DELTA_INSTANCE    0x70000019 
1630: #define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a 
1631: 
1632: #define DT_MIPS_DELTA_RELOC  0x7000001b 
1633: #define DT_MIPS_DELTA_RELOC_NO 0x7000001c 
1634: 
1635: #define DT_MIPS_DELTA_SYM    0x7000001d 
1636: 
1637: #define DT_MIPS_DELTA_SYM_NO 0x7000001e 
1638: 
1639: #define DT_MIPS_DELTA_CLASSSYM 0x70000020 
1640: 
1641: #define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 
1642: 
1643: #define DT_MIPS_CXX_FLAGS    0x70000022 
1644: #define DT_MIPS_PIXIE_INIT   0x70000023
1645: #define DT_MIPS_SYMBOL_LIB   0x70000024
1646: #define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025
1647: #define DT_MIPS_LOCAL_GOTIDX 0x70000026
1648: #define DT_MIPS_HIDDEN_GOTIDX 0x70000027
1649: #define DT_MIPS_PROTECTED_GOTIDX 0x70000028
1650: #define DT_MIPS_OPTIONS      0x70000029 
1651: #define DT_MIPS_INTERFACE    0x7000002a 
1652: #define DT_MIPS_DYNSTR_ALIGN 0x7000002b
1653: #define DT_MIPS_INTERFACE_SIZE 0x7000002c 
1654: #define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d 
1655: 
1656: #define DT_MIPS_PERF_SUFFIX  0x7000002e 
1657: 
1658: #define DT_MIPS_COMPACT_SIZE 0x7000002f 
1659: #define DT_MIPS_GP_VALUE     0x70000030 
1660: #define DT_MIPS_AUX_DYNAMIC  0x70000031 
1661: 
1662: #define DT_MIPS_PLTGOT       0x70000032
1663: 
1664: 
1665: 
1666: #define DT_MIPS_RWPLT        0x70000034
1667: #define DT_MIPS_NUM          0x35
1668: 
1669: 
1670: 
1671: #define RHF_NONE                   0            
1672: #define RHF_QUICKSTART             (1 << 0)     
1673: #define RHF_NOTPOT                 (1 << 1)     
1674: #define RHF_NO_LIBRARY_REPLACEMENT (1 << 2)     
1675: #define RHF_NO_MOVE                (1 << 3)
1676: #define RHF_SGI_ONLY               (1 << 4)
1677: #define RHF_GUARANTEE_INIT         (1 << 5)
1678: #define RHF_DELTA_C_PLUS_PLUS      (1 << 6)
1679: #define RHF_GUARANTEE_START_INIT   (1 << 7)
1680: #define RHF_PIXIE                  (1 << 8)
1681: #define RHF_DEFAULT_DELAY_LOAD     (1 << 9)
1682: #define RHF_REQUICKSTART           (1 << 10)
1683: #define RHF_REQUICKSTARTED         (1 << 11)
1684: #define RHF_CORD                   (1 << 12)
1685: #define RHF_NO_UNRES_UNDEF         (1 << 13)
1686: #define RHF_RLD_ORDER_SAFE         (1 << 14)
1687: 
1688: 
1689: 
1690: typedef struct
1691: {
1692:   Elf32_Word l_name;            
1693:   Elf32_Word l_time_stamp;      
1694:   Elf32_Word l_checksum;        
1695:   Elf32_Word l_version;         
1696:   Elf32_Word l_flags;           
1697: } Elf32_Lib;
1698: 
1699: typedef struct
1700: {
1701:   Elf64_Word l_name;            
1702:   Elf64_Word l_time_stamp;      
1703:   Elf64_Word l_checksum;        
1704:   Elf64_Word l_version;         
1705:   Elf64_Word l_flags;           
1706: } Elf64_Lib;
1707: 
1708: 
1709: 
1710: 
1711: #define LL_NONE           0
1712: #define LL_EXACT_MATCH    (1 << 0)      
1713: #define LL_IGNORE_INT_VER (1 << 1)      
1714: #define LL_REQUIRE_MINOR  (1 << 2)
1715: #define LL_EXPORTS        (1 << 3)
1716: #define LL_DELAY_LOAD     (1 << 4)
1717: #define LL_DELTA          (1 << 5)
1718: 
1719: 
1720: 
1721: typedef Elf32_Addr Elf32_Conflict;
1722: 
1723: 
1724: 
1725: 
1726: 
1727: 
1728: #define EF_PARISC_TRAPNIL       0x00010000 
1729: #define EF_PARISC_EXT           0x00020000 
1730: #define EF_PARISC_LSB           0x00040000 
1731: #define EF_PARISC_WIDE          0x00080000 
1732: #define EF_PARISC_NO_KABP       0x00100000 
1733: 
1734: #define EF_PARISC_LAZYSWAP      0x00400000 
1735: #define EF_PARISC_ARCH          0x0000ffff 
1736: 
1737: 
1738: 
1739: #define EFA_PARISC_1_0              0x020b 
1740: #define EFA_PARISC_1_1              0x0210 
1741: #define EFA_PARISC_2_0              0x0214 
1742: 
1743: 
1744: 
1745: #define SHN_PARISC_ANSI_COMMON  0xff00     
1746: 
1747: #define SHN_PARISC_HUGE_COMMON  0xff01     
1748: 
1749: 
1750: 
1751: #define SHT_PARISC_EXT          0x70000000 
1752: #define SHT_PARISC_UNWIND       0x70000001 
1753: #define SHT_PARISC_DOC          0x70000002 
1754: 
1755: 
1756: 
1757: #define SHF_PARISC_SHORT        0x20000000 
1758: #define SHF_PARISC_HUGE         0x40000000 
1759: #define SHF_PARISC_SBP          0x80000000 
1760: 
1761: 
1762: 
1763: #define STT_PARISC_MILLICODE    13      
1764: 
1765: #define STT_HP_OPAQUE           (STT_LOOS + 0x1)
1766: #define STT_HP_STUB             (STT_LOOS + 0x2)
1767: 
1768: 
1769: 
1770: #define R_PARISC_NONE           0       
1771: #define R_PARISC_DIR32          1       
1772: #define R_PARISC_DIR21L         2       
1773: #define R_PARISC_DIR17R         3       
1774: #define R_PARISC_DIR17F         4       
1775: #define R_PARISC_DIR14R         6       
1776: #define R_PARISC_PCREL32        9       
1777: #define R_PARISC_PCREL21L       10      
1778: #define R_PARISC_PCREL17R       11      
1779: #define R_PARISC_PCREL17F       12      
1780: #define R_PARISC_PCREL14R       14      
1781: #define R_PARISC_DPREL21L       18      
1782: #define R_PARISC_DPREL14R       22      
1783: #define R_PARISC_GPREL21L       26      
1784: #define R_PARISC_GPREL14R       30      
1785: #define R_PARISC_LTOFF21L       34      
1786: #define R_PARISC_LTOFF14R       38      
1787: #define R_PARISC_SECREL32       41      
1788: #define R_PARISC_SEGBASE        48      
1789: #define R_PARISC_SEGREL32       49      
1790: #define R_PARISC_PLTOFF21L      50      
1791: #define R_PARISC_PLTOFF14R      54      
1792: #define R_PARISC_LTOFF_FPTR32   57      
1793: #define R_PARISC_LTOFF_FPTR21L  58      
1794: #define R_PARISC_LTOFF_FPTR14R  62      
1795: #define R_PARISC_FPTR64         64      
1796: #define R_PARISC_PLABEL32       65      
1797: #define R_PARISC_PLABEL21L      66      
1798: #define R_PARISC_PLABEL14R      70      
1799: #define R_PARISC_PCREL64        72      
1800: #define R_PARISC_PCREL22F       74      
1801: #define R_PARISC_PCREL14WR      75      
1802: #define R_PARISC_PCREL14DR      76      
1803: #define R_PARISC_PCREL16F       77      
1804: #define R_PARISC_PCREL16WF      78      
1805: #define R_PARISC_PCREL16DF      79      
1806: #define R_PARISC_DIR64          80      
1807: #define R_PARISC_DIR14WR        83      
1808: #define R_PARISC_DIR14DR        84      
1809: #define R_PARISC_DIR16F         85      
1810: #define R_PARISC_DIR16WF        86      
1811: #define R_PARISC_DIR16DF        87      
1812: #define R_PARISC_GPREL64        88      
1813: #define R_PARISC_GPREL14WR      91      
1814: #define R_PARISC_GPREL14DR      92      
1815: #define R_PARISC_GPREL16F       93      
1816: #define R_PARISC_GPREL16WF      94      
1817: #define R_PARISC_GPREL16DF      95      
1818: #define R_PARISC_LTOFF64        96      
1819: #define R_PARISC_LTOFF14WR      99      
1820: #define R_PARISC_LTOFF14DR      100     
1821: #define R_PARISC_LTOFF16F       101     
1822: #define R_PARISC_LTOFF16WF      102     
1823: #define R_PARISC_LTOFF16DF      103     
1824: #define R_PARISC_SECREL64       104     
1825: #define R_PARISC_SEGREL64       112     
1826: #define R_PARISC_PLTOFF14WR     115     
1827: #define R_PARISC_PLTOFF14DR     116     
1828: #define R_PARISC_PLTOFF16F      117     
1829: #define R_PARISC_PLTOFF16WF     118     
1830: #define R_PARISC_PLTOFF16DF     119     
1831: #define R_PARISC_LTOFF_FPTR64   120     
1832: #define R_PARISC_LTOFF_FPTR14WR 123     
1833: #define R_PARISC_LTOFF_FPTR14DR 124     
1834: #define R_PARISC_LTOFF_FPTR16F  125     
1835: #define R_PARISC_LTOFF_FPTR16WF 126     
1836: #define R_PARISC_LTOFF_FPTR16DF 127     
1837: #define R_PARISC_LORESERVE      128
1838: #define R_PARISC_COPY           128     
1839: #define R_PARISC_IPLT           129     
1840: #define R_PARISC_EPLT           130     
1841: #define R_PARISC_TPREL32        153     
1842: #define R_PARISC_TPREL21L       154     
1843: #define R_PARISC_TPREL14R       158     
1844: #define R_PARISC_LTOFF_TP21L    162     
1845: #define R_PARISC_LTOFF_TP14R    166     
1846: #define R_PARISC_LTOFF_TP14F    167     
1847: #define R_PARISC_TPREL64        216     
1848: #define R_PARISC_TPREL14WR      219     
1849: #define R_PARISC_TPREL14DR      220     
1850: #define R_PARISC_TPREL16F       221     
1851: #define R_PARISC_TPREL16WF      222     
1852: #define R_PARISC_TPREL16DF      223     
1853: #define R_PARISC_LTOFF_TP64     224     
1854: #define R_PARISC_LTOFF_TP14WR   227     
1855: #define R_PARISC_LTOFF_TP14DR   228     
1856: #define R_PARISC_LTOFF_TP16F    229     
1857: #define R_PARISC_LTOFF_TP16WF   230     
1858: #define R_PARISC_LTOFF_TP16DF   231     
1859: #define R_PARISC_GNU_VTENTRY    232
1860: #define R_PARISC_GNU_VTINHERIT  233
1861: #define R_PARISC_TLS_GD21L      234     
1862: #define R_PARISC_TLS_GD14R      235     
1863: #define R_PARISC_TLS_GDCALL     236     
1864: #define R_PARISC_TLS_LDM21L     237     
1865: #define R_PARISC_TLS_LDM14R     238     
1866: #define R_PARISC_TLS_LDMCALL    239     
1867: #define R_PARISC_TLS_LDO21L     240     
1868: #define R_PARISC_TLS_LDO14R     241     
1869: #define R_PARISC_TLS_DTPMOD32   242     
1870: #define R_PARISC_TLS_DTPMOD64   243     
1871: #define R_PARISC_TLS_DTPOFF32   244     
1872: #define R_PARISC_TLS_DTPOFF64   245     
1873: #define R_PARISC_TLS_LE21L      R_PARISC_TPREL21L
1874: #define R_PARISC_TLS_LE14R      R_PARISC_TPREL14R
1875: #define R_PARISC_TLS_IE21L      R_PARISC_LTOFF_TP21L
1876: #define R_PARISC_TLS_IE14R      R_PARISC_LTOFF_TP14R
1877: #define R_PARISC_TLS_TPREL32    R_PARISC_TPREL32
1878: #define R_PARISC_TLS_TPREL64    R_PARISC_TPREL64
1879: #define R_PARISC_HIRESERVE      255
1880: 
1881: 
1882: 
1883: #define PT_HP_TLS               (PT_LOOS + 0x0)
1884: #define PT_HP_CORE_NONE         (PT_LOOS + 0x1)
1885: #define PT_HP_CORE_VERSION      (PT_LOOS + 0x2)
1886: #define PT_HP_CORE_KERNEL       (PT_LOOS + 0x3)
1887: #define PT_HP_CORE_COMM         (PT_LOOS + 0x4)
1888: #define PT_HP_CORE_PROC         (PT_LOOS + 0x5)
1889: #define PT_HP_CORE_LOADABLE     (PT_LOOS + 0x6)
1890: #define PT_HP_CORE_STACK        (PT_LOOS + 0x7)
1891: #define PT_HP_CORE_SHM          (PT_LOOS + 0x8)
1892: #define PT_HP_CORE_MMF          (PT_LOOS + 0x9)
1893: #define PT_HP_PARALLEL          (PT_LOOS + 0x10)
1894: #define PT_HP_FASTBIND          (PT_LOOS + 0x11)
1895: #define PT_HP_OPT_ANNOT         (PT_LOOS + 0x12)
1896: #define PT_HP_HSL_ANNOT         (PT_LOOS + 0x13)
1897: #define PT_HP_STACK             (PT_LOOS + 0x14)
1898: 
1899: #define PT_PARISC_ARCHEXT       0x70000000
1900: #define PT_PARISC_UNWIND        0x70000001
1901: 
1902: 
1903: 
1904: #define PF_PARISC_SBP           0x08000000
1905: 
1906: #define PF_HP_PAGE_SIZE         0x00100000
1907: #define PF_HP_FAR_SHARED        0x00200000
1908: #define PF_HP_NEAR_SHARED       0x00400000
1909: #define PF_HP_CODE              0x01000000
1910: #define PF_HP_MODIFY            0x02000000
1911: #define PF_HP_LAZYSWAP          0x04000000
1912: #define PF_HP_SBP               0x08000000
1913: 
1914: 
1915: 
1916: 
1917: 
1918: 
1919: #define EF_ALPHA_32BIT          1       
1920: #define EF_ALPHA_CANRELAX       2       
1921: 
1922: 
1923: 
1924: 
1925: #define SHT_ALPHA_DEBUG         0x70000001
1926: #define SHT_ALPHA_REGINFO       0x70000002
1927: 
1928: 
1929: 
1930: #define SHF_ALPHA_GPREL         0x10000000
1931: 
1932: 
1933: #define STO_ALPHA_NOPV          0x80    
1934: #define STO_ALPHA_STD_GPLOAD    0x88    
1935: 
1936: 
1937: 
1938: #define R_ALPHA_NONE            0       
1939: #define R_ALPHA_REFLONG         1       
1940: #define R_ALPHA_REFQUAD         2       
1941: #define R_ALPHA_GPREL32         3       
1942: #define R_ALPHA_LITERAL         4       
1943: #define R_ALPHA_LITUSE          5       
1944: #define R_ALPHA_GPDISP          6       
1945: #define R_ALPHA_BRADDR          7       
1946: #define R_ALPHA_HINT            8       
1947: #define R_ALPHA_SREL16          9       
1948: #define R_ALPHA_SREL32          10      
1949: #define R_ALPHA_SREL64          11      
1950: #define R_ALPHA_GPRELHIGH       17      
1951: #define R_ALPHA_GPRELLOW        18      
1952: #define R_ALPHA_GPREL16         19      
1953: #define R_ALPHA_COPY            24      
1954: #define R_ALPHA_GLOB_DAT        25      
1955: #define R_ALPHA_JMP_SLOT        26      
1956: #define R_ALPHA_RELATIVE        27      
1957: #define R_ALPHA_TLS_GD_HI       28
1958: #define R_ALPHA_TLSGD           29
1959: #define R_ALPHA_TLS_LDM         30
1960: #define R_ALPHA_DTPMOD64        31
1961: #define R_ALPHA_GOTDTPREL       32
1962: #define R_ALPHA_DTPREL64        33
1963: #define R_ALPHA_DTPRELHI        34
1964: #define R_ALPHA_DTPRELLO        35
1965: #define R_ALPHA_DTPREL16        36
1966: #define R_ALPHA_GOTTPREL        37
1967: #define R_ALPHA_TPREL64         38
1968: #define R_ALPHA_TPRELHI         39
1969: #define R_ALPHA_TPRELLO         40
1970: #define R_ALPHA_TPREL16         41
1971: 
1972: #define R_ALPHA_NUM             46
1973: 
1974: 
1975: #define LITUSE_ALPHA_ADDR       0
1976: #define LITUSE_ALPHA_BASE       1
1977: #define LITUSE_ALPHA_BYTOFF     2
1978: #define LITUSE_ALPHA_JSR        3
1979: #define LITUSE_ALPHA_TLS_GD     4
1980: #define LITUSE_ALPHA_TLS_LDM    5
1981: 
1982: 
1983: #define DT_ALPHA_PLTRO          (DT_LOPROC + 0)
1984: #define DT_ALPHA_NUM            1
1985: 
1986: 
1987: 
1988: 
1989: #define EF_PPC_EMB              0x80000000      
1990: 
1991: 
1992: #define EF_PPC_RELOCATABLE      0x00010000      
1993: #define EF_PPC_RELOCATABLE_LIB  0x00008000      
1994: 
1995: 
1996: 
1997: #define R_PPC_NONE              0
1998: #define R_PPC_ADDR32            1       
1999: #define R_PPC_ADDR24            2       
2000: #define R_PPC_ADDR16            3       
2001: #define R_PPC_ADDR16_LO         4       
2002: #define R_PPC_ADDR16_HI         5       
2003: #define R_PPC_ADDR16_HA         6       
2004: #define R_PPC_ADDR14            7       
2005: #define R_PPC_ADDR14_BRTAKEN    8
2006: #define R_PPC_ADDR14_BRNTAKEN   9
2007: #define R_PPC_REL24             10      
2008: #define R_PPC_REL14             11      
2009: #define R_PPC_REL14_BRTAKEN     12
2010: #define R_PPC_REL14_BRNTAKEN    13
2011: #define R_PPC_GOT16             14
2012: #define R_PPC_GOT16_LO          15
2013: #define R_PPC_GOT16_HI          16
2014: #define R_PPC_GOT16_HA          17
2015: #define R_PPC_PLTREL24          18
2016: #define R_PPC_COPY              19
2017: #define R_PPC_GLOB_DAT          20
2018: #define R_PPC_JMP_SLOT          21
2019: #define R_PPC_RELATIVE          22
2020: #define R_PPC_LOCAL24PC         23
2021: #define R_PPC_UADDR32           24
2022: #define R_PPC_UADDR16           25
2023: #define R_PPC_REL32             26
2024: #define R_PPC_PLT32             27
2025: #define R_PPC_PLTREL32          28
2026: #define R_PPC_PLT16_LO          29
2027: #define R_PPC_PLT16_HI          30
2028: #define R_PPC_PLT16_HA          31
2029: #define R_PPC_SDAREL16          32
2030: #define R_PPC_SECTOFF           33
2031: #define R_PPC_SECTOFF_LO        34
2032: #define R_PPC_SECTOFF_HI        35
2033: #define R_PPC_SECTOFF_HA        36
2034: 
2035: 
2036: #define R_PPC_TLS               67 
2037: #define R_PPC_DTPMOD32          68 
2038: #define R_PPC_TPREL16           69 
2039: #define R_PPC_TPREL16_LO        70 
2040: #define R_PPC_TPREL16_HI        71 
2041: #define R_PPC_TPREL16_HA        72 
2042: #define R_PPC_TPREL32           73 
2043: #define R_PPC_DTPREL16          74 
2044: #define R_PPC_DTPREL16_LO       75 
2045: #define R_PPC_DTPREL16_HI       76 
2046: #define R_PPC_DTPREL16_HA       77 
2047: #define R_PPC_DTPREL32          78 
2048: #define R_PPC_GOT_TLSGD16       79 
2049: #define R_PPC_GOT_TLSGD16_LO    80 
2050: #define R_PPC_GOT_TLSGD16_HI    81 
2051: #define R_PPC_GOT_TLSGD16_HA    82 
2052: #define R_PPC_GOT_TLSLD16       83 
2053: #define R_PPC_GOT_TLSLD16_LO    84 
2054: #define R_PPC_GOT_TLSLD16_HI    85 
2055: #define R_PPC_GOT_TLSLD16_HA    86 
2056: #define R_PPC_GOT_TPREL16       87 
2057: #define R_PPC_GOT_TPREL16_LO    88 
2058: #define R_PPC_GOT_TPREL16_HI    89 
2059: #define R_PPC_GOT_TPREL16_HA    90 
2060: #define R_PPC_GOT_DTPREL16      91 
2061: #define R_PPC_GOT_DTPREL16_LO   92 
2062: #define R_PPC_GOT_DTPREL16_HI   93 
2063: #define R_PPC_GOT_DTPREL16_HA   94 
2064: 
2065: 
2066: 
2067: #define R_PPC_EMB_NADDR32       101
2068: #define R_PPC_EMB_NADDR16       102
2069: #define R_PPC_EMB_NADDR16_LO    103
2070: #define R_PPC_EMB_NADDR16_HI    104
2071: #define R_PPC_EMB_NADDR16_HA    105
2072: #define R_PPC_EMB_SDAI16        106
2073: #define R_PPC_EMB_SDA2I16       107
2074: #define R_PPC_EMB_SDA2REL       108
2075: #define R_PPC_EMB_SDA21         109     
2076: #define R_PPC_EMB_MRKREF        110
2077: #define R_PPC_EMB_RELSEC16      111
2078: #define R_PPC_EMB_RELST_LO      112
2079: #define R_PPC_EMB_RELST_HI      113
2080: #define R_PPC_EMB_RELST_HA      114
2081: #define R_PPC_EMB_BIT_FLD       115
2082: #define R_PPC_EMB_RELSDA        116     
2083: 
2084: 
2085: #define R_PPC_DIAB_SDA21_LO     180     
2086: #define R_PPC_DIAB_SDA21_HI     181     
2087: #define R_PPC_DIAB_SDA21_HA     182     
2088: #define R_PPC_DIAB_RELSDA_LO    183     
2089: #define R_PPC_DIAB_RELSDA_HI    184     
2090: #define R_PPC_DIAB_RELSDA_HA    185     
2091: 
2092: 
2093: #define R_PPC_IRELATIVE         248
2094: 
2095: 
2096: #define R_PPC_REL16             249     
2097: #define R_PPC_REL16_LO          250     
2098: #define R_PPC_REL16_HI          251     
2099: #define R_PPC_REL16_HA          252     
2100: 
2101: 
2102: 
2103: #define R_PPC_TOC16             255
2104: 
2105: 
2106: #define DT_PPC_GOT              (DT_LOPROC + 0)
2107: #define DT_PPC_NUM              1
2108: 
2109: 
2110: #define R_PPC64_NONE            R_PPC_NONE
2111: #define R_PPC64_ADDR32          R_PPC_ADDR32 
2112: #define R_PPC64_ADDR24          R_PPC_ADDR24 
2113: #define R_PPC64_ADDR16          R_PPC_ADDR16 
2114: #define R_PPC64_ADDR16_LO       R_PPC_ADDR16_LO 
2115: #define R_PPC64_ADDR16_HI       R_PPC_ADDR16_HI 
2116: #define R_PPC64_ADDR16_HA       R_PPC_ADDR16_HA 
2117: #define R_PPC64_ADDR14          R_PPC_ADDR14 
2118: #define R_PPC64_ADDR14_BRTAKEN  R_PPC_ADDR14_BRTAKEN
2119: #define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN
2120: #define R_PPC64_REL24           R_PPC_REL24 
2121: #define R_PPC64_REL14           R_PPC_REL14 
2122: #define R_PPC64_REL14_BRTAKEN   R_PPC_REL14_BRTAKEN
2123: #define R_PPC64_REL14_BRNTAKEN  R_PPC_REL14_BRNTAKEN
2124: #define R_PPC64_GOT16           R_PPC_GOT16
2125: #define R_PPC64_GOT16_LO        R_PPC_GOT16_LO
2126: #define R_PPC64_GOT16_HI        R_PPC_GOT16_HI
2127: #define R_PPC64_GOT16_HA        R_PPC_GOT16_HA
2128: 
2129: #define R_PPC64_COPY            R_PPC_COPY
2130: #define R_PPC64_GLOB_DAT        R_PPC_GLOB_DAT
2131: #define R_PPC64_JMP_SLOT        R_PPC_JMP_SLOT
2132: #define R_PPC64_RELATIVE        R_PPC_RELATIVE
2133: 
2134: #define R_PPC64_UADDR32         R_PPC_UADDR32
2135: #define R_PPC64_UADDR16         R_PPC_UADDR16
2136: #define R_PPC64_REL32           R_PPC_REL32
2137: #define R_PPC64_PLT32           R_PPC_PLT32
2138: #define R_PPC64_PLTREL32        R_PPC_PLTREL32
2139: #define R_PPC64_PLT16_LO        R_PPC_PLT16_LO
2140: #define R_PPC64_PLT16_HI        R_PPC_PLT16_HI
2141: #define R_PPC64_PLT16_HA        R_PPC_PLT16_HA
2142: 
2143: #define R_PPC64_SECTOFF         R_PPC_SECTOFF
2144: #define R_PPC64_SECTOFF_LO      R_PPC_SECTOFF_LO
2145: #define R_PPC64_SECTOFF_HI      R_PPC_SECTOFF_HI
2146: #define R_PPC64_SECTOFF_HA      R_PPC_SECTOFF_HA
2147: #define R_PPC64_ADDR30          37 
2148: #define R_PPC64_ADDR64          38 
2149: #define R_PPC64_ADDR16_HIGHER   39 
2150: #define R_PPC64_ADDR16_HIGHERA  40 
2151: #define R_PPC64_ADDR16_HIGHEST  41 
2152: #define R_PPC64_ADDR16_HIGHESTA 42 
2153: #define R_PPC64_UADDR64         43 
2154: #define R_PPC64_REL64           44 
2155: #define R_PPC64_PLT64           45 
2156: #define R_PPC64_PLTREL64        46 
2157: #define R_PPC64_TOC16           47 
2158: #define R_PPC64_TOC16_LO        48 
2159: #define R_PPC64_TOC16_HI        49 
2160: #define R_PPC64_TOC16_HA        50 
2161: #define R_PPC64_TOC             51 
2162: #define R_PPC64_PLTGOT16        52 
2163: #define R_PPC64_PLTGOT16_LO     53 
2164: #define R_PPC64_PLTGOT16_HI     54 
2165: #define R_PPC64_PLTGOT16_HA     55 
2166: 
2167: #define R_PPC64_ADDR16_DS       56 
2168: #define R_PPC64_ADDR16_LO_DS    57 
2169: #define R_PPC64_GOT16_DS        58 
2170: #define R_PPC64_GOT16_LO_DS     59 
2171: #define R_PPC64_PLT16_LO_DS     60 
2172: #define R_PPC64_SECTOFF_DS      61 
2173: #define R_PPC64_SECTOFF_LO_DS   62 
2174: #define R_PPC64_TOC16_DS        63 
2175: #define R_PPC64_TOC16_LO_DS     64 
2176: #define R_PPC64_PLTGOT16_DS     65 
2177: #define R_PPC64_PLTGOT16_LO_DS  66 
2178: 
2179: 
2180: #define R_PPC64_TLS             67 
2181: #define R_PPC64_DTPMOD64        68 
2182: #define R_PPC64_TPREL16         69 
2183: #define R_PPC64_TPREL16_LO      70 
2184: #define R_PPC64_TPREL16_HI      71 
2185: #define R_PPC64_TPREL16_HA      72 
2186: #define R_PPC64_TPREL64         73 
2187: #define R_PPC64_DTPREL16        74 
2188: #define R_PPC64_DTPREL16_LO     75 
2189: #define R_PPC64_DTPREL16_HI     76 
2190: #define R_PPC64_DTPREL16_HA     77 
2191: #define R_PPC64_DTPREL64        78 
2192: #define R_PPC64_GOT_TLSGD16     79 
2193: #define R_PPC64_GOT_TLSGD16_LO  80 
2194: #define R_PPC64_GOT_TLSGD16_HI  81 
2195: #define R_PPC64_GOT_TLSGD16_HA  82 
2196: #define R_PPC64_GOT_TLSLD16     83 
2197: #define R_PPC64_GOT_TLSLD16_LO  84 
2198: #define R_PPC64_GOT_TLSLD16_HI  85 
2199: #define R_PPC64_GOT_TLSLD16_HA  86 
2200: #define R_PPC64_GOT_TPREL16_DS  87 
2201: #define R_PPC64_GOT_TPREL16_LO_DS 88 
2202: #define R_PPC64_GOT_TPREL16_HI  89 
2203: #define R_PPC64_GOT_TPREL16_HA  90 
2204: #define R_PPC64_GOT_DTPREL16_DS 91 
2205: #define R_PPC64_GOT_DTPREL16_LO_DS 92 
2206: #define R_PPC64_GOT_DTPREL16_HI 93 
2207: #define R_PPC64_GOT_DTPREL16_HA 94 
2208: #define R_PPC64_TPREL16_DS      95 
2209: #define R_PPC64_TPREL16_LO_DS   96 
2210: #define R_PPC64_TPREL16_HIGHER  97 
2211: #define R_PPC64_TPREL16_HIGHERA 98 
2212: #define R_PPC64_TPREL16_HIGHEST 99 
2213: #define R_PPC64_TPREL16_HIGHESTA 100 
2214: #define R_PPC64_DTPREL16_DS     101 
2215: #define R_PPC64_DTPREL16_LO_DS  102 
2216: #define R_PPC64_DTPREL16_HIGHER 103 
2217: #define R_PPC64_DTPREL16_HIGHERA 104 
2218: #define R_PPC64_DTPREL16_HIGHEST 105 
2219: #define R_PPC64_DTPREL16_HIGHESTA 106 
2220: 
2221: 
2222: #define R_PPC64_JMP_IREL        247
2223: #define R_PPC64_IRELATIVE       248
2224: #define R_PPC64_REL16           249     
2225: #define R_PPC64_REL16_LO        250     
2226: #define R_PPC64_REL16_HI        251     
2227: #define R_PPC64_REL16_HA        252     
2228: 
2229: 
2230: #define DT_PPC64_GLINK  (DT_LOPROC + 0)
2231: #define DT_PPC64_OPD    (DT_LOPROC + 1)
2232: #define DT_PPC64_OPDSZ  (DT_LOPROC + 2)
2233: #define DT_PPC64_NUM    3
2234: 
2235: 
2236: 
2237: 
2238: 
2239: #define EF_ARM_RELEXEC          0x01
2240: #define EF_ARM_HASENTRY         0x02
2241: #define EF_ARM_INTERWORK        0x04
2242: #define EF_ARM_APCS_26          0x08
2243: #define EF_ARM_APCS_FLOAT       0x10
2244: #define EF_ARM_PIC              0x20
2245: #define EF_ARM_ALIGN8           0x40 
2246: #define EF_ARM_NEW_ABI          0x80
2247: #define EF_ARM_OLD_ABI          0x100
2248: #define EF_ARM_SOFT_FLOAT       0x200
2249: #define EF_ARM_VFP_FLOAT        0x400
2250: #define EF_ARM_MAVERICK_FLOAT   0x800
2251: 
2252: 
2253: 
2254: 
2255: #define EF_ARM_SYMSARESORTED    0x04
2256: #define EF_ARM_DYNSYMSUSESEGIDX 0x08
2257: #define EF_ARM_MAPSYMSFIRST     0x10
2258: #define EF_ARM_EABIMASK         0XFF000000
2259: 
2260: 
2261: #define EF_ARM_BE8          0x00800000
2262: #define EF_ARM_LE8          0x00400000
2263: 
2264: #define EF_ARM_EABI_VERSION(flags)      ((flags) & EF_ARM_EABIMASK)
2265: #define EF_ARM_EABI_UNKNOWN     0x00000000
2266: #define EF_ARM_EABI_VER1        0x01000000
2267: #define EF_ARM_EABI_VER2        0x02000000
2268: #define EF_ARM_EABI_VER3        0x03000000
2269: #define EF_ARM_EABI_VER4        0x04000000
2270: #define EF_ARM_EABI_VER5        0x05000000
2271: 
2272: 
2273: #define STT_ARM_TFUNC           STT_LOPROC 
2274: #define STT_ARM_16BIT           STT_HIPROC 
2275: 
2276: 
2277: #define SHF_ARM_ENTRYSECT       0x10000000 
2278: #define SHF_ARM_COMDEF          0x80000000 
2279: 
2280: 
2281: 
2282: #define PF_ARM_SB               0x10000000 
2283: 
2284: #define PF_ARM_PI               0x20000000 
2285: #define PF_ARM_ABS              0x40000000 
2286: 
2287: 
2288: #define PT_ARM_EXIDX            (PT_LOPROC + 1) 
2289: 
2290: 
2291: #define SHT_ARM_EXIDX           (SHT_LOPROC + 1) 
2292: #define SHT_ARM_PREEMPTMAP      (SHT_LOPROC + 2) 
2293: #define SHT_ARM_ATTRIBUTES      (SHT_LOPROC + 3) 
2294: 
2295: 
2296: 
2297: 
2298: #define R_ARM_NONE              0       
2299: #define R_ARM_PC24              1       
2300: #define R_ARM_ABS32             2       
2301: #define R_ARM_REL32             3       
2302: #define R_ARM_PC13              4
2303: #define R_ARM_ABS16             5       
2304: #define R_ARM_ABS12             6       
2305: #define R_ARM_THM_ABS5          7
2306: #define R_ARM_ABS8              8       
2307: #define R_ARM_SBREL32           9
2308: #define R_ARM_THM_PC22          10
2309: #define R_ARM_THM_PC8           11
2310: #define R_ARM_AMP_VCALL9        12
2311: #define R_ARM_SWI24             13      
2312: #define R_ARM_TLS_DESC          13      
2313: #define R_ARM_THM_SWI8          14
2314: #define R_ARM_XPC25             15
2315: #define R_ARM_THM_XPC22         16
2316: #define R_ARM_TLS_DTPMOD32      17      
2317: #define R_ARM_TLS_DTPOFF32      18      
2318: #define R_ARM_TLS_TPOFF32       19      
2319: #define R_ARM_COPY              20      
2320: #define R_ARM_GLOB_DAT          21      
2321: #define R_ARM_JUMP_SLOT         22      
2322: #define R_ARM_RELATIVE          23      
2323: #define R_ARM_GOTOFF            24      
2324: #define R_ARM_GOTPC             25      
2325: #define R_ARM_GOT32             26      
2326: #define R_ARM_PLT32             27      
2327: #define R_ARM_ALU_PCREL_7_0     32
2328: #define R_ARM_ALU_PCREL_15_8    33
2329: #define R_ARM_ALU_PCREL_23_15   34
2330: #define R_ARM_LDR_SBREL_11_0    35
2331: #define R_ARM_ALU_SBREL_19_12   36
2332: #define R_ARM_ALU_SBREL_27_20   37
2333: #define R_ARM_TLS_GOTDESC       90
2334: #define R_ARM_TLS_CALL          91
2335: #define R_ARM_TLS_DESCSEQ       92
2336: #define R_ARM_THM_TLS_CALL      93
2337: #define R_ARM_GNU_VTENTRY       100
2338: #define R_ARM_GNU_VTINHERIT     101
2339: #define R_ARM_THM_PC11          102     
2340: #define R_ARM_THM_PC9           103     
2341: #define R_ARM_TLS_GD32          104     
2342: 
2343: #define R_ARM_TLS_LDM32         105     
2344: 
2345: #define R_ARM_TLS_LDO32         106     
2346: 
2347: #define R_ARM_TLS_IE32          107     
2348: 
2349: #define R_ARM_TLS_LE32          108     
2350: 
2351: #define R_ARM_THM_TLS_DESCSEQ   129
2352: #define R_ARM_IRELATIVE         160
2353: #define R_ARM_RXPC25            249
2354: #define R_ARM_RSBREL32          250
2355: #define R_ARM_THM_RPC22         251
2356: #define R_ARM_RREL32            252
2357: #define R_ARM_RABS22            253
2358: #define R_ARM_RPC24             254
2359: #define R_ARM_RBASE             255
2360: 
2361: #define R_ARM_NUM               256
2362: 
2363: 
2364: 
2365: 
2366: #define EF_IA_64_MASKOS         0x0000000f      
2367: #define EF_IA_64_ABI64          0x00000010      
2368: #define EF_IA_64_ARCH           0xff000000      
2369: 
2370: 
2371: #define PT_IA_64_ARCHEXT        (PT_LOPROC + 0) 
2372: #define PT_IA_64_UNWIND         (PT_LOPROC + 1) 
2373: #define PT_IA_64_HP_OPT_ANOT    (PT_LOOS + 0x12)
2374: #define PT_IA_64_HP_HSL_ANOT    (PT_LOOS + 0x13)
2375: #define PT_IA_64_HP_STACK       (PT_LOOS + 0x14)
2376: 
2377: 
2378: #define PF_IA_64_NORECOV        0x80000000      
2379: 
2380: 
2381: #define SHT_IA_64_EXT           (SHT_LOPROC + 0) 
2382: #define SHT_IA_64_UNWIND        (SHT_LOPROC + 1) 
2383: 
2384: 
2385: #define SHF_IA_64_SHORT         0x10000000      
2386: #define SHF_IA_64_NORECOV       0x20000000      
2387: 
2388: 
2389: #define DT_IA_64_PLT_RESERVE    (DT_LOPROC + 0)
2390: #define DT_IA_64_NUM            1
2391: 
2392: 
2393: #define R_IA64_NONE             0x00    
2394: #define R_IA64_IMM14            0x21    
2395: #define R_IA64_IMM22            0x22    
2396: #define R_IA64_IMM64            0x23    
2397: #define R_IA64_DIR32MSB         0x24    
2398: #define R_IA64_DIR32LSB         0x25    
2399: #define R_IA64_DIR64MSB         0x26    
2400: #define R_IA64_DIR64LSB         0x27    
2401: #define R_IA64_GPREL22          0x2a    
2402: #define R_IA64_GPREL64I         0x2b    
2403: #define R_IA64_GPREL32MSB       0x2c    
2404: #define R_IA64_GPREL32LSB       0x2d    
2405: #define R_IA64_GPREL64MSB       0x2e    
2406: #define R_IA64_GPREL64LSB       0x2f    
2407: #define R_IA64_LTOFF22          0x32    
2408: #define R_IA64_LTOFF64I         0x33    
2409: #define R_IA64_PLTOFF22         0x3a    
2410: #define R_IA64_PLTOFF64I        0x3b    
2411: #define R_IA64_PLTOFF64MSB      0x3e    
2412: #define R_IA64_PLTOFF64LSB      0x3f    
2413: #define R_IA64_FPTR64I          0x43    
2414: #define R_IA64_FPTR32MSB        0x44    
2415: #define R_IA64_FPTR32LSB        0x45    
2416: #define R_IA64_FPTR64MSB        0x46    
2417: #define R_IA64_FPTR64LSB        0x47    
2418: #define R_IA64_PCREL60B         0x48    
2419: #define R_IA64_PCREL21B         0x49    
2420: #define R_IA64_PCREL21M         0x4a    
2421: #define R_IA64_PCREL21F         0x4b    
2422: #define R_IA64_PCREL32MSB       0x4c    
2423: #define R_IA64_PCREL32LSB       0x4d    
2424: #define R_IA64_PCREL64MSB       0x4e    
2425: #define R_IA64_PCREL64LSB       0x4f    
2426: #define R_IA64_LTOFF_FPTR22     0x52    
2427: #define R_IA64_LTOFF_FPTR64I    0x53    
2428: #define R_IA64_LTOFF_FPTR32MSB  0x54    
2429: #define R_IA64_LTOFF_FPTR32LSB  0x55    
2430: #define R_IA64_LTOFF_FPTR64MSB  0x56    
2431: #define R_IA64_LTOFF_FPTR64LSB  0x57    
2432: #define R_IA64_SEGREL32MSB      0x5c    
2433: #define R_IA64_SEGREL32LSB      0x5d    
2434: #define R_IA64_SEGREL64MSB      0x5e    
2435: #define R_IA64_SEGREL64LSB      0x5f    
2436: #define R_IA64_SECREL32MSB      0x64    
2437: #define R_IA64_SECREL32LSB      0x65    
2438: #define R_IA64_SECREL64MSB      0x66    
2439: #define R_IA64_SECREL64LSB      0x67    
2440: #define R_IA64_REL32MSB         0x6c    
2441: #define R_IA64_REL32LSB         0x6d    
2442: #define R_IA64_REL64MSB         0x6e    
2443: #define R_IA64_REL64LSB         0x6f    
2444: #define R_IA64_LTV32MSB         0x74    
2445: #define R_IA64_LTV32LSB         0x75    
2446: #define R_IA64_LTV64MSB         0x76    
2447: #define R_IA64_LTV64LSB         0x77    
2448: #define R_IA64_PCREL21BI        0x79    
2449: #define R_IA64_PCREL22          0x7a    
2450: #define R_IA64_PCREL64I         0x7b    
2451: #define R_IA64_IPLTMSB          0x80    
2452: #define R_IA64_IPLTLSB          0x81    
2453: #define R_IA64_COPY             0x84    
2454: #define R_IA64_SUB              0x85    
2455: #define R_IA64_LTOFF22X         0x86    
2456: #define R_IA64_LDXMOV           0x87    
2457: #define R_IA64_TPREL14          0x91    
2458: #define R_IA64_TPREL22          0x92    
2459: #define R_IA64_TPREL64I         0x93    
2460: #define R_IA64_TPREL64MSB       0x96    
2461: #define R_IA64_TPREL64LSB       0x97    
2462: #define R_IA64_LTOFF_TPREL22    0x9a    
2463: #define R_IA64_DTPMOD64MSB      0xa6    
2464: #define R_IA64_DTPMOD64LSB      0xa7    
2465: #define R_IA64_LTOFF_DTPMOD22   0xaa    
2466: #define R_IA64_DTPREL14         0xb1    
2467: #define R_IA64_DTPREL22         0xb2    
2468: #define R_IA64_DTPREL64I        0xb3    
2469: #define R_IA64_DTPREL32MSB      0xb4    
2470: #define R_IA64_DTPREL32LSB      0xb5    
2471: #define R_IA64_DTPREL64MSB      0xb6    
2472: #define R_IA64_DTPREL64LSB      0xb7    
2473: #define R_IA64_LTOFF_DTPREL22   0xba    
2474: 
2475: 
2476: 
2477: 
2478: #define EF_SH_MACH_MASK         0x1f
2479: #define EF_SH_UNKNOWN           0x0
2480: #define EF_SH1                  0x1
2481: #define EF_SH2                  0x2
2482: #define EF_SH3                  0x3
2483: #define EF_SH_DSP               0x4
2484: #define EF_SH3_DSP              0x5
2485: #define EF_SH4AL_DSP            0x6
2486: #define EF_SH3E                 0x8
2487: #define EF_SH4                  0x9
2488: #define EF_SH2E                 0xb
2489: #define EF_SH4A                 0xc
2490: #define EF_SH2A                 0xd
2491: #define EF_SH4_NOFPU            0x10
2492: #define EF_SH4A_NOFPU           0x11
2493: #define EF_SH4_NOMMU_NOFPU      0x12
2494: #define EF_SH2A_NOFPU           0x13
2495: #define EF_SH3_NOMMU            0x14
2496: #define EF_SH2A_SH4_NOFPU       0x15
2497: #define EF_SH2A_SH3_NOFPU       0x16
2498: #define EF_SH2A_SH4             0x17
2499: #define EF_SH2A_SH3E            0x18
2500: 
2501: 
2502: #define R_SH_NONE               0
2503: #define R_SH_DIR32              1
2504: #define R_SH_REL32              2
2505: #define R_SH_DIR8WPN            3
2506: #define R_SH_IND12W             4
2507: #define R_SH_DIR8WPL            5
2508: #define R_SH_DIR8WPZ            6
2509: #define R_SH_DIR8BP             7
2510: #define R_SH_DIR8W              8
2511: #define R_SH_DIR8L              9
2512: #define R_SH_SWITCH16           25
2513: #define R_SH_SWITCH32           26
2514: #define R_SH_USES               27
2515: #define R_SH_COUNT              28
2516: #define R_SH_ALIGN              29
2517: #define R_SH_CODE               30
2518: #define R_SH_DATA               31
2519: #define R_SH_LABEL              32
2520: #define R_SH_SWITCH8            33
2521: #define R_SH_GNU_VTINHERIT      34
2522: #define R_SH_GNU_VTENTRY        35
2523: #define R_SH_TLS_GD_32          144
2524: #define R_SH_TLS_LD_32          145
2525: #define R_SH_TLS_LDO_32         146
2526: #define R_SH_TLS_IE_32          147
2527: #define R_SH_TLS_LE_32          148
2528: #define R_SH_TLS_DTPMOD32       149
2529: #define R_SH_TLS_DTPOFF32       150
2530: #define R_SH_TLS_TPOFF32        151
2531: #define R_SH_GOT32              160
2532: #define R_SH_PLT32              161
2533: #define R_SH_COPY               162
2534: #define R_SH_GLOB_DAT           163
2535: #define R_SH_JMP_SLOT           164
2536: #define R_SH_RELATIVE           165
2537: #define R_SH_GOTOFF             166
2538: #define R_SH_GOTPC              167
2539: 
2540: #define R_SH_NUM                256
2541: 
2542: 
2543: 
2544: 
2545: 
2546: #define EF_S390_HIGH_GPRS    0x00000001  
2547: 
2548: 
2549: 
2550: #define R_390_NONE              0       
2551: #define R_390_8                 1       
2552: #define R_390_12                2       
2553: #define R_390_16                3       
2554: #define R_390_32                4       
2555: #define R_390_PC32              5       
2556: #define R_390_GOT12             6       
2557: #define R_390_GOT32             7       
2558: #define R_390_PLT32             8       
2559: #define R_390_COPY              9       
2560: #define R_390_GLOB_DAT          10      
2561: #define R_390_JMP_SLOT          11      
2562: #define R_390_RELATIVE          12      
2563: #define R_390_GOTOFF32          13      
2564: #define R_390_GOTPC             14      
2565: #define R_390_GOT16             15      
2566: #define R_390_PC16              16      
2567: #define R_390_PC16DBL           17      
2568: #define R_390_PLT16DBL          18      
2569: #define R_390_PC32DBL           19      
2570: #define R_390_PLT32DBL          20      
2571: #define R_390_GOTPCDBL          21      
2572: #define R_390_64                22      
2573: #define R_390_PC64              23      
2574: #define R_390_GOT64             24      
2575: #define R_390_PLT64             25      
2576: #define R_390_GOTENT            26      
2577: #define R_390_GOTOFF16          27      
2578: #define R_390_GOTOFF64          28      
2579: #define R_390_GOTPLT12          29      
2580: #define R_390_GOTPLT16          30      
2581: #define R_390_GOTPLT32          31      
2582: #define R_390_GOTPLT64          32      
2583: #define R_390_GOTPLTENT         33      
2584: #define R_390_PLTOFF16          34      
2585: #define R_390_PLTOFF32          35      
2586: #define R_390_PLTOFF64          36      
2587: #define R_390_TLS_LOAD          37      
2588: #define R_390_TLS_GDCALL        38      
2589: 
2590: #define R_390_TLS_LDCALL        39      
2591: 
2592: #define R_390_TLS_GD32          40      
2593: 
2594: #define R_390_TLS_GD64          41      
2595: 
2596: #define R_390_TLS_GOTIE12       42      
2597: 
2598: #define R_390_TLS_GOTIE32       43      
2599: 
2600: #define R_390_TLS_GOTIE64       44      
2601: 
2602: #define R_390_TLS_LDM32         45      
2603: 
2604: #define R_390_TLS_LDM64         46      
2605: 
2606: #define R_390_TLS_IE32          47      
2607: 
2608: #define R_390_TLS_IE64          48      
2609: 
2610: #define R_390_TLS_IEENT         49      
2611: 
2612: #define R_390_TLS_LE32          50      
2613: 
2614: #define R_390_TLS_LE64          51      
2615: 
2616: #define R_390_TLS_LDO32         52      
2617: 
2618: #define R_390_TLS_LDO64         53      
2619: 
2620: #define R_390_TLS_DTPMOD        54      
2621: #define R_390_TLS_DTPOFF        55      
2622: #define R_390_TLS_TPOFF         56      
2623: 
2624: #define R_390_20                57      
2625: #define R_390_GOT20             58      
2626: #define R_390_GOTPLT20          59      
2627: #define R_390_TLS_GOTIE20       60      
2628: 
2629: 
2630: #define R_390_NUM               61
2631: 
2632: 
2633: 
2634: #define R_CRIS_NONE             0
2635: #define R_CRIS_8                1
2636: #define R_CRIS_16               2
2637: #define R_CRIS_32               3
2638: #define R_CRIS_8_PCREL          4
2639: #define R_CRIS_16_PCREL         5
2640: #define R_CRIS_32_PCREL         6
2641: #define R_CRIS_GNU_VTINHERIT    7
2642: #define R_CRIS_GNU_VTENTRY      8
2643: #define R_CRIS_COPY             9
2644: #define R_CRIS_GLOB_DAT         10
2645: #define R_CRIS_JUMP_SLOT        11
2646: #define R_CRIS_RELATIVE         12
2647: #define R_CRIS_16_GOT           13
2648: #define R_CRIS_32_GOT           14
2649: #define R_CRIS_16_GOTPLT        15
2650: #define R_CRIS_32_GOTPLT        16
2651: #define R_CRIS_32_GOTREL        17
2652: #define R_CRIS_32_PLT_GOTREL    18
2653: #define R_CRIS_32_PLT_PCREL     19
2654: 
2655: #define R_CRIS_NUM              20
2656: 
2657: 
2658: 
2659: #define R_X86_64_NONE           0       
2660: #define R_X86_64_64             1       
2661: #define R_X86_64_PC32           2       
2662: #define R_X86_64_GOT32          3       
2663: #define R_X86_64_PLT32          4       
2664: #define R_X86_64_COPY           5       
2665: #define R_X86_64_GLOB_DAT       6       
2666: #define R_X86_64_JUMP_SLOT      7       
2667: #define R_X86_64_RELATIVE       8       
2668: #define R_X86_64_GOTPCREL       9       
2669: 
2670: #define R_X86_64_32             10      
2671: #define R_X86_64_32S            11      
2672: #define R_X86_64_16             12      
2673: #define R_X86_64_PC16           13      
2674: #define R_X86_64_8              14      
2675: #define R_X86_64_PC8            15      
2676: #define R_X86_64_DTPMOD64       16      
2677: #define R_X86_64_DTPOFF64       17      
2678: #define R_X86_64_TPOFF64        18      
2679: #define R_X86_64_TLSGD          19      
2680: 
2681: #define R_X86_64_TLSLD          20      
2682: 
2683: #define R_X86_64_DTPOFF32       21      
2684: #define R_X86_64_GOTTPOFF       22      
2685: 
2686: #define R_X86_64_TPOFF32        23      
2687: #define R_X86_64_PC64           24      
2688: #define R_X86_64_GOTOFF64       25      
2689: #define R_X86_64_GOTPC32        26      
2690: 
2691: #define R_X86_64_GOT64          27      
2692: #define R_X86_64_GOTPCREL64     28      
2693: 
2694: #define R_X86_64_GOTPC64        29      
2695: #define R_X86_64_GOTPLT64       30      
2696: #define R_X86_64_PLTOFF64       31      
2697: 
2698: #define R_X86_64_SIZE32         32      
2699: #define R_X86_64_SIZE64         33      
2700: #define R_X86_64_GOTPC32_TLSDESC 34     
2701: #define R_X86_64_TLSDESC_CALL   35      
2702: 
2703: #define R_X86_64_TLSDESC        36      
2704: #define R_X86_64_IRELATIVE      37      
2705: 
2706: #define R_X86_64_NUM            38
2707: 
2708: 
2709: 
2710: #define R_MN10300_NONE          0       
2711: #define R_MN10300_32            1       
2712: #define R_MN10300_16            2       
2713: #define R_MN10300_8             3       
2714: #define R_MN10300_PCREL32       4       
2715: #define R_MN10300_PCREL16       5       
2716: #define R_MN10300_PCREL8        6       
2717: #define R_MN10300_GNU_VTINHERIT 7       
2718: #define R_MN10300_GNU_VTENTRY   8       
2719: #define R_MN10300_24            9       
2720: #define R_MN10300_GOTPC32       10      
2721: #define R_MN10300_GOTPC16       11      
2722: #define R_MN10300_GOTOFF32      12      
2723: #define R_MN10300_GOTOFF24      13      
2724: #define R_MN10300_GOTOFF16      14      
2725: #define R_MN10300_PLT32         15      
2726: #define R_MN10300_PLT16         16      
2727: #define R_MN10300_GOT32         17      
2728: #define R_MN10300_GOT24         18      
2729: #define R_MN10300_GOT16         19      
2730: #define R_MN10300_COPY          20      
2731: #define R_MN10300_GLOB_DAT      21      
2732: #define R_MN10300_JMP_SLOT      22      
2733: #define R_MN10300_RELATIVE      23      
2734: 
2735: #define R_MN10300_NUM           24
2736: 
2737: 
2738: 
2739: #define R_M32R_NONE             0       
2740: #define R_M32R_16               1       
2741: #define R_M32R_32               2       
2742: #define R_M32R_24               3       
2743: #define R_M32R_10_PCREL         4       
2744: #define R_M32R_18_PCREL         5       
2745: #define R_M32R_26_PCREL         6       
2746: #define R_M32R_HI16_ULO         7       
2747: #define R_M32R_HI16_SLO         8       
2748: #define R_M32R_LO16             9       
2749: #define R_M32R_SDA16            10      
2750: #define R_M32R_GNU_VTINHERIT    11
2751: #define R_M32R_GNU_VTENTRY      12
2752: 
2753: #define R_M32R_16_RELA          33      
2754: #define R_M32R_32_RELA          34      
2755: #define R_M32R_24_RELA          35      
2756: #define R_M32R_10_PCREL_RELA    36      
2757: #define R_M32R_18_PCREL_RELA    37      
2758: #define R_M32R_26_PCREL_RELA    38      
2759: #define R_M32R_HI16_ULO_RELA    39      
2760: #define R_M32R_HI16_SLO_RELA    40      
2761: #define R_M32R_LO16_RELA        41      
2762: #define R_M32R_SDA16_RELA       42      
2763: #define R_M32R_RELA_GNU_VTINHERIT       43
2764: #define R_M32R_RELA_GNU_VTENTRY 44
2765: #define R_M32R_REL32            45      
2766: 
2767: #define R_M32R_GOT24            48      
2768: #define R_M32R_26_PLTREL        49      
2769: #define R_M32R_COPY             50      
2770: #define R_M32R_GLOB_DAT         51      
2771: #define R_M32R_JMP_SLOT         52      
2772: #define R_M32R_RELATIVE         53      
2773: #define R_M32R_GOTOFF           54      
2774: #define R_M32R_GOTPC24          55      
2775: #define R_M32R_GOT16_HI_ULO     56      
2776: 
2777: #define R_M32R_GOT16_HI_SLO     57      
2778: 
2779: #define R_M32R_GOT16_LO         58      
2780: #define R_M32R_GOTPC_HI_ULO     59      
2781: 
2782: #define R_M32R_GOTPC_HI_SLO     60      
2783: 
2784: #define R_M32R_GOTPC_LO         61      
2785: 
2786: #define R_M32R_GOTOFF_HI_ULO    62      
2787: 
2788: #define R_M32R_GOTOFF_HI_SLO    63      
2789: 
2790: #define R_M32R_GOTOFF_LO        64      
2791: #define R_M32R_NUM              256     
2792: 
2793: 
2794: __END_DECLS
2795: 
2796: #endif  
2797: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved