⚠️ VeridianOS Kernel Documentation - This is low-level kernel code. All functions are unsafe unless explicitly marked otherwise. no_std

Module irq

Module irq 

Source
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.