LIEF: Library to Instrument Executable Formats Version 0.17.0
|
This class exposes information about a given implementation. More...
#include <FunctionVariants.hpp>
Public Types | |
enum class | FLAGS : uint32_t { UNKNOWN = 0 , ARM64_DEFAULT = (0 | F_ARM64) , ARM64_FLAGM = (1 | F_ARM64) , ARM64_FLAGM2 = (2 | F_ARM64) , ARM64_FHM = (3 | F_ARM64) , ARM64_DOTPROD = (4 | F_ARM64) , ARM64_SHA3 = (5 | F_ARM64) , ARM64_RDM = (6 | F_ARM64) , ARM64_LSE = (7 | F_ARM64) , ARM64_SHA256 = (8 | F_ARM64) , ARM64_SHA512 = (9 | F_ARM64) , ARM64_SHA1 = (10 | F_ARM64) , ARM64_AES = (11 | F_ARM64) , ARM64_PMULL = (12 | F_ARM64) , ARM64_SPECRES = (13 | F_ARM64) , ARM64_SB = (14 | F_ARM64) , ARM64_FRINTTS = (15 | F_ARM64) , ARM64_LRCPC = (16 | F_ARM64) , ARM64_LRCPC2 = (17 | F_ARM64) , ARM64_FCMA = (18 | F_ARM64) , ARM64_JSCVT = (19 | F_ARM64) , ARM64_PAUTH = (20 | F_ARM64) , ARM64_PAUTH2 = (21 | F_ARM64) , ARM64_FPAC = (22 | F_ARM64) , ARM64_DPB = (23 | F_ARM64) , ARM64_DPB2 = (24 | F_ARM64) , ARM64_BF16 = (25 | F_ARM64) , ARM64_I8MM = (26 | F_ARM64) , ARM64_WFXT = (27 | F_ARM64) , ARM64_RPRES = (28 | F_ARM64) , ARM64_ECV = (29 | F_ARM64) , ARM64_AFP = (30 | F_ARM64) , ARM64_LSE2 = (31 | F_ARM64) , ARM64_CSV2 = (32 | F_ARM64) , ARM64_CVS3 = (33 | F_ARM64) , ARM64_DIT = (34 | F_ARM64) , ARM64_FP16 = (35 | F_ARM64) , ARM64_SSBS = (36 | F_ARM64) , ARM64_BTI = (37 | F_ARM64) , ARM64_SME = (44 | F_ARM64) , ARM64_SME2 = (45 | F_ARM64) , ARM64_SMEF64F64 = (46 | F_ARM64) , ARM64_SMEI16I64 = (47 | F_ARM64) , ARM64_SMEF32F32 = (48 | F_ARM64) , ARM64_SMEBI32I32 = (49 | F_ARM64) , ARM64_SMEB16F32 = (50 | F_ARM64) , ARM64_SMEF16F32 = (51 | F_ARM64) , ARM64_SMEI8I32 = (52 | F_ARM64) , ARM64_SMEI16I32 = (53 | F_ARM64) , ARM64_ADVSIMD = (54 | F_ARM64) , ARM64_ADVSIMDHPFP = (55 | F_ARM64) , ARM64_CRC32 = (56 | F_ARM64) , X86_64_DEFAULT = (0 | F_X86_64) , X86_64_SSE41 = (1 | F_X86_64) , X86_64_FMA = (2 | F_X86_64) , X86_64_AVX = (3 | F_X86_64) , X86_64_AVX2 = (4 | F_X86_64) , X86_64_AVX512F = (5 | F_X86_64) , X86_64_AVX512BW = (6 | F_X86_64) , X86_64_BMI1 = (7 | F_X86_64) , X86_64_ROSETTA = (8 | F_X86_64) , X86_64_HASWELL = (9 | F_X86_64) , X86_64_IVYBRIDGE = (10 | F_X86_64) , X86_64_NEHALEM = (11 | F_X86_64) , SYSTEM_WIDE_DEFAULT = (0 | F_SYSTEM_WIDE) , SYSTEM_WIDE_INTERNAL_INSTALL = (1 | F_SYSTEM_WIDE) , SYSTEM_WIDE_CUSTOMER_INSTALL = (2 | F_SYSTEM_WIDE) , SYSTEM_WIDE_LOCKDOWN = (3 | F_SYSTEM_WIDE) , PER_PROCESS_DEFAULT = (0 | F_PER_PROCESS) , PER_PROCESS_TRANSLATED = (1 | F_PER_PROCESS) , PER_PROCESS_NO_OVERREAD = (3 | F_PER_PROCESS) } |
Flags describing the target platform, environment, or architecture for a given function implementation. More... |
Public Member Functions | |
RuntimeTableEntry ()=default | |
RuntimeTableEntry (const details::runtime_table_entry_t &entry) | |
RuntimeTableEntry (const RuntimeTableEntry &)=default | |
RuntimeTableEntry & | operator= (const RuntimeTableEntry &)=default |
RuntimeTableEntry (RuntimeTableEntry &&) noexcept=default | |
RuntimeTableEntry & | operator= (RuntimeTableEntry &&) noexcept=default |
~RuntimeTableEntry ()=default | |
uint32_t | impl () const |
The relative address of the implementation or an index if another_table() is set. | |
bool | another_table () const |
Indicates whether impl() refers to an entry in another runtime table, rather than a direct function implementation address. | |
span< const uint8_t > | flag_bit_nums () const |
The flagBitNums value as a slice of bytes. | |
const std::vector< FLAGS > & | flags () const |
Return the interpreted flag_bit_nums(). | |
std::string | to_string () const |
Static Public Member Functions | |
static uint8_t | get_raw (FLAGS f) |
Static Public Attributes | |
static constexpr uint32_t | F_BIT = 20 |
static constexpr uint32_t | F_MASK = (uint32_t(1) << F_BIT) - 1 |
static constexpr uint32_t | F_PER_PROCESS = uint32_t(1) << F_BIT |
static constexpr uint32_t | F_SYSTEM_WIDE = uint32_t(2) << F_BIT |
static constexpr uint32_t | F_ARM64 = uint32_t(3) << F_BIT |
static constexpr uint32_t | F_X86_64 = uint32_t(4) << F_BIT |
This class exposes information about a given implementation.
|
strong |
Flags describing the target platform, environment, or architecture for a given function implementation.
These are encoded as a uint32_t, where high bits determine the namespace (KIND), and the lower bits encode the specific capability.
|
default |
LIEF::MachO::FunctionVariants::RuntimeTableEntry::RuntimeTableEntry | ( | const details::runtime_table_entry_t & | entry | ) |
|
default |
|
defaultnoexcept |
|
default |
|
inline |
Indicates whether impl() refers to an entry in another runtime table, rather than a direct function implementation address.
|
inline |
The flagBitNums value as a slice of bytes.
|
inline |
Return the interpreted flag_bit_nums().
|
inlinestatic |
|
inline |
The relative address of the implementation or an index if another_table() is set.
|
default |
|
defaultnoexcept |
std::string LIEF::MachO::FunctionVariants::RuntimeTableEntry::to_string | ( | ) | const |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |
|
staticconstexpr |