hypervisor: Add API to complete isolated import

This is the function that needs to be called by the VMM
to inform the MSHV that isolation is complete and inform
PSP about this completion.

Signed-off-by: Jinank Jain <jinankjain@microsoft.com>
Signed-off-by: Muminul Islam <muislam@microsoft.com>
This commit is contained in:
Muminul Islam
2023-10-13 12:58:56 -07:00
committed by Bo Chen
parent dc3903012d
commit 5bd113e625
5 changed files with 168 additions and 2 deletions

View File

@@ -19,6 +19,8 @@ use crate::cpu::Vcpu;
use crate::ClockData;
use crate::UserMemoryRegion;
use crate::{IoEventAddress, IrqRoutingEntry};
#[cfg(feature = "sev_snp")]
use igvm_defs::IGVM_VHS_SNP_ID_BLOCK;
use std::any::Any;
#[cfg(target_arch = "x86_64")]
use std::fs::File;
@@ -225,6 +227,10 @@ pub enum HypervisorVmError {
///
#[error("Failed to import isolated pages: {0}")]
ImportIsolatedPages(#[source] anyhow::Error),
/// Failed to complete isolated import
///
#[error("Failed to complete isolated import: {0}")]
CompleteIsolatedImport(#[source] anyhow::Error),
}
///
/// Result type for returning from a function
@@ -374,6 +380,16 @@ pub trait Vm: Send + Sync + Any {
) -> Result<()> {
unimplemented!()
}
/// Complete the isolated import
#[cfg(feature = "sev_snp")]
fn complete_isolated_import(
&self,
_snp_id_block: IGVM_VHS_SNP_ID_BLOCK,
_host_data: &[u8],
_id_block_enabled: u8,
) -> Result<()> {
unimplemented!()
}
}
pub trait VmOps: Send + Sync {