📄 elf.h
字号:
#define R_MIPS_GOT_LO16 23#define R_MIPS_SUB 24#define R_MIPS_INSERT_A 25#define R_MIPS_INSERT_B 26#define R_MIPS_DELETE 27#define R_MIPS_HIGHER 28#define R_MIPS_HIGHEST 29#define R_MIPS_CALL_HI16 30#define R_MIPS_CALL_LO16 31#define R_MIPS_SCN_DISP 32#define R_MIPS_REL16 33#define R_MIPS_ADD_IMMEDIATE 34#define R_MIPS_PJUMP 35#define R_MIPS_RELGOT 36#define R_MIPS_JALR 37/* Keep this the last entry. */#define R_MIPS_NUM 38/* Legal values for p_type field of Elf32_Phdr. */#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */#define PT_MIPS_OPTIONS 0x70000002/* Special program header types. */#define PF_MIPS_LOCAL 0x10000000/* Legal values for d_tag field of Elf32_Dyn. */#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */#define DT_MIPS_FLAGS 0x70000005 /* Flags */#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */#define DT_MIPS_MSYM 0x70000007#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in DT_MIPS_DELTA_CLASS. */#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in DT_MIPS_DELTA_INSTANCE. */#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in DT_MIPS_DELTA_RELOC. */#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta relocations refer to. */#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in DT_MIPS_DELTA_SYM. */#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the class declaration. */#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in DT_MIPS_DELTA_CLASSSYM. */#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */#define DT_MIPS_PIXIE_INIT 0x70000023#define DT_MIPS_SYMBOL_LIB 0x70000024#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025#define DT_MIPS_LOCAL_GOTIDX 0x70000026#define DT_MIPS_HIDDEN_GOTIDX 0x70000027#define DT_MIPS_PROTECTED_GOTIDX 0x70000028#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */#define DT_MIPS_DYNSTR_ALIGN 0x7000002b#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve function stored in GOT. */#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added by rld on dlopen() calls. */#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */#define DT_MIPS_NUM 0x32/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */#define RHF_NONE 0 /* No flags */#define RHF_QUICKSTART (1 << 0) /* Use quickstart */#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */#define RHF_NO_MOVE (1 << 3)#define RHF_SGI_ONLY (1 << 4)#define RHF_GUARANTEE_INIT (1 << 5)#define RHF_DELTA_C_PLUS_PLUS (1 << 6)#define RHF_GUARANTEE_START_INIT (1 << 7)#define RHF_PIXIE (1 << 8)#define RHF_DEFAULT_DELAY_LOAD (1 << 9)#define RHF_REQUICKSTART (1 << 10)#define RHF_REQUICKSTARTED (1 << 11)#define RHF_CORD (1 << 12)#define RHF_NO_UNRES_UNDEF (1 << 13)#define RHF_RLD_ORDER_SAFE (1 << 14)/* Entries found in sections of type SHT_MIPS_LIBLIST. */typedef struct{ Elf32_Word l_name; /* Name (string table index) */ Elf32_Word l_time_stamp; /* Timestamp */ Elf32_Word l_checksum; /* Checksum */ Elf32_Word l_version; /* Interface version */ Elf32_Word l_flags; /* Flags */} Elf32_Lib;typedef struct{ Elf64_Word l_name; /* Name (string table index) */ Elf64_Word l_time_stamp; /* Timestamp */ Elf64_Word l_checksum; /* Checksum */ Elf64_Word l_version; /* Interface version */ Elf64_Word l_flags; /* Flags */} Elf64_Lib;/* Legal values for l_flags. */#define LL_NONE 0#define LL_EXACT_MATCH (1 << 0) /* Require exact match */#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */#define LL_REQUIRE_MINOR (1 << 2)#define LL_EXPORTS (1 << 3)#define LL_DELAY_LOAD (1 << 4)#define LL_DELTA (1 << 5)/* Entries found in sections of type SHT_MIPS_CONFLICT. */typedef Elf32_Addr Elf32_Conflict;/* HPPA specific definitions. *//* Legal values for e_flags field of Elf32_Ehdr. */#define EF_PARISC_TRAPNL 1 /* Trap nil pointer dereference. */#define EF_PARISC_EXT 2 /* Program uses arch. extensions. */#define EF_PARISC_ARCH 0xffff0000 /* Architecture version. *//* Defined values are: 0x020b PA-RISC 1.0 big-endian 0x0210 PA-RISC 1.1 big-endian 0x028b PA-RISC 1.0 little-endian 0x0290 PA-RISC 1.1 little-endian*//* Legal values for sh_type field of Elf32_Shdr. */#define SHT_PARISC_GOT 0x70000000 /* GOT for external data. */#define SHT_PARISC_ARCH 0x70000001 /* Architecture extensions. */#define SHT_PARISC_GLOBAL 0x70000002 /* Definition of $global$. */#define SHT_PARISC_MILLI 0x70000003 /* Millicode routines. */#define SHT_PARISC_UNWIND 0x70000004 /* Unwind information. */#define SHT_PARISC_PLT 0x70000005 /* Procedure linkage table. */#define SHT_PARISC_SDATA 0x70000006 /* Short initialized data. */#define SHT_PARISC_SBSS 0x70000007 /* Short uninitialized data. */#define SHT_PARISC_SYMEXTN 0x70000008 /* Argument/relocation info. */#define SHT_PARISC_STUBS 0x70000009 /* Linker stubs. *//* Legal values for sh_flags field of Elf32_Shdr. */#define SHF_PARISC_GLOBAL 0x10000000 /* Section defines dp. */#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. *//* Legal values for ST_TYPE subfield of st_info (symbol type). */#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. *//* HPPA relocs. */#define R_PARISC_NONE 0 /* No reloc. */#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */#define R_PARISC_DIR14R 4 /* Right 14 bits of eff. address. */#define R_PARISC_PCREL21L 5 /* PC-relative, left 21 bits. */#define R_PARISC_PCREL14R 6 /* PC-relative, right 14 bits. */#define R_PARISC_PCREL17C 7 /* Conditional PC-relative, ignore if displacement > 17bits. */#define R_PARISC_PCREL17F 8 /* Conditional PC-relative, must fit in 17bits. */#define R_PARISC_DPREL21L 9 /* DP-relative, left 21 bits. */#define R_PARISC_DPREL14R 10 /* DP-relative, right 14 bits. */#define R_PARISC_DPREL14F 11 /* DP-relative, must bit in 14 bits. */#define R_PARISC_DLTREL21L 12 /* DLT-relative, left 21 bits. */#define R_PARISC_DLTREL14R 13 /* DLT-relative, right 14 bits. */#define R_PARISC_DLTREL14F 14 /* DLT-relative, must fit in 14 bits.*/#define R_PARISC_DLTIND21L 15 /* DLT-relative indirect, left 21 bits. */#define R_PARISC_DLTIND14R 16 /* DLT-relative indirect, right 14 bits. */#define R_PARISC_DLTIND14F 17 /* DLT-relative indirect, must fit int 14 bits. */#define R_PARISC_PLABEL32 18 /* Direct 32-bit reference to proc. *//* Alpha specific definitions. *//* Legal values for e_flags field of Elf64_Ehdr. */#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. *//* Legal values for sh_type field of Elf64_Shdr. *//* These two are primerily concerned with ECOFF debugging info. */#define SHT_ALPHA_DEBUG 0x70000001#define SHT_ALPHA_REGINFO 0x70000002/* Legal values for sh_flags field of Elf64_Shdr. */#define SHF_ALPHA_GPREL 0x10000000/* Legal values for st_other field of Elf64_Sym. */#define STO_ALPHA_NOPV 0x80 /* No PV required. */#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. *//* Alpha relocs. */#define R_ALPHA_NONE 0 /* No reloc */#define R_ALPHA_REFLONG 1 /* Direct 32 bit */#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */#define R_ALPHA_GPDISP 6 /* Add displacement to GP */#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */#define R_ALPHA_SREL16 9 /* PC relative 16 bit */#define R_ALPHA_SREL32 10 /* PC relative 32 bit */#define R_ALPHA_SREL64 11 /* PC relative 64 bit */#define R_ALPHA_OP_PUSH 12 /* OP stack push */#define R_ALPHA_OP_STORE 13 /* OP stack pop and store */#define R_ALPHA_OP_PSUB 14 /* OP stack subtract */#define R_ALPHA_OP_PRSHIFT 15 /* OP stack right shift */#define R_ALPHA_GPVALUE 16#define R_ALPHA_GPRELHIGH 17#define R_ALPHA_GPRELLOW 18#define R_ALPHA_IMMED_GP_16 19#define R_ALPHA_IMMED_GP_HI32 20#define R_ALPHA_IMMED_SCN_HI32 21#define R_ALPHA_IMMED_BR_HI32 22#define R_ALPHA_IMMED_LO32 23#define R_ALPHA_COPY 24 /* Copy symbol at runtime */#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */#define R_ALPHA_RELATIVE 27 /* Adjust by program base *//* Keep this the last entry. */#define R_ALPHA_NUM 28/* PowerPC specific declarations *//* PowerPC relocations defined by the ABIs */#define R_PPC_NONE 0#define R_PPC_ADDR32 1 /* 32bit absolute address */#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */#define R_PPC_ADDR16 3 /* 16bit absolute address */#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */#define R_PPC_ADDR14_BRTAKEN 8#define R_PPC_ADDR14_BRNTAKEN 9#define R_PPC_REL24 10 /* PC relative 26 bit */#define R_PPC_REL14 11 /* PC relative 16 bit */#define R_PPC_REL14_BRTAKEN 12#define R_PPC_REL14_BRNTAKEN 13#define R_PPC_GOT16 14#define R_PPC_GOT16_LO 15#define R_PPC_GOT16_HI 16#define R_PPC_GOT16_HA 17#define R_PPC_PLTREL24 18#define R_PPC_COPY 19#define R_PPC_GLOB_DAT 20#define R_PPC_JMP_SLOT 21#define R_PPC_RELATIVE 22#define R_PPC_LOCAL24PC 23#define R_PPC_UADDR32 24#define R_PPC_UADDR16 25#define R_PPC_REL32 26#define R_PPC_PLT32 27#define R_PPC_PLTREL32 28#define R_PPC_PLT16_LO 29#define R_PPC_PLT16_HI 30#define R_PPC_PLT16_HA 31#define R_PPC_SDAREL16 32#define R_PPC_SECTOFF 33#define R_PPC_SECTOFF_LO 34#define R_PPC_SECTOFF_HI 35#define R_PPC_SECTOFF_HA 36/* Keep this the last entry. */#define R_PPC_NUM 37/* The remaining relocs are from the Embedded ELF ABI, and are not in the SVR4 ELF ABI. */#define R_PPC_EMB_NADDR32 101#define R_PPC_EMB_NADDR16 102#define R_PPC_EMB_NADDR16_LO 103#define R_PPC_EMB_NADDR16_HI 104#define R_PPC_EMB_NADDR16_HA 105#define R_PPC_EMB_SDAI16 106#define R_PPC_EMB_SDA2I16 107#define R_PPC_EMB_SDA2REL 108#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */#define R_PPC_EMB_MRKREF 110#define R_PPC_EMB_RELSEC16 111#define R_PPC_EMB_RELST_LO 112#define R_PPC_EMB_RELST_HI 113#define R_PPC_EMB_RELST_HA 114#define R_PPC_EMB_BIT_FLD 115#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA *//* Diab tool relocations. */#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 *//* This is a phony reloc to handle any old fashioned TOC16 references that may still be in object files. */#define R_PPC_TOC16 255/* ARM specific declarations *//* Processor specific flags for the ELF header e_flags field. */#define EF_ARM_RELEXEC 0x01#define EF_ARM_HASENTRY 0x02#define EF_ARM_INTERWORK 0x04#define EF_ARM_APCS_26 0x08#define EF_ARM_APCS_FLOAT 0x10#define EF_ARM_PIC 0x20#define EF_ALIGN8 0x40 /* 8-bit structure alignment is in use */#define EF_NEW_ABI 0x80#define EF_OLD_ABI 0x100/* Additional symbol types for Thumb */#define STT_ARM_TFUNC 0xd/* ARM-specific values for sh_flags */#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined in the input to a link step *//* ARM-specific program header flags */#define PF_ARM_SB 0x10000000 /* Segment contains the location addressed by the static base *//* ARM relocs. */#define R_ARM_NONE 0 /* No reloc */#define R_ARM_PC24 1 /* PC relative 26 bit branch */#define R_ARM_ABS32 2 /* Direct 32 bit */#define R_ARM_REL32 3 /* PC relative 32 bit */#define R_ARM_PC13 4#define R_ARM_ABS16 5 /* Direct 16 bit */#define R_ARM_ABS12 6 /* Direct 12 bit */#define R_ARM_THM_ABS5 7#define R_ARM_ABS8 8 /* Direct 8 bit */#define R_ARM_SBREL32 9#define R_ARM_THM_PC22 10#define R_ARM_THM_PC8 11#define R_ARM_AMP_VCALL9 12#define R_ARM_SWI24 13#define R_ARM_THM_SWI8 14#define R_ARM_XPC25 15#define R_ARM_THM_XPC22 16#define R_ARM_COPY 20 /* Copy symbol at runtime */#define R_ARM_GLOB_DAT 21 /* Create GOT entry */#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */#define R_ARM_RELATIVE 23 /* Adjust by program base */#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */#define R_ARM_GOT32 26 /* 32 bit GOT entry */#define R_ARM_PLT32 27 /* 32 bit PLT address */#define R_ARM_GNU_VTENTRY 100#define R_ARM_GNU_VTINHERIT 101#define R_ARM_THM_PC11 102 /* thumb unconditional branch */#define R_ARM_THM_PC9 103 /* thumb conditional branch */#define R_ARM_RXPC25 249#define R_ARM_RSBREL32 250#define R_ARM_THM_RPC22 251#define R_ARM_RREL32 252#define R_ARM_RABS22 253#define R_ARM_RPC24 254#define R_ARM_RBASE 255/* Keep this the last entry. */#define R_ARM_NUM 256#endif /* elf.h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -