mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-10-01 02:55:45 +00:00
hypervisor: pick the available hypervisor automatically
Signed-off-by: Wei Liu <liuwe@microsoft.com>
This commit is contained in:
parent
aa66526ea0
commit
bb19c3d2b7
@ -69,12 +69,18 @@ pub enum HypervisorType {
|
|||||||
|
|
||||||
pub fn new() -> std::result::Result<Arc<dyn Hypervisor>, HypervisorError> {
|
pub fn new() -> std::result::Result<Arc<dyn Hypervisor>, HypervisorError> {
|
||||||
#[cfg(feature = "kvm")]
|
#[cfg(feature = "kvm")]
|
||||||
let hv = kvm::KvmHypervisor::new()?;
|
if kvm::KvmHypervisor::is_available()? {
|
||||||
|
return kvm::KvmHypervisor::new();
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(feature = "mshv")]
|
#[cfg(feature = "mshv")]
|
||||||
let hv = mshv::MshvHypervisor::new()?;
|
if mshv::MshvHypervisor::is_available()? {
|
||||||
|
return mshv::MshvHypervisor::new();
|
||||||
|
}
|
||||||
|
|
||||||
Ok(hv)
|
Err(HypervisorError::HypervisorCreate(anyhow!(
|
||||||
|
"no supported hypervisor"
|
||||||
|
)))
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a `Vec<T>` with a size in bytes at least as large as `size_in_bytes`.
|
// Returns a `Vec<T>` with a size in bytes at least as large as `size_in_bytes`.
|
||||||
|
Loading…
Reference in New Issue
Block a user