MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / cb_reg_stack_info

Function cb_reg_stack_info

rust/src/architecture.rs:2790–2817  ·  view source on GitHub ↗
(
        ctxt: *mut c_void,
        stack: u32,
        result: *mut BNRegisterStackInfo,
    )

Source from the content-addressed store, hash-verified

2788 }
2789
2790 extern "C" fn cb_reg_stack_info<A>(
2791 ctxt: *mut c_void,
2792 stack: u32,
2793 result: *mut BNRegisterStackInfo,
2794 ) where
2795 A: 'static + Architecture<Handle = CustomArchitectureHandle<A>> + Send + Sync,
2796 {
2797 let custom_arch = unsafe { &*(ctxt as *mut A) };
2798 let result = unsafe { &mut *result };
2799
2800 if let Some(stack) = custom_arch.register_stack_from_id(RegisterStackId(stack)) {
2801 let info = stack.info();
2802
2803 let (reg, count) = info.storage_regs();
2804 result.firstStorageReg = reg.id().0;
2805 result.storageCount = count as u32;
2806
2807 if let Some((reg, count)) = info.top_relative_regs() {
2808 result.firstTopRelativeReg = reg.id().0;
2809 result.topRelativeCount = count as u32;
2810 } else {
2811 result.firstTopRelativeReg = 0xffff_ffff;
2812 result.topRelativeCount = 0;
2813 }
2814
2815 result.stackTopReg = info.stack_top_reg().id().0;
2816 }
2817 }
2818
2819 extern "C" fn cb_intrinsic_class<A>(ctxt: *mut c_void, intrinsic: u32) -> BNIntrinsicClass
2820 where

Callers

nothing calls this directly

Calls 6

storage_regsMethod · 0.80
top_relative_regsMethod · 0.80
stack_top_regMethod · 0.80
infoMethod · 0.45
idMethod · 0.45

Tested by

no test coverage detected