Function captain::init

source ·
pub fn init(
    kernel_mmi_ref: MmiRef,
    bsp_initial_stack: NoDrop<Stack>,
    drop_after_init: DropAfterInit,
    multicore_info: MulticoreBringupInfo,
    rsdp_address: Option<PhysicalAddress>
) -> Result<(), &'static str>
Expand description

Initialize the Captain, which is the main crate that “steers the ship” of Theseus.

This does the rest of the initialization procedures so that the OS can continue running and do actual useful work.

Arguments

  • kernel_mmi_ref: a reference to the kernel’s memory management info.
  • identity_mapped_pages: the memory containing the identity-mapped content, which must not be dropped until all APs are finished booting.
  • bsp_initial_stack: the stack currently in use for running this code, which must not be dropped for the entire execution of the initial bootstrap task.
  • multicore_info: information needed to bring up secondary CPUs.
  • rsdp_address: the physical address of the RSDP (an ACPI table pointer), if available and provided by the bootloader.