mirror of
https://github.com/lief-project/LIEF
synced 2026-06-08 15:30:44 +00:00
Enhance LIEF's ELF header
API Changes (Python / C++):
* lief.ELF.Header.{arm_flags_list, mips_flags_list, ppc64_flags_list, hexagon_flags_list} - Added
In python, one can do:
`` if lief.ELF.ARM_EFLAGS.EABI_VER5 in lief.ELF.Header: ...``
In C++ we added:
* LIEF::ELF::Header::has(ARM_EFLAGS, PPC64_EFLAGS, MIPS_EFLAGS...)
This commit is contained in:
@@ -913,4 +913,80 @@ void init_ELF_Structures_enum(py::module& m) {
|
||||
.value(PY_ENUM(RELOCATION_PURPOSES::RELOC_PURPOSE_DYNAMIC))
|
||||
.value(PY_ENUM(RELOCATION_PURPOSES::RELOC_PURPOSE_OBJECT))
|
||||
.export_values();
|
||||
|
||||
|
||||
py::enum_<ARM_EFLAGS>(m, "ARM_EFLAGS")
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_SOFT_FLOAT))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_VFP_FLOAT))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_UNKNOWN))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_VER1))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_VER2))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_VER3))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_VER4))
|
||||
.value(PY_ENUM(ARM_EFLAGS::EF_ARM_EABI_VER5))
|
||||
.export_values();
|
||||
|
||||
|
||||
py::enum_<PPC64_EFLAGS>(m, "PPC64_EFLAGS")
|
||||
.value(PY_ENUM(PPC64_EFLAGS::EF_PPC64_ABI))
|
||||
.export_values();
|
||||
|
||||
py::enum_<MIPS_EFLAGS>(m, "MIPS_EFLAGS")
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_NOREORDER))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_PIC))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_CPIC))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ABI2))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_32BITMODE))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_FP64))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_NAN2008))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ABI_O32))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ABI_O64))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ABI_EABI32))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ABI_EABI64))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_3900))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_4010))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_4100))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_4650))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_4120))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_4111))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_SB1))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_OCTEON))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_XLR))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_OCTEON2))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_OCTEON3))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_5400))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_5900))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_5500))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_9000))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_LS2E))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_LS2F))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MACH_LS3A))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_MICROMIPS))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_ASE_M16))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_ASE_MDMX))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_1))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_2))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_3))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_4))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_5))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_32))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_64))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_32R2))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_64R2))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_32R6))
|
||||
.value(PY_ENUM(MIPS_EFLAGS::EF_MIPS_ARCH_64R6))
|
||||
.export_values();
|
||||
|
||||
py::enum_<HEXAGON_EFLAGS>(m, "HEXAGON_EFLAGS")
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_MACH_V2))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_MACH_V3))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_MACH_V4))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_MACH_V5))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_ISA_MACH))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_ISA_V2))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_ISA_V3))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_ISA_V4))
|
||||
.value(PY_ENUM(HEXAGON_EFLAGS::EF_HEXAGON_ISA_V5))
|
||||
.export_values();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user