1use zkvmc_core::traits::Reset;
2
3use crate::Context;
4use std::ptr::NonNull;
5
6pub extern "C" fn default_ecall_handler(_ctx: NonNull<Context>) {}
7pub extern "C" fn default_trace_handler(mut ctx: NonNull<Context>) {
8 unsafe {
10 ctx.as_mut().trace_buf.reset();
12 }
13}
14
15pub extern "C" fn default_ebreak_handler(ctx: NonNull<Context>) {
16 panic!("Unsupported EBREAK instruction at {:#x}", unsafe {
17 ctx.as_ref().pc
18 });
19}
20
21pub extern "C" fn default_undefined_handler(ctx: NonNull<Context>, inst: u32) {
22 panic!(
23 "Undefined instruction encoding at {:#x}: {inst:8x}",
24 unsafe { ctx.as_ref().pc }
25 );
26}