#[cfg(target_arch = "aarch64")]
pub use crate::arch::current::trap::{TrapKind, TrapSource};
#[derive(Clone, Copy, Debug)]
pub struct BootException {
pub registers: crate::registers::GeneralRegisters,
pub pc: usize,
pub sp: usize,
pub status: u64,
pub syndrome: u64,
pub fault_address: crate::VirtAddr,
#[cfg(target_arch = "x86_64")]
pub vector: u8,
#[cfg(target_arch = "aarch64")]
pub level: u8,
#[cfg(target_arch = "aarch64")]
pub kind: TrapKind,
#[cfg(target_arch = "aarch64")]
pub source: TrapSource,
}
#[trait_ffi::def_extern_trait(mod_path = "trap::boot")]
pub trait BootTrapHandler {
fn handle(exception: &BootException);
}