raw_cpuid

Struct SvmFeatures

Source
pub struct SvmFeatures { /* private fields */ }
Expand description

Information about the SVM features that the processory supports (LEAF=0x8000_000A).

§Note

If SVM is not supported (ExtendedProcessorFeatureIdentifiers::has_svm is false), this leaf is reserved (crate::CpuId will return None in this case).

§Platforms

✅ AMD ❌ Intel

Implementations§

Source§

impl SvmFeatures

Source

pub fn revision(&self) -> u8

SVM revision number.

Source

pub fn supported_asids(&self) -> u32

Number of available address space identifiers (ASID).

Source

pub fn has_nested_paging(&self) -> bool

Nested paging supported if set.

Source

pub fn has_lbr_virtualization(&self) -> bool

Indicates support for LBR Virtualization.

Source

pub fn has_svm_lock(&self) -> bool

Indicates support for SVM-Lock if set.

Source

pub fn has_nrip(&self) -> bool

Indicates support for NRIP save on #VMEXIT if set.

Source

pub fn has_tsc_rate_msr(&self) -> bool

Indicates support for MSR TSC ratio (MSR 0xC000_0104) if set.

Source

pub fn has_vmcb_clean_bits(&self) -> bool

Indicates support for VMCB clean bits if set.

Source

pub fn has_flush_by_asid(&self) -> bool

Indicates that TLB flush events, including CR3 writes and CR4.PGE toggles, flush only the current ASID’s TLB entries.

Also indicates support for the extended VMCB TLB_Control.

Source

pub fn has_decode_assists(&self) -> bool

Indicates support for the decode assists if set.

Source

pub fn has_pause_filter(&self) -> bool

Indicates support for the pause intercept filter if set.

Source

pub fn has_pause_filter_threshold(&self) -> bool

Indicates support for the PAUSE filter cycle count threshold if set.

Source

pub fn has_avic(&self) -> bool

Support for the AMD advanced virtual interrupt controller if set.

Source

pub fn has_vmsave_virtualization(&self) -> bool

VMSAVE and VMLOAD virtualization supported if set.

Source

pub fn has_gif(&self) -> bool

GIF – virtualized global interrupt flag if set.

Source

pub fn has_gmet(&self) -> bool

Guest Mode Execution Trap supported if set.

Source

pub fn has_sss_check(&self) -> bool

SVM supervisor shadow stack restrictions if set.

Source

pub fn has_spec_ctrl(&self) -> bool

SPEC_CTRL virtualization supported if set.

Source

pub fn has_host_mce_override(&self) -> bool

When host CR4.MCE=1 and guest CR4.MCE=0, machine check exceptions (#MC) in a guest do not cause shutdown and are always intercepted if set.

Source

pub fn has_tlb_ctrl(&self) -> bool

Support for INVLPGB/TLBSYNC hypervisor enable in VMCB and TLBSYNC intercept if set.

Trait Implementations§

Source§

impl Debug for SvmFeatures

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for SvmFeatures

Source§

fn eq(&self, other: &SvmFeatures) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for SvmFeatures

Source§

impl StructuralPartialEq for SvmFeatures

Auto Trait Implementations§

§

impl Freeze for SvmFeatures

§

impl RefUnwindSafe for SvmFeatures

§

impl Send for SvmFeatures

§

impl Sync for SvmFeatures

§

impl Unpin for SvmFeatures

§

impl UnwindSafe for SvmFeatures

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.