#[exception]Expand description
Creates an unsafe exception handler.
It’s unsafe because you are not supposed to call it - it should only be
called from assembly routines registered in the interrupt vector table.
When placed on a function like:
ⓘ
#[exception(Undefined)]
fn foo(addr: usize) -> ! {
panic!("On no")
}You get something like:
#[doc(hidden)]
#[export_name = "_undefined_handler"]
pub unsafe extern "C" fn __aarch32_rt_undefined_handler(addr: usize) -> ! {
foo(addr)
}
fn foo(addr: usize) -> ! {
panic!("On no")
}The supported arguments are:
- Undefined (creates
_undefined_handler) - SupervisorCall (creates
_svc_handler) - PrefetchAbort (creates
_prefetch_abort_handler) - DataAbort (creates
_data_abort_handler) - Irq (creates
_irq_handler) - although people should prefer#[irq].