| #------------------------------------------------------------------------------- |
| # elftools: elf/enums.py |
| # |
| # Mappings of enum names to values |
| # |
| # Eli Bendersky (eliben@gmail.com) |
| # This code is in the public domain |
| #------------------------------------------------------------------------------- |
| from ..construct import Pass |
| |
| |
| # e_ident[EI_CLASS] in the ELF header |
| ENUM_EI_CLASS = dict( |
| ELFCLASSNONE=0, |
| ELFCLASS32=1, |
| ELFCLASS64=2 |
| ) |
| |
| # e_ident[EI_DATA] in the ELF header |
| ENUM_EI_DATA = dict( |
| ELFDATANONE=0, |
| ELFDATA2LSB=1, |
| ELFDATA2MSB=2 |
| ) |
| |
| # e_version in the ELF header |
| ENUM_E_VERSION = dict( |
| EV_NONE=0, |
| EV_CURRENT=1, |
| _default_=Pass, |
| ) |
| |
| # e_ident[EI_OSABI] in the ELF header |
| ENUM_EI_OSABI = dict( |
| ELFOSABI_SYSV=0, |
| ELFOSABI_HPUX=1, |
| ELFOSABI_NETBSD=2, |
| ELFOSABI_LINUX=3, |
| ELFOSABI_HURD=4, |
| ELFOSABI_SOLARIS=6, |
| ELFOSABI_AIX=7, |
| ELFOSABI_IRIX=8, |
| ELFOSABI_FREEBSD=9, |
| ELFOSABI_TRU64=10, |
| ELFOSABI_MODESTO=11, |
| ELFOSABI_OPENBSD=12, |
| ELFOSABI_OPENVMS=13, |
| ELFOSABI_NSK=14, |
| ELFOSABI_AROS=15, |
| ELFOSABI_ARM=97, |
| ELFOSABI_STANDALONE=255, |
| _default_=Pass, |
| ) |
| |
| # e_type in the ELF header |
| ENUM_E_TYPE = dict( |
| ET_NONE=0, |
| ET_REL=1, |
| ET_EXEC=2, |
| ET_DYN=3, |
| ET_CORE=4, |
| ET_LOPROC=0xff00, |
| ET_HIPROC=0xffff, |
| _default_=Pass, |
| ) |
| |
| # e_machine in the ELF header |
| ENUM_E_MACHINE = dict( |
| EM_NONE=0, |
| EM_M32=1, |
| EM_SPARC=2, |
| EM_386=3, |
| EM_68K=4, |
| EM_88K=5, |
| EM_860=7, |
| EM_MIPS=8, |
| EM_S370=9, |
| EM_MIPS_RS3_LE=10, |
| EM_PARISC=15, |
| EM_VPP500=17, |
| EM_SPARC32PLUS=18, |
| EM_960=19, |
| EM_PPC=20, |
| EM_PPC64=21, |
| EM_S390=22, |
| EM_V800=36, |
| EM_FR20=37, |
| EM_RH32=38, |
| EM_RCE=39, |
| EM_ARM=40, |
| EM_ALPHA=41, |
| EM_SH=42, |
| EM_SPARCV9=43, |
| EM_TRICORE=44, |
| EM_ARC=45, |
| EM_H8_300=46, |
| EM_H8_300H=47, |
| EM_H8S=48, |
| EM_H8_500=49, |
| EM_IA_64=50, |
| EM_MIPS_X=51, |
| EM_COLDFIRE=52, |
| EM_68HC12=53, |
| EM_MMA=54, |
| EM_PCP=55, |
| EM_NCPU=56, |
| EM_NDR1=57, |
| EM_STARCORE=58, |
| EM_ME16=59, |
| EM_ST100=60, |
| EM_TINYJ=61, |
| EM_X86_64=62, |
| EM_PDSP=63, |
| EM_PDP10=64, |
| EM_PDP11=65, |
| EM_FX66=66, |
| EM_ST9PLUS=67, |
| EM_ST7=68, |
| EM_68HC16=69, |
| EM_68HC11=70, |
| EM_68HC08=71, |
| EM_68HC05=72, |
| EM_SVX=73, |
| EM_ST19=74, |
| EM_VAX=75, |
| EM_CRIS=76, |
| EM_JAVELIN=77, |
| EM_FIREPATH=78, |
| EM_ZSP=79, |
| EM_MMIX=80, |
| EM_HUANY=81, |
| EM_PRISM=82, |
| EM_AVR=83, |
| EM_FR30=84, |
| EM_D10V=85, |
| EM_D30V=86, |
| EM_V850=87, |
| EM_M32R=88, |
| EM_MN10300=89, |
| EM_MN10200=90, |
| EM_PJ=91, |
| EM_OPENRISC=92, |
| EM_ARC_A5=93, |
| EM_XTENSA=94, |
| EM_VIDEOCORE=95, |
| EM_TMM_GPP=96, |
| EM_NS32K=97, |
| EM_TPC=98, |
| EM_SNP1K=99, |
| EM_ST200=100, |
| EM_IP2K=101, |
| EM_MAX=102, |
| EM_CR=103, |
| EM_F2MC16=104, |
| EM_MSP430=105, |
| EM_BLACKFIN=106, |
| EM_SE_C33=107, |
| EM_SEP=108, |
| EM_ARCA=109, |
| EM_UNICORE=110, |
| EM_L10M=180, |
| _default_=Pass, |
| ) |
| |
| # sh_type in the section header |
| ENUM_SH_TYPE = dict( |
| SHT_NULL=0, |
| SHT_PROGBITS=1, |
| SHT_SYMTAB=2, |
| SHT_STRTAB=3, |
| SHT_RELA=4, |
| SHT_HASH=5, |
| SHT_DYNAMIC=6, |
| SHT_NOTE=7, |
| SHT_NOBITS=8, |
| SHT_REL=9, |
| SHT_SHLIB=10, |
| SHT_DYNSYM=11, |
| SHT_INIT_ARRAY=14, |
| SHT_FINI_ARRAY=15, |
| SHT_PREINIT_ARRAY=16, |
| SHT_GROUP=17, |
| SHT_SYMTAB_SHNDX=18, |
| SHT_NUM=19, |
| SHT_LOOS=0x60000000, |
| SHT_GNU_HASH=0x6ffffff6, |
| SHT_GNU_verdef=0x6ffffffd, |
| SHT_GNU_verneed=0x6ffffffe, |
| SHT_GNU_versym=0x6fffffff, |
| SHT_LOPROC=0x70000000, |
| SHT_HIPROC=0x7fffffff, |
| SHT_LOUSER=0x80000000, |
| SHT_HIUSER=0xffffffff, |
| SHT_AMD64_UNWIND=0x70000001, |
| _default_=Pass, |
| ) |
| |
| # p_type in the program header |
| # some values scavenged from the ELF headers in binutils-2.21 |
| ENUM_P_TYPE = dict( |
| PT_NULL=0, |
| PT_LOAD=1, |
| PT_DYNAMIC=2, |
| PT_INTERP=3, |
| PT_NOTE=4, |
| PT_SHLIB=5, |
| PT_PHDR=6, |
| PT_TLS=7, |
| PT_LOPROC=0x70000000, |
| PT_HIPROC=0x7fffffff, |
| PT_GNU_EH_FRAME=0x6474e550, |
| PT_GNU_STACK=0x6474e551, |
| PT_GNU_RELRO=0x6474e552, |
| _default_=Pass, |
| ) |
| |
| # st_info bindings in the symbol header |
| ENUM_ST_INFO_BIND = dict( |
| STB_LOCAL=0, |
| STB_GLOBAL=1, |
| STB_WEAK=2, |
| STB_NUM=3, |
| STB_LOOS=10, |
| STB_HIOS=12, |
| STB_LOPROC=13, |
| STB_HIPROC=15, |
| _default_=Pass, |
| ) |
| |
| # st_info type in the symbol header |
| ENUM_ST_INFO_TYPE = dict( |
| STT_NOTYPE=0, |
| STT_OBJECT=1, |
| STT_FUNC=2, |
| STT_SECTION=3, |
| STT_FILE=4, |
| STT_COMMON=5, |
| STT_TLS=6, |
| STT_NUM=7, |
| STT_RELC=8, |
| STT_SRELC=9, |
| STT_LOOS=10, |
| STT_HIOS=12, |
| STT_LOPROC=13, |
| STT_HIPROC=15, |
| _default_=Pass, |
| ) |
| |
| # visibility from st_other |
| ENUM_ST_VISIBILITY = dict( |
| STV_DEFAULT=0, |
| STV_INTERNAL=1, |
| STV_HIDDEN=2, |
| STV_PROTECTED=3, |
| _default_=Pass, |
| ) |
| |
| # st_shndx |
| ENUM_ST_SHNDX = dict( |
| SHN_UNDEF=0, |
| SHN_ABS=0xfff1, |
| SHN_COMMON=0xfff2, |
| _default_=Pass, |
| ) |
| |
| # d_tag |
| ENUM_D_TAG = dict( |
| DT_NULL=0, |
| DT_NEEDED=1, |
| DT_PLTRELSZ=2, |
| DT_PLTGOT=3, |
| DT_HASH=4, |
| DT_STRTAB=5, |
| DT_SYMTAB=6, |
| DT_RELA=7, |
| DT_RELASZ=8, |
| DT_RELAENT=9, |
| DT_STRSZ=10, |
| DT_SYMENT=11, |
| DT_INIT=12, |
| DT_FINI=13, |
| DT_SONAME=14, |
| DT_RPATH=15, |
| DT_SYMBOLIC=16, |
| DT_REL=17, |
| DT_RELSZ=18, |
| DT_RELENT=19, |
| DT_PLTREL=20, |
| DT_DEBUG=21, |
| DT_TEXTREL=22, |
| DT_JMPREL=23, |
| DT_BIND_NOW=24, |
| DT_INIT_ARRAY=25, |
| DT_FINI_ARRAY=26, |
| DT_INIT_ARRAYSZ=27, |
| DT_FINI_ARRAYSZ=28, |
| DT_RUNPATH=29, |
| DT_FLAGS=30, |
| DT_ENCODING=32, |
| DT_PREINIT_ARRAY=32, |
| DT_PREINIT_ARRAYSZ=33, |
| DT_NUM=34, |
| DT_LOOS=0x6000000d, |
| DT_HIOS=0x6ffff000, |
| DT_LOPROC=0x70000000, |
| DT_HIPROC=0x7fffffff, |
| DT_PROCNUM=0x35, |
| DT_VALRNGLO=0x6ffffd00, |
| DT_GNU_PRELINKED=0x6ffffdf5, |
| DT_GNU_CONFLICTSZ=0x6ffffdf6, |
| DT_GNU_LIBLISTSZ=0x6ffffdf7, |
| DT_CHECKSUM=0x6ffffdf8, |
| DT_PLTPADSZ=0x6ffffdf9, |
| DT_MOVEENT=0x6ffffdfa, |
| DT_MOVESZ=0x6ffffdfb, |
| DT_SYMINSZ=0x6ffffdfe, |
| DT_SYMINENT=0x6ffffdff, |
| DT_GNU_HASH=0x6ffffef5, |
| DT_TLSDESC_PLT=0x6ffffef6, |
| DT_TLSDESC_GOT=0x6ffffef7, |
| DT_GNU_CONFLICT=0x6ffffef8, |
| DT_GNU_LIBLIST=0x6ffffef9, |
| DT_CONFIG=0x6ffffefa, |
| DT_DEPAUDIT=0x6ffffefb, |
| DT_AUDIT=0x6ffffefc, |
| DT_PLTPAD=0x6ffffefd, |
| DT_MOVETAB=0x6ffffefe, |
| DT_SYMINFO=0x6ffffeff, |
| DT_VERSYM=0x6ffffff0, |
| DT_RELACOUNT=0x6ffffff9, |
| DT_RELCOUNT=0x6ffffffa, |
| DT_FLAGS_1=0x6ffffffb, |
| DT_VERDEF=0x6ffffffc, |
| DT_VERDEFNUM=0x6ffffffd, |
| DT_VERNEED=0x6ffffffe, |
| DT_VERNEEDNUM=0x6fffffff, |
| DT_AUXILIARY=0x7ffffffd, |
| DT_FILTER=0x7fffffff, |
| _default_=Pass, |
| ) |
| |
| ENUM_RELOC_TYPE_i386 = dict( |
| R_386_NONE=0, |
| R_386_32=1, |
| R_386_PC32=2, |
| R_386_GOT32=3, |
| R_386_PLT32=4, |
| R_386_COPY=5, |
| R_386_GLOB_DAT=6, |
| R_386_JUMP_SLOT=7, |
| R_386_RELATIVE=8, |
| R_386_GOTOFF=9, |
| R_386_GOTPC=10, |
| R_386_32PLT=11, |
| R_386_TLS_TPOFF=14, |
| R_386_TLS_IE=15, |
| R_386_TLS_GOTIE=16, |
| R_386_TLS_LE=17, |
| R_386_TLS_GD=18, |
| R_386_TLS_LDM=19, |
| R_386_16=20, |
| R_386_PC16=21, |
| R_386_8=22, |
| R_386_PC8=23, |
| R_386_TLS_GD_32=24, |
| R_386_TLS_GD_PUSH=25, |
| R_386_TLS_GD_CALL=26, |
| R_386_TLS_GD_POP=27, |
| R_386_TLS_LDM_32=28, |
| R_386_TLS_LDM_PUSH=29, |
| R_386_TLS_LDM_CALL=30, |
| R_386_TLS_LDM_POP=31, |
| R_386_TLS_LDO_32=32, |
| R_386_TLS_IE_32=33, |
| R_386_TLS_LE_32=34, |
| R_386_TLS_DTPMOD32=35, |
| R_386_TLS_DTPOFF32=36, |
| R_386_TLS_TPOFF32=37, |
| R_386_TLS_GOTDESC=39, |
| R_386_TLS_DESC_CALL=40, |
| R_386_TLS_DESC=41, |
| R_386_IRELATIVE=42, |
| R_386_USED_BY_INTEL_200=200, |
| R_386_GNU_VTINHERIT=250, |
| R_386_GNU_VTENTRY=251, |
| _default_=Pass, |
| ) |
| |
| ENUM_RELOC_TYPE_x64 = dict( |
| R_X86_64_NONE=0, |
| R_X86_64_64=1, |
| R_X86_64_PC32=2, |
| R_X86_64_GOT32=3, |
| R_X86_64_PLT32=4, |
| R_X86_64_COPY=5, |
| R_X86_64_GLOB_DAT=6, |
| R_X86_64_JUMP_SLOT=7, |
| R_X86_64_RELATIVE=8, |
| R_X86_64_GOTPCREL=9, |
| R_X86_64_32=10, |
| R_X86_64_32S=11, |
| R_X86_64_16=12, |
| R_X86_64_PC16=13, |
| R_X86_64_8=14, |
| R_X86_64_PC8=15, |
| R_X86_64_DTPMOD64=16, |
| R_X86_64_DTPOFF64=17, |
| R_X86_64_TPOFF64=18, |
| R_X86_64_TLSGD=19, |
| R_X86_64_TLSLD=20, |
| R_X86_64_DTPOFF32=21, |
| R_X86_64_GOTTPOFF=22, |
| R_X86_64_TPOFF32=23, |
| R_X86_64_PC64=24, |
| R_X86_64_GOTOFF64=25, |
| R_X86_64_GOTPC32=26, |
| R_X86_64_GOT64=27, |
| R_X86_64_GOTPCREL64=28, |
| R_X86_64_GOTPC64=29, |
| R_X86_64_GOTPLT64=30, |
| R_X86_64_PLTOFF64=31, |
| R_X86_64_GOTPC32_TLSDESC=34, |
| R_X86_64_TLSDESC_CALL=35, |
| R_X86_64_TLSDESC=36, |
| R_X86_64_IRELATIVE=37, |
| R_X86_64_GNU_VTINHERIT=250, |
| R_X86_64_GNU_VTENTRY=251, |
| _default_=Pass, |
| ) |
| |