raw_cpuid

Struct ExtendedStateInfo

source
pub struct ExtendedStateInfo<R: CpuIdReader> { /* private fields */ }
Expand description

Information for saving/restoring extended register state (LEAF=0x0D).

§Platforms

✅ AMD ✅ Intel

Implementations§

source§

impl<F: CpuIdReader> ExtendedStateInfo<F>

source

pub fn xcr0_supports_legacy_x87(&self) -> bool

Support for legacy x87 in XCR0.

source

pub fn xcr0_supports_sse_128(&self) -> bool

Support for SSE 128-bit in XCR0.

source

pub fn xcr0_supports_avx_256(&self) -> bool

Support for AVX 256-bit in XCR0.

source

pub fn xcr0_supports_mpx_bndregs(&self) -> bool

Support for MPX BNDREGS in XCR0.

source

pub fn xcr0_supports_mpx_bndcsr(&self) -> bool

Support for MPX BNDCSR in XCR0.

source

pub fn xcr0_supports_avx512_opmask(&self) -> bool

Support for AVX512 OPMASK in XCR0.

source

pub fn xcr0_supports_avx512_zmm_hi256(&self) -> bool

Support for AVX512 ZMM Hi256 XCR0.

source

pub fn xcr0_supports_avx512_zmm_hi16(&self) -> bool

Support for AVX512 ZMM Hi16 in XCR0.

source

pub fn xcr0_supports_pkru(&self) -> bool

Support for PKRU in XCR0.

source

pub fn ia32_xss_supports_pt(&self) -> bool

Support for PT in IA32_XSS.

source

pub fn ia32_xss_supports_hdc(&self) -> bool

Support for HDC in IA32_XSS.

source

pub fn xsave_area_size_enabled_features(&self) -> u32

Maximum size (bytes, from the beginning of the XSAVE/XRSTOR save area) required by enabled features in XCR0. May be different than ECX if some features at the end of the XSAVE save area are not enabled.

source

pub fn xsave_area_size_supported_features(&self) -> u32

Maximum size (bytes, from the beginning of the XSAVE/XRSTOR save area) of the XSAVE/XRSTOR save area required by all supported features in the processor, i.e all the valid bit fields in XCR0.

source

pub fn has_xsaveopt(&self) -> bool

CPU has xsaveopt feature.

source

pub fn has_xsavec(&self) -> bool

Supports XSAVEC and the compacted form of XRSTOR if set.

source

pub fn has_xgetbv(&self) -> bool

Supports XGETBV with ECX = 1 if set.

source

pub fn has_xsaves_xrstors(&self) -> bool

Supports XSAVES/XRSTORS and IA32_XSS if set.

source

pub fn xsave_size(&self) -> u32

The size in bytes of the XSAVE area containing all states enabled by XCRO | IA32_XSS.

source

pub fn iter(&self) -> ExtendedStateIter<F>

Iterator over extended state enumeration levels >= 2.

Trait Implementations§

source§

impl<R: CpuIdReader> Debug for ExtendedStateInfo<R>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<R> Freeze for ExtendedStateInfo<R>
where R: Freeze,

§

impl<R> RefUnwindSafe for ExtendedStateInfo<R>
where R: RefUnwindSafe,

§

impl<R> Send for ExtendedStateInfo<R>
where R: Send,

§

impl<R> Sync for ExtendedStateInfo<R>
where R: Sync,

§

impl<R> Unpin for ExtendedStateInfo<R>
where R: Unpin,

§

impl<R> UnwindSafe for ExtendedStateInfo<R>
where R: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

source§

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

source§

type Error = Infallible

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

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

Performs the conversion.
source§

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

source§

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

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

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

Performs the conversion.