#[repr(C)]pub struct BNCustomArchitecture {Show 61 fields
pub context: *mut c_void,
pub init: Option<unsafe extern "C" fn(context: *mut c_void, obj: *mut BNArchitecture)>,
pub getEndianness: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> BNEndianness>,
pub getAddressSize: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>,
pub getDefaultIntegerSize: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>,
pub getInstructionAlignment: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>,
pub getMaxInstructionLength: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>,
pub getOpcodeDisplayLength: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>,
pub getAssociatedArchitectureByAddress: Option<unsafe extern "C" fn(ctxt: *mut c_void, addr: *mut u64) -> *mut BNArchitecture>,
pub getInstructionInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, maxLen: usize, result: *mut BNInstructionInfo) -> bool>,
pub getInstructionText: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: *mut usize, result: *mut *mut BNInstructionTextToken, count: *mut usize) -> bool>,
pub freeInstructionText: Option<unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize)>,
pub getInstructionLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: *mut usize, il: *mut BNLowLevelILFunction) -> bool>,
pub getRegisterName: Option<unsafe extern "C" fn(ctxt: *mut c_void, reg: u32) -> *mut c_char>,
pub getFlagName: Option<unsafe extern "C" fn(ctxt: *mut c_void, flag: u32) -> *mut c_char>,
pub getFlagWriteTypeName: Option<unsafe extern "C" fn(ctxt: *mut c_void, flags: u32) -> *mut c_char>,
pub getSemanticFlagClassName: Option<unsafe extern "C" fn(ctxt: *mut c_void, semClass: u32) -> *mut c_char>,
pub getSemanticFlagGroupName: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32) -> *mut c_char>,
pub getFullWidthRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getAllRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getAllFlags: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getAllFlagWriteTypes: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getAllSemanticFlagClasses: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getAllSemanticFlagGroups: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getFlagRole: Option<unsafe extern "C" fn(ctxt: *mut c_void, flag: u32, semClass: u32) -> BNFlagRole>,
pub getFlagsRequiredForFlagCondition: Option<unsafe extern "C" fn(ctxt: *mut c_void, cond: BNLowLevelILFlagCondition, semClass: u32, count: *mut usize) -> *mut u32>,
pub getFlagsRequiredForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, count: *mut usize) -> *mut u32>,
pub getFlagConditionsForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, count: *mut usize) -> *mut BNFlagConditionForSemanticClass>,
pub freeFlagConditionsForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, conditions: *mut BNFlagConditionForSemanticClass, count: usize)>,
pub getFlagsWrittenByFlagWriteType: Option<unsafe extern "C" fn(ctxt: *mut c_void, writeType: u32, count: *mut usize) -> *mut u32>,
pub getSemanticClassForFlagWriteType: Option<unsafe extern "C" fn(ctxt: *mut c_void, writeType: u32) -> u32>,
pub getFlagWriteLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, op: BNLowLevelILOperation, size: usize, flagWriteType: u32, flag: u32, operands: *mut BNRegisterOrConstant, operandCount: usize, il: *mut BNLowLevelILFunction) -> usize>,
pub getFlagConditionLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, cond: BNLowLevelILFlagCondition, semClass: u32, il: *mut BNLowLevelILFunction) -> usize>,
pub getSemanticFlagGroupLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, il: *mut BNLowLevelILFunction) -> usize>,
pub freeRegisterList: Option<unsafe extern "C" fn(ctxt: *mut c_void, regs: *mut u32, count: usize)>,
pub getRegisterInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, reg: u32, result: *mut BNRegisterInfo)>,
pub getStackPointerRegister: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> u32>,
pub getLinkRegister: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> u32>,
pub getGlobalRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getSystemRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getRegisterStackName: Option<unsafe extern "C" fn(ctxt: *mut c_void, regStack: u32) -> *mut c_char>,
pub getAllRegisterStacks: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getRegisterStackInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, regStack: u32, result: *mut BNRegisterStackInfo)>,
pub getIntrinsicClass: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32) -> BNIntrinsicClass>,
pub getIntrinsicName: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32) -> *mut c_char>,
pub getAllIntrinsics: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>,
pub getIntrinsicInputs: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32, count: *mut usize) -> *mut BNNameAndType>,
pub freeNameAndTypeList: Option<unsafe extern "C" fn(ctxt: *mut c_void, nt: *mut BNNameAndType, count: usize)>,
pub getIntrinsicOutputs: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32, count: *mut usize) -> *mut BNTypeWithConfidence>,
pub freeTypeList: Option<unsafe extern "C" fn(ctxt: *mut c_void, types: *mut BNTypeWithConfidence, count: usize)>,
pub canAssemble: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> bool>,
pub assemble: Option<unsafe extern "C" fn(ctxt: *mut c_void, code: *const c_char, addr: u64, result: *mut BNDataBuffer, errors: *mut *mut c_char) -> bool>,
pub isNeverBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>,
pub isAlwaysBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>,
pub isInvertBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>,
pub isSkipAndReturnZeroPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>,
pub isSkipAndReturnValuePatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>,
pub convertToNop: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>,
pub alwaysBranch: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>,
pub invertBranch: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>,
pub skipAndReturnValue: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize, value: u64) -> bool>,
}
Fields§
§context: *mut c_void
§init: Option<unsafe extern "C" fn(context: *mut c_void, obj: *mut BNArchitecture)>
§getEndianness: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> BNEndianness>
§getAddressSize: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>
§getDefaultIntegerSize: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>
§getInstructionAlignment: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>
§getMaxInstructionLength: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>
§getOpcodeDisplayLength: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> usize>
§getAssociatedArchitectureByAddress: Option<unsafe extern "C" fn(ctxt: *mut c_void, addr: *mut u64) -> *mut BNArchitecture>
§getInstructionInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, maxLen: usize, result: *mut BNInstructionInfo) -> bool>
§getInstructionText: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: *mut usize, result: *mut *mut BNInstructionTextToken, count: *mut usize) -> bool>
§freeInstructionText: Option<unsafe extern "C" fn(tokens: *mut BNInstructionTextToken, count: usize)>
§getInstructionLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: *mut usize, il: *mut BNLowLevelILFunction) -> bool>
§getRegisterName: Option<unsafe extern "C" fn(ctxt: *mut c_void, reg: u32) -> *mut c_char>
§getFlagName: Option<unsafe extern "C" fn(ctxt: *mut c_void, flag: u32) -> *mut c_char>
§getFlagWriteTypeName: Option<unsafe extern "C" fn(ctxt: *mut c_void, flags: u32) -> *mut c_char>
§getSemanticFlagClassName: Option<unsafe extern "C" fn(ctxt: *mut c_void, semClass: u32) -> *mut c_char>
§getSemanticFlagGroupName: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32) -> *mut c_char>
§getFullWidthRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getAllRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getAllFlags: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getAllFlagWriteTypes: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getAllSemanticFlagClasses: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getAllSemanticFlagGroups: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getFlagRole: Option<unsafe extern "C" fn(ctxt: *mut c_void, flag: u32, semClass: u32) -> BNFlagRole>
§getFlagsRequiredForFlagCondition: Option<unsafe extern "C" fn(ctxt: *mut c_void, cond: BNLowLevelILFlagCondition, semClass: u32, count: *mut usize) -> *mut u32>
§getFlagsRequiredForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, count: *mut usize) -> *mut u32>
§getFlagConditionsForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, count: *mut usize) -> *mut BNFlagConditionForSemanticClass>
§freeFlagConditionsForSemanticFlagGroup: Option<unsafe extern "C" fn(ctxt: *mut c_void, conditions: *mut BNFlagConditionForSemanticClass, count: usize)>
§getFlagsWrittenByFlagWriteType: Option<unsafe extern "C" fn(ctxt: *mut c_void, writeType: u32, count: *mut usize) -> *mut u32>
§getSemanticClassForFlagWriteType: Option<unsafe extern "C" fn(ctxt: *mut c_void, writeType: u32) -> u32>
§getFlagWriteLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, op: BNLowLevelILOperation, size: usize, flagWriteType: u32, flag: u32, operands: *mut BNRegisterOrConstant, operandCount: usize, il: *mut BNLowLevelILFunction) -> usize>
§getFlagConditionLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, cond: BNLowLevelILFlagCondition, semClass: u32, il: *mut BNLowLevelILFunction) -> usize>
§getSemanticFlagGroupLowLevelIL: Option<unsafe extern "C" fn(ctxt: *mut c_void, semGroup: u32, il: *mut BNLowLevelILFunction) -> usize>
§freeRegisterList: Option<unsafe extern "C" fn(ctxt: *mut c_void, regs: *mut u32, count: usize)>
§getRegisterInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, reg: u32, result: *mut BNRegisterInfo)>
§getStackPointerRegister: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> u32>
§getLinkRegister: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> u32>
§getGlobalRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getSystemRegisters: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getRegisterStackName: Option<unsafe extern "C" fn(ctxt: *mut c_void, regStack: u32) -> *mut c_char>
§getAllRegisterStacks: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getRegisterStackInfo: Option<unsafe extern "C" fn(ctxt: *mut c_void, regStack: u32, result: *mut BNRegisterStackInfo)>
§getIntrinsicClass: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32) -> BNIntrinsicClass>
§getIntrinsicName: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32) -> *mut c_char>
§getAllIntrinsics: Option<unsafe extern "C" fn(ctxt: *mut c_void, count: *mut usize) -> *mut u32>
§getIntrinsicInputs: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32, count: *mut usize) -> *mut BNNameAndType>
§freeNameAndTypeList: Option<unsafe extern "C" fn(ctxt: *mut c_void, nt: *mut BNNameAndType, count: usize)>
§getIntrinsicOutputs: Option<unsafe extern "C" fn(ctxt: *mut c_void, intrinsic: u32, count: *mut usize) -> *mut BNTypeWithConfidence>
§freeTypeList: Option<unsafe extern "C" fn(ctxt: *mut c_void, types: *mut BNTypeWithConfidence, count: usize)>
§canAssemble: Option<unsafe extern "C" fn(ctxt: *mut c_void) -> bool>
§assemble: Option<unsafe extern "C" fn(ctxt: *mut c_void, code: *const c_char, addr: u64, result: *mut BNDataBuffer, errors: *mut *mut c_char) -> bool>
§isNeverBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>
§isAlwaysBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>
§isInvertBranchPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>
§isSkipAndReturnZeroPatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>
§isSkipAndReturnValuePatchAvailable: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *const u8, addr: u64, len: usize) -> bool>
§convertToNop: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>
§alwaysBranch: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>
§invertBranch: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize) -> bool>
§skipAndReturnValue: Option<unsafe extern "C" fn(ctxt: *mut c_void, data: *mut u8, addr: u64, len: usize, value: u64) -> bool>
Trait Implementations§
source§impl Clone for BNCustomArchitecture
impl Clone for BNCustomArchitecture
source§fn clone(&self) -> BNCustomArchitecture
fn clone(&self) -> BNCustomArchitecture
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for BNCustomArchitecture
impl Debug for BNCustomArchitecture
source§impl Default for BNCustomArchitecture
impl Default for BNCustomArchitecture
impl Copy for BNCustomArchitecture
Auto Trait Implementations§
impl Freeze for BNCustomArchitecture
impl RefUnwindSafe for BNCustomArchitecture
impl !Send for BNCustomArchitecture
impl !Sync for BNCustomArchitecture
impl Unpin for BNCustomArchitecture
impl UnwindSafe for BNCustomArchitecture
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)