pub struct SnpHardwareContext {
accept_lower_1mb: bool,
page_number: Option<u64>,
vmsa: SevVmsa,
}
Expand description
A hardware SNP VP context, that is imported as a VMSA.
Fields§
§accept_lower_1mb: bool
If an assembly stub to accept the lower 1mb should be imported as page data.
page_number: Option<u64>
The page number to import this vp context at.
vmsa: SevVmsa
The VMSA for this VP.
Implementations§
Source§impl SnpHardwareContext
impl SnpHardwareContext
Sourcepub fn new(
vtl: Vtl,
enlightened_uefi: bool,
shared_gpa_boundary: u64,
injection_type: InjectionType,
) -> Self
pub fn new( vtl: Vtl, enlightened_uefi: bool, shared_gpa_boundary: u64, injection_type: InjectionType, ) -> Self
Create a new SNP VP context builder.
enlightened_uefi
specifies if UEFI is enlightened. This will result in
VpContextBuilder::finalize
generating additional trampoline code for
UEFI running without a paravisor, along with setting different fields in
the SEV_FEATURES
register.
injection_type
specifies the injection type for the highest enabled
VMPL.
Only the highest VTL will have a VMSA generated, with lower VTLs being imported with the VBS format as page data.
Trait Implementations§
Source§impl Debug for SnpHardwareContext
impl Debug for SnpHardwareContext
Source§impl VpContextBuilder for SnpHardwareContext
impl VpContextBuilder for SnpHardwareContext
Source§type Register = X86Register
type Register = X86Register
The register type which is different on different architectures.
Source§fn import_vp_register(&mut self, register: X86Register)
fn import_vp_register(&mut self, register: X86Register)
Import a register to the BSP at the given vtl.
Source§fn set_vp_context_memory(&mut self, page_base: u64)
fn set_vp_context_memory(&mut self, page_base: u64)
Define the base of the GPA range to be used for architecture-specific VP context data.
Source§fn finalize(&mut self, state: &mut Vec<VpContextState>)
fn finalize(&mut self, state: &mut Vec<VpContextState>)
Finalize all VP context data. Returns architecture specific data that should be either imported
into guest memory space or added directly to the IGVM file.
Auto Trait Implementations§
impl Freeze for SnpHardwareContext
impl RefUnwindSafe for SnpHardwareContext
impl Send for SnpHardwareContext
impl Sync for SnpHardwareContext
impl Unpin for SnpHardwareContext
impl UnwindSafe for SnpHardwareContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more