use zkvmc_core::traits::Reset;
use crate::Context;
use std::ptr::NonNull;
pub extern "C" fn default_ecall_handler(_ctx: NonNull<Context>) {}
pub extern "C" fn default_trace_handler(mut ctx: NonNull<Context>) {
unsafe {
ctx.as_mut().trace_buf.reset();
}
}
pub extern "C" fn default_ebreak_handler(ctx: NonNull<Context>) {
panic!("Unsupported EBREAK instruction at {:#x}", unsafe {
ctx.as_ref().pc
});
}
pub extern "C" fn default_undefined_handler(ctx: NonNull<Context>, inst: u32) {
panic!(
"Undefined instruction encoding at {:#x}: {inst:8x}",
unsafe { ctx.as_ref().pc }
);
}