Crate x86_64

source Β·
Expand description

x86 architecture support.

Re-exportsΒ§

ModulesΒ§

StructsΒ§

EnumsΒ§

ConstantsΒ§

FunctionsΒ§

  • add_e820_entry πŸ”’
    Add an e820 region to the e820 map.
  • Returns a Vec of the valid memory addresses. These should be used to configure the GuestMemory structure for the platform. For x86_64 all addresses are valid from the start of the kernel except a carve out at the end of 32bit address space.
  • bios_start πŸ”’
    The x86 reset vector for i386+ and x86_64 puts the processor into an β€œunreal mode” where it can access the last 1 MB of the 32-bit address space in 16-bit mode, and starts the instruction pointer at the effective physical address 0xFFFF_FFF0.
  • Check if host supports hybrid CPU feature. The check include: 1. Check if CPUID.1AH exists. CPUID.1AH is hybrid information enumeration leaf. 2. Check if CPUID.07H.00H:EDX[bit 15] sets. This bit means the processor is identified as a hybrid part. 3. Check if CPUID.1AH:EAX sets. The hybrid core type is set in EAX.
  • find_setup_data πŸ”’
    Find the first setup_data_hdr with the given type in guest memory and return its address.
  • Generate a memory map in INT 0x15 AX=0xE820 format.
  • Generate a SETUP_RNG_SEED SetupData with random seed data.
  • tss_addr_end πŸ”’
  • tss_addr_start πŸ”’
  • write_setup_data πŸ”’
    Write setup_data entries in guest memory and link them together with the next field.

Type AliasesΒ§