pub struct ShimParams {Show 17 fields
pub kernel_entry_address: u64,
pub cmdline_base: u64,
pub initrd_base: u64,
pub initrd_size: u64,
pub initrd_crc: u32,
pub memory_start_address: u64,
pub memory_size: u64,
pub parameter_region_start: u64,
pub parameter_region_size: u64,
pub vtl2_reserved_region_start: u64,
pub vtl2_reserved_region_size: u64,
pub isolation_type: IsolationType,
pub sidecar_entry_address: u64,
pub sidecar_base: u64,
pub sidecar_size: u64,
pub used: MemoryRange,
pub bounce_buffer: Option<MemoryRange>,
}
Expand description
Parameters fixed at IGVM file build time. These contain information about where certain sections are located, that are fixed up after figuring out where the boot loader was relocated to.
Fields§
§kernel_entry_address: u64
The kernel entry address.
cmdline_base: u64
The address of the [ParavisorCommandLine
] structure.
initrd_base: u64
The initrd address.
initrd_size: u64
The size of the inird, in bytes.
initrd_crc: u32
The crc32 of the initrd at file build time.
memory_start_address: u64
The base address of the VTL2 memory region encoded at build time.
memory_size: u64
The size of the VTL2 memory region encoded at build time.
parameter_region_start: u64
The base address of the parameter region.
parameter_region_size: u64
The size of the parameter region.
vtl2_reserved_region_start: u64
The base address of the VTL2 reserved region.
vtl2_reserved_region_size: u64
The size of the VTL2 reserved region.
isolation_type: IsolationType
Isolation type supported by the boot shim.
sidecar_entry_address: u64
§sidecar_base: u64
§sidecar_size: u64
§used: MemoryRange
Memory used by the shim.
bounce_buffer: Option<MemoryRange>
Implementations§
Source§impl ShimParams
impl ShimParams
Sourcepub fn new(shim_base_address: u64, raw: &ShimParamsRaw) -> Self
pub fn new(shim_base_address: u64, raw: &ShimParamsRaw) -> Self
Create a new instance of ShimParams
from the raw offset based
[ShimParamsRaw
] and shim base address.
Sourcepub fn secrets_start(&self) -> u64
pub fn secrets_start(&self) -> u64
Get the base address of the secrets page.
Sourcepub fn cpuid_start(&self) -> u64
pub fn cpuid_start(&self) -> u64
Get the size of the CPUID page.
Sourcepub fn command_line(&self) -> &'static ParavisorCommandLine
pub fn command_line(&self) -> &'static ParavisorCommandLine
Get the [ParavisorCommandLine
] structure that describes the command
line information.
Sourcepub fn device_tree(&self) -> &'static [u8] ⓘ
pub fn device_tree(&self) -> &'static [u8] ⓘ
Get the device tree parameter region as a byte slice. Note that the byte contents of this slice are written by the host which is untrusted and must be validated before usage.
Sourcepub fn imported_regions(&self) -> ImportedRegionIter<'_> ⓘ
pub fn imported_regions(&self) -> ImportedRegionIter<'_> ⓘ
Get the list of accepted regions from the parameter region as a ImportedRegionDescriptor slice. Note that this list is provided by the IGVM file and measured.