Skip to main content

load_config_x86

Function load_config_x86 

Source
pub fn load_config_x86(
    importer: &mut impl ImageLoad<X86Register>,
    load_info: &LoadInfo,
    cmdline: &CString,
    mem_layout: &MemoryLayout,
    build_acpi: impl FnOnce(u64) -> AcpiTables,
    smbios: Option<SmbiosTables<'_>>,
    snp_boot: Option<SnpBootConfig>,
) -> Result<(), Error>
Expand description

Place the ACPI tables, SMBIOS tables, boot metadata, zero page, and initial registers for a Linux kernel that has already been loaded into guest memory (as described by load_info).

The loader owns the entire sub-1 MB memory map; callers supply only contents, never addresses:

  • cmdline - the kernel command line.
  • mem_layout - the guest memory layout, used to build the e820 map.
  • build_acpi - a builder handed the nominal RSDP address; it must return ACPI tables self-consistent for placement one page above that address. The loader re-homes the RSDP to the fixed 0xe0000 legacy-scan location.
  • smbios - an optional SMBIOS identity; when present the loader assembles the _SM3_ entry point and structure table into the F-segment.
  • snp_boot - optionally allocate SEV-SNP Linux boot protocol pages.