axhal/irq.rs
1//! Interrupt management.
2
3use axcpu::trap::{IRQ, register_trap_handler};
4
5pub use axplat::irq::{handle, register, set_enable, unregister};
6
7#[register_trap_handler(IRQ)]
8fn irq_handler(vector: usize) -> bool {
9 let guard = kernel_guard::NoPreempt::new();
10 handle(vector);
11 drop(guard); // rescheduling may occur when preemption is re-enabled.
12 true
13}