Expand description
Architecture-independent IRQ abstraction layer
Provides a generic interface for interrupt management that delegates to per-architecture interrupt controllers:
- x86_64: Local APIC + I/O APIC
- AArch64: GICv2 (Generic Interrupt Controller)
- RISC-V: PLIC (Platform-Level Interrupt Controller)
This module implements the IRQ object abstraction (H-003) from the remediation backlog, providing a unified API for registering handlers, enabling/disabling IRQ lines, and dispatching interrupts.
Structs§
- IrqManager
- Central IRQ manager that maintains registered handlers and delegates hardware operations to the architecture-specific controller.
- IrqNumber
- Architecture-independent IRQ number.
Traits§
- IrqController
- Architecture-independent interrupt controller interface.
Functions§
- disable_
irq - Disable an IRQ line on the hardware interrupt controller.
- dispatch
- Dispatch an interrupt to the registered handler.
- dispatch_
count - Get the number of interrupts dispatched since initialization.
- enable_
irq - Enable an IRQ line on the hardware interrupt controller.
- eoi
- Send end-of-interrupt to the hardware controller.
- init
- Initialize the IRQ manager subsystem.
- is_
pending - Check whether an IRQ is pending.
- register_
handler - Register an IRQ handler for the given interrupt number.
- set_
priority - Set the priority of an IRQ line.
- unregister_
handler - Unregister the IRQ handler for the given interrupt number.
Type Aliases§
- IrqHandler
- Type alias for IRQ handler functions.