(
ctxt: *mut c_void,
stack: u32,
result: *mut BNRegisterStackInfo,
)
| 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 |
nothing calls this directly
no test coverage detected