Enum hypervisor::caps::HypervisorCap
source · pub enum HypervisorCap {
ArmPmuV3,
ImmediateExit,
S390UserSigp,
TscDeadlineTimer,
UserMemory,
Xcrs,
CalibratedTscLeafRequired,
StaticSwiotlbAllocationRequired,
HypervisorInitializedBootContext,
}
Expand description
An enumeration of different hypervisor capabilities.
Variants§
ArmPmuV3
ImmediateExit
S390UserSigp
TscDeadlineTimer
UserMemory
Xcrs
CalibratedTscLeafRequired
CPUID leaf 0x15 is available on some Intel chips and contains the TSC frequency, which can be used to calibrate the guest’s TSC clocksource; however, it is not typically accurate enough (being off by 1-2% is a big problem for a clocksource), and inside the guest, calibration by other means is not always reliable.
Hypervisors which do not provide the TSC frequency (e.g. via the kvm pvclock) or have another suitable calibration source can declare this capability, which causes crosvm to substitute a calibrated value in leaf 0x15 that will be accurate enough for use in a clocksource.
StaticSwiotlbAllocationRequired
HypervisorInitializedBootContext
Some hypervisors (presently: Gunyah) will configure initial boot-time registers for vCPUs without need for CrosVM to specify.
If this capability is declared, then crosvm will not try to initialize vcpu registers when creating the VM.
Trait Implementations§
source§impl Clone for HypervisorCap
impl Clone for HypervisorCap
source§fn clone(&self) -> HypervisorCap
fn clone(&self) -> HypervisorCap
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for HypervisorCap
impl Debug for HypervisorCap
source§impl PartialEq for HypervisorCap
impl PartialEq for HypervisorCap
source§fn eq(&self, other: &HypervisorCap) -> bool
fn eq(&self, other: &HypervisorCap) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl TryFrom<HypervisorCap> for KvmCap
impl TryFrom<HypervisorCap> for KvmCap
impl Copy for HypervisorCap
impl Eq for HypervisorCap
impl StructuralPartialEq for HypervisorCap
Auto Trait Implementations§
impl RefUnwindSafe for HypervisorCap
impl Send for HypervisorCap
impl Sync for HypervisorCap
impl Unpin for HypervisorCap
impl UnwindSafe for HypervisorCap
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.