mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-01-03 11:25:20 +00:00
hypervisor: Support compiling "tdx" and "mshv" feature together
TDX functionality is not currently available on MSHV but we should not preclude building a binary that can run on both. Fixes: #4677 Signed-off-by: Rob Bradford <robert.bradford@intel.com>
This commit is contained in:
parent
3bf3cca70a
commit
b8503b5f45
@ -406,7 +406,9 @@ pub trait Vcpu: Send + Sync {
|
|||||||
/// Initialize TDX support on the vCPU
|
/// Initialize TDX support on the vCPU
|
||||||
///
|
///
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
fn tdx_init(&self, hob_address: u64) -> Result<()>;
|
fn tdx_init(&self, _hob_address: u64) -> Result<()> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
///
|
///
|
||||||
/// Set the "immediate_exit" state
|
/// Set the "immediate_exit" state
|
||||||
///
|
///
|
||||||
@ -415,12 +417,16 @@ pub trait Vcpu: Send + Sync {
|
|||||||
///
|
///
|
||||||
/// Returns the details about TDX exit reason
|
/// Returns the details about TDX exit reason
|
||||||
///
|
///
|
||||||
fn get_tdx_exit_details(&mut self) -> Result<TdxExitDetails>;
|
fn get_tdx_exit_details(&mut self) -> Result<TdxExitDetails> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
///
|
///
|
||||||
/// Set the status code for TDX exit
|
/// Set the status code for TDX exit
|
||||||
///
|
///
|
||||||
fn set_tdx_status(&mut self, status: TdxExitStatus);
|
fn set_tdx_status(&mut self, _status: TdxExitStatus) {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
#[cfg(target_arch = "x86_64")]
|
#[cfg(target_arch = "x86_64")]
|
||||||
///
|
///
|
||||||
/// Return the list of initial MSR entries for a VCPU
|
/// Return the list of initial MSR entries for a VCPU
|
||||||
|
@ -124,7 +124,9 @@ pub trait Hypervisor: Send + Sync {
|
|||||||
/// Retrieve TDX capabilities
|
/// Retrieve TDX capabilities
|
||||||
///
|
///
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
fn tdx_capabilities(&self) -> Result<TdxCapabilities>;
|
fn tdx_capabilities(&self) -> Result<TdxCapabilities> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
///
|
///
|
||||||
/// Get the number of supported hardware breakpoints
|
/// Get the number of supported hardware breakpoints
|
||||||
///
|
///
|
||||||
|
@ -326,19 +326,25 @@ pub trait Vm: Send + Sync + Any {
|
|||||||
fn get_dirty_log(&self, slot: u32, base_gpa: u64, memory_size: u64) -> Result<Vec<u64>>;
|
fn get_dirty_log(&self, slot: u32, base_gpa: u64, memory_size: u64) -> Result<Vec<u64>>;
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
/// Initalize TDX on this VM
|
/// Initalize TDX on this VM
|
||||||
fn tdx_init(&self, cpuid: &[CpuIdEntry], max_vcpus: u32) -> Result<()>;
|
fn tdx_init(&self, _cpuid: &[CpuIdEntry], _max_vcpus: u32) -> Result<()> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
/// Finalize the configuration of TDX on this VM
|
/// Finalize the configuration of TDX on this VM
|
||||||
fn tdx_finalize(&self) -> Result<()>;
|
fn tdx_finalize(&self) -> Result<()> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
#[cfg(feature = "tdx")]
|
#[cfg(feature = "tdx")]
|
||||||
/// Initalize a TDX memory region for this VM
|
/// Initalize a TDX memory region for this VM
|
||||||
fn tdx_init_memory_region(
|
fn tdx_init_memory_region(
|
||||||
&self,
|
&self,
|
||||||
host_address: u64,
|
_host_address: u64,
|
||||||
guest_address: u64,
|
_guest_address: u64,
|
||||||
size: u64,
|
_size: u64,
|
||||||
measure: bool,
|
_measure: bool,
|
||||||
) -> Result<()>;
|
) -> Result<()> {
|
||||||
|
unimplemented!()
|
||||||
|
}
|
||||||
/// Downcast to the underlying hypervisor VM type
|
/// Downcast to the underlying hypervisor VM type
|
||||||
fn as_any(&self) -> &dyn Any;
|
fn as_any(&self) -> &dyn Any;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user