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}