Struct ExtendedStateInfo
pub struct ExtendedStateInfo {
pub(crate) read: CpuIdReader,
pub(crate) eax: ExtendedStateInfoXCR0Flags,
pub(crate) ebx: u32,
pub(crate) ecx: u32,
pub(crate) _edx: u32,
pub(crate) eax1: u32,
pub(crate) ebx1: u32,
pub(crate) ecx1: ExtendedStateInfoXSSFlags,
pub(crate) _edx1: u32,
}
Expand description
Fields§
§read: CpuIdReader
§eax: ExtendedStateInfoXCR0Flags
§ebx: u32
§ecx: u32
§_edx: u32
§eax1: u32
§ebx1: u32
§ecx1: ExtendedStateInfoXSSFlags
§_edx1: u32
Implementations§
§impl ExtendedStateInfo
impl ExtendedStateInfo
pub fn xcr0_supports_legacy_x87(&self) -> bool
pub fn xcr0_supports_legacy_x87(&self) -> bool
Support for legacy x87 in XCR0.
pub fn xcr0_supports_sse_128(&self) -> bool
pub fn xcr0_supports_sse_128(&self) -> bool
Support for SSE 128-bit in XCR0.
pub fn xcr0_supports_avx_256(&self) -> bool
pub fn xcr0_supports_avx_256(&self) -> bool
Support for AVX 256-bit in XCR0.
pub fn xcr0_supports_mpx_bndregs(&self) -> bool
pub fn xcr0_supports_mpx_bndregs(&self) -> bool
Support for MPX BNDREGS in XCR0.
pub fn xcr0_supports_mpx_bndcsr(&self) -> bool
pub fn xcr0_supports_mpx_bndcsr(&self) -> bool
Support for MPX BNDCSR in XCR0.
pub fn xcr0_supports_avx512_opmask(&self) -> bool
pub fn xcr0_supports_avx512_opmask(&self) -> bool
Support for AVX512 OPMASK in XCR0.
pub fn xcr0_supports_avx512_zmm_hi256(&self) -> bool
pub fn xcr0_supports_avx512_zmm_hi256(&self) -> bool
Support for AVX512 ZMM Hi256 XCR0.
pub fn xcr0_supports_avx512_zmm_hi16(&self) -> bool
pub fn xcr0_supports_avx512_zmm_hi16(&self) -> bool
Support for AVX512 ZMM Hi16 in XCR0.
pub fn xcr0_supports_pkru(&self) -> bool
pub fn xcr0_supports_pkru(&self) -> bool
Support for PKRU in XCR0.
pub fn ia32_xss_supports_pt(&self) -> bool
pub fn ia32_xss_supports_pt(&self) -> bool
Support for PT in IA32_XSS.
pub fn ia32_xss_supports_hdc(&self) -> bool
pub fn ia32_xss_supports_hdc(&self) -> bool
Support for HDC in IA32_XSS.
pub fn xsave_area_size_enabled_features(&self) -> u32
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.
pub fn xsave_area_size_supported_features(&self) -> u32
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.
pub fn has_xsaveopt(&self) -> bool
pub fn has_xsaveopt(&self) -> bool
CPU has xsaveopt feature.
pub fn has_xsavec(&self) -> bool
pub fn has_xsavec(&self) -> bool
Supports XSAVEC and the compacted form of XRSTOR if set.
pub fn has_xgetbv(&self) -> bool
pub fn has_xgetbv(&self) -> bool
Supports XGETBV with ECX = 1 if set.
pub fn has_xsaves_xrstors(&self) -> bool
pub fn has_xsaves_xrstors(&self) -> bool
Supports XSAVES/XRSTORS and IA32_XSS if set.
pub fn xsave_size(&self) -> u32
pub fn xsave_size(&self) -> u32
The size in bytes of the XSAVE area containing all states enabled by XCRO | IA32_XSS.
pub fn iter(&self) -> ExtendedStateIter ⓘ
pub fn iter(&self) -> ExtendedStateIter ⓘ
Iterator over extended state enumeration levels >= 2.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ExtendedStateInfo
impl RefUnwindSafe for ExtendedStateInfo
impl Send for ExtendedStateInfo
impl Sync for ExtendedStateInfo
impl Unpin for ExtendedStateInfo
impl UnwindSafe for ExtendedStateInfo
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> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> Pointee for T
impl<T> Pointee for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.