Expand description
Underhill (paravisor) definitions.
Structs§
- Command
Line Policy - Underhill command line policy.
- Expected
Page Hash - SHA-384 of one 4 KB unmeasured (shared) IGVM page, zero-extended to 4
KB before hashing (matching the combined hash in
ImportedRegionsPageHeader::sha384_hash). - Expected
Page Hashes Header - Header at page 0 of the measured per-page expected-hashes region
(
PARAVISOR_MEASURED_VTL2_CONFIG_PAGE_HASHES_PAGE_INDEX). Followed immediately by an array ofExpectedPageHashentries. Contents are zero-padded to fill the region. - Imported
Region Descriptor - Describes a region of guest memory that has been imported into VTL2.
- Imported
Regions Page Header - The header field of the imported pages region page.
- Linux
Info - Measured config about linux loaded into VTL0.
- Page
Region Descriptor - Describes a region of guest memory.
- Paravisor
Command Line - Command line information. This structure is an exclusive measured page.
- Paravisor
Measured Vtl0 Config - Paravisor measured config information for vtl 0. Unlike the previous loader block which contains dynamic parameter info written by the host, this config information is known at file build time, measured, and deposited as part of the initial launch data.
- Paravisor
Measured Vtl2 Config - Paravisor measured config for vtl2.
- Supported
Vtl0 Load Info - Measured config about what this image can support loading in VTL0.
- Uefi
Info - Measured config about UEFI loaded into VTL0.
Constants§
- COMMAND_
LINE_ SIZE - Maximum static command line size.
- EXPECTED_
PAGE_ HASHES_ MAGIC - Magic identifier at the start of the per-page expected-hashes region.
Chosen so an older tool inspecting the region can recognise it. Bytes
spell
EPHSin ASCII, little-endian encoded. - EXPECTED_
PAGE_ HASHES_ VERSION - Current layout version of
ExpectedPageHashesHeader+ its trailing array. Bumped only on incompatible changes. - EXPECTED_
PAGE_ HASH_ MAX_ COUNT - Maximum number of
ExpectedPageHashentries the region can hold, givenPARAVISOR_MEASURED_VTL2_CONFIG_PAGE_HASHES_SIZE_PAGESpages minus the header. - PARAVISOR_
CONFIG_ DEVICE_ TREE_ PAGE_ INDEX - The page index to the device tree.
- PARAVISOR_
CONFIG_ DEVICE_ TREE_ SIZE_ PAGES - Size in pages for the device tree.
- PARAVISOR_
CONFIG_ PPTT_ PAGE_ INDEX - The page index to the PPTT.
- PARAVISOR_
CONFIG_ PPTT_ SIZE_ PAGES - Size in pages for the PPTT.
- PARAVISOR_
CONFIG_ SLIT_ PAGE_ INDEX - The page index to the SLIT.
- PARAVISOR_
CONFIG_ SLIT_ SIZE_ PAGES - Size in pages for the SLIT.
- PARAVISOR_
DEFAULT_ MEMORY_ BASE_ ADDRESS - The default base address for the paravisor, 128MB.
- PARAVISOR_
DEFAULT_ MEMORY_ PAGE_ COUNT - The default page count for the memory size for the paravisor, 64MB.
- PARAVISOR_
LOCAL_ MAP_ SIZE - The base size in bytes for the local map, if present.
- PARAVISOR_
LOCAL_ MAP_ VA - The base VA for the local map, if present.
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ ACCEPTED_ MEMORY_ PAGE_ INDEX - The page index to the list of accepted pages
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ ACCEPTED_ MEMORY_ SIZE_ PAGES - Size in pages the list of accepted memory
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ PAGE_ HASHES_ PAGE_ INDEX - The page index for the per-page expected-hashes region.
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ PAGE_ HASHES_ SIZE_ PAGES - Size in pages for the per-page expected-hashes region. Holds one SHA-384 (48 bytes) per unmeasured (shared) 4 KB page in the IGVM, so the boot shim can identify which individual pages diverged from the measured baseline rather than only knowing “the combined hash was wrong”. Sized generously: 256 pages = 1 MB / 48 B per hash = 21_845 hashes max, comfortably above the ~16 K unmeasured pages on debug SNP images. Placed after PARAVISOR_MEASURED_VTL2_CONFIG_SIZE_PAGES so that PARAVISOR_MEASURED_VTL2_CONFIG_PAGE_INDEX stays where existing consumers expect it and only new readers need to know about the new region.
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ PAGE_ INDEX - The page index for measured VTL2 config.
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ REGION_ PAGE_ COUNT - Count for vtl 2 measured config region size.
- PARAVISOR_
MEASURED_ VTL2_ CONFIG_ SIZE_ PAGES - Size in pages of VTL2 specific measured config
- PARAVISOR_
RESERVED_ VTL2_ PAGE_ COUNT_ MAX - Total size of the reserved vtl2 range.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ CPUID_ PAGE_ INDEX - The page index to the first SNP CPUID page.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ CPUID_ SIZE_ PAGES - Size in pages for the SNP CPUID pages.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ SECRETS_ PAGE_ INDEX - The page index to the first SNP secrets page.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ SECRETS_ SIZE_ PAGES - Size in pages for the secrets page.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ VMSA_ PAGE_ INDEX - The page index to the SNP VMSA page.
- PARAVISOR_
RESERVED_ VTL2_ SNP_ VMSA_ SIZE_ PAGES - Size in pages for the VMSA page.
- PARAVISOR_
UNMEASURED_ VTL2_ CONFIG_ REGION_ BASE_ INDEX - Base index for the unmeasured vtl 2 config region
- PARAVISOR_
UNMEASURED_ VTL2_ CONFIG_ REGION_ PAGE_ COUNT_ MAX - The maximum size in pages of the unmeasured vtl 2 config region.
- PARAVISOR_
VTL0_ MEASURED_ CONFIG_ BASE_ PAGE_ AARC H64 - The physical page number for where the vtl 0 measured config is stored, aarch64. Not obvious about guaranteed existence. 16MiB might be a reasonable assumption as:
- PARAVISOR_
VTL0_ MEASURED_ CONFIG_ BASE_ PAGE_ X64 - The physical page number for where the vtl 0 measured config is stored, x86_64. This address is guaranteed to exist in the guest address space as it is where the ISR table is located at reset.
- PARAVISOR_
VTL2_ CONFIG_ REGION_ PAGE_ COUNT_ MAX - The maximum size in pages out of all isolation architectures.
- PRODUCT_
POLICY_ INLINE_ OFFSET - Byte offset of the inline
ProductPolicybody within the measured VTL2 config region. - PRODUCT_
POLICY_ MAX_ SIZE_ BYTES - Maximum byte size of an inline
ProductPolicybody.