Function interrupt_controller::init

source ·
pub fn init(kernel_mmi: &MmiRef) -> Result<(), &'static str>
Expand description

Initializes the interrupt controller(s) on this system.

Depending on the architecture, this includes both the system-wide interrupt controller(s) and one or more local (per-CPU) interrupt controllers.

  • On x86_64 systems, this initializes the I/O APIC(s) (there may be more than one) as the system-wide interrupt controller(s), and the Local APIC for the BSP (bootstrap processor) only as the first local interrupt controller.
    • Other Local APICs are initialized by those CPUs when they are brought online.
  • On aarch64 systems with GIC, this initializes both the system-wide interrupt controller (the GIC Distributor) as well as the local controllers for all CPUs (their Redistributors and CPU interfaces).