Function interrupts::init

source ·
pub fn init(
    double_fault_stack_top_unusable: VirtualAddress,
    privilege_stack_top_unusable: VirtualAddress
) -> Result<&'static LockedIdt, &'static str>
Expand description

Initializes the interrupt subsystem and sets up an initial Interrupt Descriptor Table (IDT).

The new IDT will be initialized with the same contents as the early IDT created in [exceptions_early::init()]. Any other interrupt handler entries that are missing (not yet initialized) will be filled with a default placeholder handler, which is useful to catch interrupts that need to be implemented.

Arguments:

  • double_fault_stack_top_unusable: the address of the top of a newly allocated stack, to be used as the double fault exception handler stack.
  • privilege_stack_top_unusable: the address of the top of a newly allocated stack, to be used as the privilege stack (Ring 3 -> Ring 0 stack).