[][src]Struct x86_64_xsave::ExtendedStateInformation

pub struct ExtendedStateInformation {
    pub xsave_area_size_supported_features: usize,
    pub xsave_area_size_enabled_features: usize,
    pub xsaves_area_size_enabled_features: usize,
    pub has_xsaveopt_feature: bool,
    pub has_xsavec_feature: bool,
    pub xgetbv_supports_ecx_equals_one: bool,
    pub has_xsaves_feature: bool,
    // some fields omitted
}

Extended state information, as defined in Section 13.2 of the Intel® 64 and IA-32 Architectures Software Developer's Manual Volume 1 (Basic Architecture).

Fields

xsave_area_size_supported_features: usize

Maximum size (in bytes) of an XSAVE area if all supported features in the processor are set as feature bits in the XCR0 register.

To access the XCR0 register use the struct StateComponentBitmap.

xsave_area_size_enabled_features: usize

Maximum size (in bytes) of an XSAVE area required by the feature bits enabled in the XCR0 register.

May be less than xsave_area_size_supported_features if compaction is used.

xsaves_area_size_enabled_features: usize

Maximum size (in bytes) of an XSAVE area saved by the XSAVES instruction required by the feature bits enabled in the XCR0 and IA32_XSS MCR registers.

May be less than xsave_area_size_supported_features if compaction is used.

To access the XCR0 register use the struct StateComponentBitmap.

has_xsaveopt_feature: bool

Has the XSAVEOPT instruction (xsaveopt feature).

has_xsavec_feature: bool

Has XSAVE compaction extensions (xsavec feature):-

  • The compacted format of the extended region of XSAVE areas;
  • Has the XSAVEC instruction;
  • Execution of the compacted form of XRSTOR.
xgetbv_supports_ecx_equals_one: bool

The XGETBV instruction supports execution with XGETBV == 1.

has_xsaves_feature: bool

Has XSAVE supervisor extensions (xsaves feature):-

  • Has the XSAVES instruction;
  • Has the XRSTORS instruction;
  • Has the IA32_XSS MSR.

If this is true then has_xsavec_feature is also true.

Methods

impl ExtendedStateInformation[src]

pub fn user_state_component_possible(
    &self,
    user_state_component: UserStateComponent
) -> bool
[src]

Is an user state component present?

pub fn supervisor_state_component_possible(
    &self,
    supervisor_state_component: SupervisorStateComponent
) -> bool
[src]

Is a supervisor state component present?

pub fn new() -> Option<Self>[src]

Creates a new instance.

Returns None if unsupported by the CPU.

Trait Implementations

impl PartialEq<ExtendedStateInformation> for ExtendedStateInformation[src]

impl Eq for ExtendedStateInformation[src]

impl PartialOrd<ExtendedStateInformation> for ExtendedStateInformation[src]

impl Ord for ExtendedStateInformation[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

impl Clone for ExtendedStateInformation[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Copy for ExtendedStateInformation[src]

impl Debug for ExtendedStateInformation[src]

Auto Trait Implementations

Blanket Implementations

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.