BNCustomArchitecture Struct Reference

Public Attributes

void * context
 
void(* init )(void *context, BNArchitecture *obj)
 
BNEndianness(* getEndianness )(void *ctxt)
 
size_t(* getAddressSize )(void *ctxt)
 
size_t(* getDefaultIntegerSize )(void *ctxt)
 
size_t(* getInstructionAlignment )(void *ctxt)
 
size_t(* getMaxInstructionLength )(void *ctxt)
 
size_t(* getOpcodeDisplayLength )(void *ctxt)
 
BNArchitecture *(* getAssociatedArchitectureByAddress )(void *ctxt, uint64_t *addr)
 
bool(* getInstructionInfo )(void *ctxt, const uint8_t *data, uint64_t addr, size_t maxLen, BNInstructionInfo *result)
 
bool(* getInstructionText )(void *ctxt, const uint8_t *data, uint64_t addr, size_t *len, BNInstructionTextToken **result, size_t *count)
 
void(* freeInstructionText )(BNInstructionTextToken *tokens, size_t count)
 
bool(* getInstructionLowLevelIL )(void *ctxt, const uint8_t *data, uint64_t addr, size_t *len, BNLowLevelILFunction *il)
 
char *(* getRegisterName )(void *ctxt, uint32_t reg)
 
char *(* getFlagName )(void *ctxt, uint32_t flag)
 
char *(* getFlagWriteTypeName )(void *ctxt, uint32_t flags)
 
char *(* getSemanticFlagClassName )(void *ctxt, uint32_t semClass)
 
char *(* getSemanticFlagGroupName )(void *ctxt, uint32_t semGroup)
 
uint32_t *(* getFullWidthRegisters )(void *ctxt, size_t *count)
 
uint32_t *(* getAllRegisters )(void *ctxt, size_t *count)
 
uint32_t *(* getAllFlags )(void *ctxt, size_t *count)
 
uint32_t *(* getAllFlagWriteTypes )(void *ctxt, size_t *count)
 
uint32_t *(* getAllSemanticFlagClasses )(void *ctxt, size_t *count)
 
uint32_t *(* getAllSemanticFlagGroups )(void *ctxt, size_t *count)
 
BNFlagRole(* getFlagRole )(void *ctxt, uint32_t flag, uint32_t semClass)
 
uint32_t *(* getFlagsRequiredForFlagCondition )(void *ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, size_t *count)
 
uint32_t *(* getFlagsRequiredForSemanticFlagGroup )(void *ctxt, uint32_t semGroup, size_t *count)
 
BNFlagConditionForSemanticClass *(* getFlagConditionsForSemanticFlagGroup )(void *ctxt, uint32_t semGroup, size_t *count)
 
void(* freeFlagConditionsForSemanticFlagGroup )(void *ctxt, BNFlagConditionForSemanticClass *conditions)
 
uint32_t *(* getFlagsWrittenByFlagWriteType )(void *ctxt, uint32_t writeType, size_t *count)
 
uint32_t(* getSemanticClassForFlagWriteType )(void *ctxt, uint32_t writeType)
 
size_t(* getFlagWriteLowLevelIL )(void *ctxt, BNLowLevelILOperation op, size_t size, uint32_t flagWriteType, uint32_t flag, BNRegisterOrConstant *operands, size_t operandCount, BNLowLevelILFunction *il)
 
size_t(* getFlagConditionLowLevelIL )(void *ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, BNLowLevelILFunction *il)
 
size_t(* getSemanticFlagGroupLowLevelIL )(void *ctxt, uint32_t semGroup, BNLowLevelILFunction *il)
 
void(* freeRegisterList )(void *ctxt, uint32_t *regs)
 
void(* getRegisterInfo )(void *ctxt, uint32_t reg, BNRegisterInfo *result)
 
uint32_t(* getStackPointerRegister )(void *ctxt)
 
uint32_t(* getLinkRegister )(void *ctxt)
 
uint32_t *(* getGlobalRegisters )(void *ctxt, size_t *count)
 
uint32_t *(* getSystemRegisters )(void *ctxt, size_t *count)
 
char *(* getRegisterStackName )(void *ctxt, uint32_t regStack)
 
uint32_t *(* getAllRegisterStacks )(void *ctxt, size_t *count)
 
void(* getRegisterStackInfo )(void *ctxt, uint32_t regStack, BNRegisterStackInfo *result)
 
char *(* getIntrinsicName )(void *ctxt, uint32_t intrinsic)
 
uint32_t *(* getAllIntrinsics )(void *ctxt, size_t *count)
 
BNNameAndType *(* getIntrinsicInputs )(void *ctxt, uint32_t intrinsic, size_t *count)
 
void(* freeNameAndTypeList )(void *ctxt, BNNameAndType *nt, size_t count)
 
BNTypeWithConfidence *(* getIntrinsicOutputs )(void *ctxt, uint32_t intrinsic, size_t *count)
 
void(* freeTypeList )(void *ctxt, BNTypeWithConfidence *types, size_t count)
 
bool(* canAssemble )(void *ctxt)
 
bool(* assemble )(void *ctxt, const char *code, uint64_t addr, BNDataBuffer *result, char **errors)
 
bool(* isNeverBranchPatchAvailable )(void *ctxt, const uint8_t *data, uint64_t addr, size_t len)
 
bool(* isAlwaysBranchPatchAvailable )(void *ctxt, const uint8_t *data, uint64_t addr, size_t len)
 
bool(* isInvertBranchPatchAvailable )(void *ctxt, const uint8_t *data, uint64_t addr, size_t len)
 
bool(* isSkipAndReturnZeroPatchAvailable )(void *ctxt, const uint8_t *data, uint64_t addr, size_t len)
 
bool(* isSkipAndReturnValuePatchAvailable )(void *ctxt, const uint8_t *data, uint64_t addr, size_t len)
 
bool(* convertToNop )(void *ctxt, uint8_t *data, uint64_t addr, size_t len)
 
bool(* alwaysBranch )(void *ctxt, uint8_t *data, uint64_t addr, size_t len)
 
bool(* invertBranch )(void *ctxt, uint8_t *data, uint64_t addr, size_t len)
 
bool(* skipAndReturnValue )(void *ctxt, uint8_t *data, uint64_t addr, size_t len, uint64_t value)
 

Member Data Documentation

◆ alwaysBranch

bool(* BNCustomArchitecture::alwaysBranch) (void *ctxt, uint8_t *data, uint64_t addr, size_t len)

◆ assemble

bool(* BNCustomArchitecture::assemble) (void *ctxt, const char *code, uint64_t addr, BNDataBuffer *result, char **errors)

◆ canAssemble

bool(* BNCustomArchitecture::canAssemble) (void *ctxt)

◆ context

void* BNCustomArchitecture::context

◆ convertToNop

bool(* BNCustomArchitecture::convertToNop) (void *ctxt, uint8_t *data, uint64_t addr, size_t len)

◆ freeFlagConditionsForSemanticFlagGroup

void(* BNCustomArchitecture::freeFlagConditionsForSemanticFlagGroup) (void *ctxt, BNFlagConditionForSemanticClass *conditions)

◆ freeInstructionText

void(* BNCustomArchitecture::freeInstructionText) (BNInstructionTextToken *tokens, size_t count)

◆ freeNameAndTypeList

void(* BNCustomArchitecture::freeNameAndTypeList) (void *ctxt, BNNameAndType *nt, size_t count)

◆ freeRegisterList

void(* BNCustomArchitecture::freeRegisterList) (void *ctxt, uint32_t *regs)

◆ freeTypeList

void(* BNCustomArchitecture::freeTypeList) (void *ctxt, BNTypeWithConfidence *types, size_t count)

◆ getAddressSize

size_t(* BNCustomArchitecture::getAddressSize) (void *ctxt)

◆ getAllFlags

uint32_t *(* BNCustomArchitecture::getAllFlags) (void *ctxt, size_t *count)

◆ getAllFlagWriteTypes

uint32_t *(* BNCustomArchitecture::getAllFlagWriteTypes) (void *ctxt, size_t *count)

◆ getAllIntrinsics

uint32_t *(* BNCustomArchitecture::getAllIntrinsics) (void *ctxt, size_t *count)

◆ getAllRegisters

uint32_t *(* BNCustomArchitecture::getAllRegisters) (void *ctxt, size_t *count)

◆ getAllRegisterStacks

uint32_t *(* BNCustomArchitecture::getAllRegisterStacks) (void *ctxt, size_t *count)

◆ getAllSemanticFlagClasses

uint32_t *(* BNCustomArchitecture::getAllSemanticFlagClasses) (void *ctxt, size_t *count)

◆ getAllSemanticFlagGroups

uint32_t *(* BNCustomArchitecture::getAllSemanticFlagGroups) (void *ctxt, size_t *count)

◆ getAssociatedArchitectureByAddress

BNArchitecture *(* BNCustomArchitecture::getAssociatedArchitectureByAddress) (void *ctxt, uint64_t *addr)

◆ getDefaultIntegerSize

size_t(* BNCustomArchitecture::getDefaultIntegerSize) (void *ctxt)

◆ getEndianness

BNEndianness(* BNCustomArchitecture::getEndianness) (void *ctxt)

◆ getFlagConditionLowLevelIL

size_t(* BNCustomArchitecture::getFlagConditionLowLevelIL) (void *ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, BNLowLevelILFunction *il)

◆ getFlagConditionsForSemanticFlagGroup

BNFlagConditionForSemanticClass *(* BNCustomArchitecture::getFlagConditionsForSemanticFlagGroup) (void *ctxt, uint32_t semGroup, size_t *count)

◆ getFlagName

char *(* BNCustomArchitecture::getFlagName) (void *ctxt, uint32_t flag)

◆ getFlagRole

BNFlagRole(* BNCustomArchitecture::getFlagRole) (void *ctxt, uint32_t flag, uint32_t semClass)

◆ getFlagsRequiredForFlagCondition

uint32_t *(* BNCustomArchitecture::getFlagsRequiredForFlagCondition) (void *ctxt, BNLowLevelILFlagCondition cond, uint32_t semClass, size_t *count)

◆ getFlagsRequiredForSemanticFlagGroup

uint32_t *(* BNCustomArchitecture::getFlagsRequiredForSemanticFlagGroup) (void *ctxt, uint32_t semGroup, size_t *count)

◆ getFlagsWrittenByFlagWriteType

uint32_t *(* BNCustomArchitecture::getFlagsWrittenByFlagWriteType) (void *ctxt, uint32_t writeType, size_t *count)

◆ getFlagWriteLowLevelIL

size_t(* BNCustomArchitecture::getFlagWriteLowLevelIL) (void *ctxt, BNLowLevelILOperation op, size_t size, uint32_t flagWriteType, uint32_t flag, BNRegisterOrConstant *operands, size_t operandCount, BNLowLevelILFunction *il)

◆ getFlagWriteTypeName

char *(* BNCustomArchitecture::getFlagWriteTypeName) (void *ctxt, uint32_t flags)

◆ getFullWidthRegisters

uint32_t *(* BNCustomArchitecture::getFullWidthRegisters) (void *ctxt, size_t *count)

◆ getGlobalRegisters

uint32_t *(* BNCustomArchitecture::getGlobalRegisters) (void *ctxt, size_t *count)

◆ getInstructionAlignment

size_t(* BNCustomArchitecture::getInstructionAlignment) (void *ctxt)

◆ getInstructionInfo

bool(* BNCustomArchitecture::getInstructionInfo) (void *ctxt, const uint8_t *data, uint64_t addr, size_t maxLen, BNInstructionInfo *result)

◆ getInstructionLowLevelIL

bool(* BNCustomArchitecture::getInstructionLowLevelIL) (void *ctxt, const uint8_t *data, uint64_t addr, size_t *len, BNLowLevelILFunction *il)

◆ getInstructionText

bool(* BNCustomArchitecture::getInstructionText) (void *ctxt, const uint8_t *data, uint64_t addr, size_t *len, BNInstructionTextToken **result, size_t *count)

◆ getIntrinsicInputs

BNNameAndType *(* BNCustomArchitecture::getIntrinsicInputs) (void *ctxt, uint32_t intrinsic, size_t *count)

◆ getIntrinsicName

char *(* BNCustomArchitecture::getIntrinsicName) (void *ctxt, uint32_t intrinsic)

◆ getIntrinsicOutputs

BNTypeWithConfidence *(* BNCustomArchitecture::getIntrinsicOutputs) (void *ctxt, uint32_t intrinsic, size_t *count)

◆ getLinkRegister

uint32_t(* BNCustomArchitecture::getLinkRegister) (void *ctxt)

◆ getMaxInstructionLength

size_t(* BNCustomArchitecture::getMaxInstructionLength) (void *ctxt)

◆ getOpcodeDisplayLength

size_t(* BNCustomArchitecture::getOpcodeDisplayLength) (void *ctxt)

◆ getRegisterInfo

void(* BNCustomArchitecture::getRegisterInfo) (void *ctxt, uint32_t reg, BNRegisterInfo *result)

◆ getRegisterName

char *(* BNCustomArchitecture::getRegisterName) (void *ctxt, uint32_t reg)

◆ getRegisterStackInfo

void(* BNCustomArchitecture::getRegisterStackInfo) (void *ctxt, uint32_t regStack, BNRegisterStackInfo *result)

◆ getRegisterStackName

char *(* BNCustomArchitecture::getRegisterStackName) (void *ctxt, uint32_t regStack)

◆ getSemanticClassForFlagWriteType

uint32_t(* BNCustomArchitecture::getSemanticClassForFlagWriteType) (void *ctxt, uint32_t writeType)

◆ getSemanticFlagClassName

char *(* BNCustomArchitecture::getSemanticFlagClassName) (void *ctxt, uint32_t semClass)

◆ getSemanticFlagGroupLowLevelIL

size_t(* BNCustomArchitecture::getSemanticFlagGroupLowLevelIL) (void *ctxt, uint32_t semGroup, BNLowLevelILFunction *il)

◆ getSemanticFlagGroupName

char *(* BNCustomArchitecture::getSemanticFlagGroupName) (void *ctxt, uint32_t semGroup)

◆ getStackPointerRegister

uint32_t(* BNCustomArchitecture::getStackPointerRegister) (void *ctxt)

◆ getSystemRegisters

uint32_t *(* BNCustomArchitecture::getSystemRegisters) (void *ctxt, size_t *count)

◆ init

void(* BNCustomArchitecture::init) (void *context, BNArchitecture *obj)

◆ invertBranch

bool(* BNCustomArchitecture::invertBranch) (void *ctxt, uint8_t *data, uint64_t addr, size_t len)

◆ isAlwaysBranchPatchAvailable

bool(* BNCustomArchitecture::isAlwaysBranchPatchAvailable) (void *ctxt, const uint8_t *data, uint64_t addr, size_t len)

◆ isInvertBranchPatchAvailable

bool(* BNCustomArchitecture::isInvertBranchPatchAvailable) (void *ctxt, const uint8_t *data, uint64_t addr, size_t len)

◆ isNeverBranchPatchAvailable

bool(* BNCustomArchitecture::isNeverBranchPatchAvailable) (void *ctxt, const uint8_t *data, uint64_t addr, size_t len)

◆ isSkipAndReturnValuePatchAvailable

bool(* BNCustomArchitecture::isSkipAndReturnValuePatchAvailable) (void *ctxt, const uint8_t *data, uint64_t addr, size_t len)

◆ isSkipAndReturnZeroPatchAvailable

bool(* BNCustomArchitecture::isSkipAndReturnZeroPatchAvailable) (void *ctxt, const uint8_t *data, uint64_t addr, size_t len)

◆ skipAndReturnValue

bool(* BNCustomArchitecture::skipAndReturnValue) (void *ctxt, uint8_t *data, uint64_t addr, size_t len, uint64_t value)

The documentation for this struct was generated from the following file: