macro_rules! aarch64_exception_vector_table { [$table:ident, $handler:path] => { ... }; }
Available on AArch64 only.
Expand description
Define an exception vector table that forwards all exceptions to the designated handler.
The first argument is the name of the vector table, which will be exported as an
unmangled symbol and exposed to Rust code as an immutable static of type
VectorTable
.
The second argument is the name of the handler function, which should have
signature func(Kind, Source)
.
§Example
ⓘ
aarch64_exception_vector_table!(exception_table_el1, handle_exception);
fn handle_exception(kind: Kind, source: Source) {
panic!("Exception {:?} from {:?}", kind, source);
}
fn main() {
VectorBaseAddressRegister::set(
ExceptionLevel::One,
unsafe { &exception_table_el1 }
);
}