[][src]Struct x86_64::registers::control::Cr4Flags

pub struct Cr4Flags { /* fields omitted */ }

Controls cache settings for the level 4 page table.

Implementations

impl Cr4Flags[src]

pub const VIRTUAL_8086_MODE_EXTENSIONS: Cr4Flags[src]

Enables hardware-supported performance enhancements for software running in virtual-8086 mode.

pub const PROTECTED_MODE_VIRTUAL_INTERRUPTS: Cr4Flags[src]

Enables support for protected-mode virtual interrupts.

pub const TIMESTAMP_DISABLE: Cr4Flags[src]

When set, only privilege-level 0 can execute the RDTSC or RDTSCP instructions.

pub const DEBUGGING_EXTENSIONS: Cr4Flags[src]

Enables I/O breakpoint capability and enforces treatment of DR4 and DR5 registers as reserved.

pub const PAGE_SIZE_EXTENSION: Cr4Flags[src]

Enables the use of 4MB physical frames; ignored in long mode.

pub const PHYSICAL_ADDRESS_EXTENSION: Cr4Flags[src]

Enables physical address extension and 2MB physical frames; required in long mode.

pub const MACHINE_CHECK_EXCEPTION: Cr4Flags[src]

Enables the machine-check exception mechanism.

pub const PAGE_GLOBAL: Cr4Flags[src]

Enables the global-page mechanism, which allows to make page translations global to all processes.

pub const PERFORMANCE_MONITOR_COUNTER: Cr4Flags[src]

Allows software running at any privilege level to use the RDPMC instruction.

pub const OSFXSR: Cr4Flags[src]

Enable the use of legacy SSE instructions; allows using FXSAVE/FXRSTOR for saving processor state of 128-bit media instructions.

pub const OSXMMEXCPT_ENABLE: Cr4Flags[src]

Enables the SIMD floating-point exception (#XF) for handling unmasked 256-bit and 128-bit media floating-point errors.

pub const USER_MODE_INSTRUCTION_PREVENTION: Cr4Flags[src]

Prevents the execution of the SGDT, SIDT, SLDT, SMSW, and STR instructions by user-mode software.

pub const L5_PAGING: Cr4Flags[src]

Enables 5-level paging on supported CPUs.

pub const VIRTUAL_MACHINE_EXTENSIONS: Cr4Flags[src]

Enables VMX insturctions.

pub const SAFER_MODE_EXTENSIONS: Cr4Flags[src]

Enables SMX instructions.

pub const FSGSBASE: Cr4Flags[src]

Enables software running in 64-bit mode at any privilege level to read and write the FS.base and GS.base hidden segment register state.

pub const PCID: Cr4Flags[src]

Enables process-context identifiers (PCIDs).

pub const OSXSAVE: Cr4Flags[src]

Enables extendet processor state management instructions, including XGETBV and XSAVE.

pub const SUPERVISOR_MODE_EXECUTION_PROTECTION: Cr4Flags[src]

Prevents the execution of instructions that reside in pages accessible by user-mode software when the processor is in supervisor-mode.

pub const SUPERVISOR_MODE_ACCESS_PREVENTION: Cr4Flags[src]

Enables restrictions for supervisor-mode software when reading data from user-mode pages.

pub const PROTECTION_KEY: Cr4Flags[src]

Enables 4-level paging to associate each linear address with a protection key.

pub const fn empty() -> Cr4Flags[src]

Returns an empty set of flags

pub const fn all() -> Cr4Flags[src]

Returns the set containing all flags.

pub const fn bits(&self) -> u64[src]

Returns the raw value of the flags currently stored.

pub fn from_bits(bits: u64) -> Option<Cr4Flags>[src]

Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.

pub const fn from_bits_truncate(bits: u64) -> Cr4Flags[src]

Convert from underlying bit representation, dropping any bits that do not correspond to flags.

pub const unsafe fn from_bits_unchecked(bits: u64) -> Cr4Flags[src]

Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).

pub const fn is_empty(&self) -> bool[src]

Returns true if no flags are currently stored.

pub const fn is_all(&self) -> bool[src]

Returns true if all flags are currently set.

pub const fn intersects(&self, other: Cr4Flags) -> bool[src]

Returns true if there are flags common to both self and other.

pub const fn contains(&self, other: Cr4Flags) -> bool[src]

Returns true all of the flags in other are contained within self.

pub fn insert(&mut self, other: Cr4Flags)[src]

Inserts the specified flags in-place.

pub fn remove(&mut self, other: Cr4Flags)[src]

Removes the specified flags in-place.

pub fn toggle(&mut self, other: Cr4Flags)[src]

Toggles the specified flags in-place.

pub fn set(&mut self, other: Cr4Flags, value: bool)[src]

Inserts or removes the specified flags depending on the passed value.

Trait Implementations

impl Binary for Cr4Flags[src]

impl BitAnd<Cr4Flags> for Cr4Flags[src]

type Output = Cr4Flags

The resulting type after applying the & operator.

fn bitand(self, other: Cr4Flags) -> Cr4Flags[src]

Returns the intersection between the two sets of flags.

impl BitAndAssign<Cr4Flags> for Cr4Flags[src]

fn bitand_assign(&mut self, other: Cr4Flags)[src]

Disables all flags disabled in the set.

impl BitOr<Cr4Flags> for Cr4Flags[src]

type Output = Cr4Flags

The resulting type after applying the | operator.

fn bitor(self, other: Cr4Flags) -> Cr4Flags[src]

Returns the union of the two sets of flags.

impl BitOrAssign<Cr4Flags> for Cr4Flags[src]

fn bitor_assign(&mut self, other: Cr4Flags)[src]

Adds the set of flags.

impl BitXor<Cr4Flags> for Cr4Flags[src]

type Output = Cr4Flags

The resulting type after applying the ^ operator.

fn bitxor(self, other: Cr4Flags) -> Cr4Flags[src]

Returns the left flags, but with all the right flags toggled.

impl BitXorAssign<Cr4Flags> for Cr4Flags[src]

fn bitxor_assign(&mut self, other: Cr4Flags)[src]

Toggles the set of flags.

impl Clone for Cr4Flags[src]

impl Copy for Cr4Flags[src]

impl Debug for Cr4Flags[src]

impl Eq for Cr4Flags[src]

impl Extend<Cr4Flags> for Cr4Flags[src]

impl FromIterator<Cr4Flags> for Cr4Flags[src]

impl Hash for Cr4Flags[src]

impl LowerHex for Cr4Flags[src]

impl Not for Cr4Flags[src]

type Output = Cr4Flags

The resulting type after applying the ! operator.

fn not(self) -> Cr4Flags[src]

Returns the complement of this set of flags.

impl Octal for Cr4Flags[src]

impl Ord for Cr4Flags[src]

impl PartialEq<Cr4Flags> for Cr4Flags[src]

impl PartialOrd<Cr4Flags> for Cr4Flags[src]

impl StructuralEq for Cr4Flags[src]

impl StructuralPartialEq for Cr4Flags[src]

impl Sub<Cr4Flags> for Cr4Flags[src]

type Output = Cr4Flags

The resulting type after applying the - operator.

fn sub(self, other: Cr4Flags) -> Cr4Flags[src]

Returns the set difference of the two sets of flags.

impl SubAssign<Cr4Flags> for Cr4Flags[src]

fn sub_assign(&mut self, other: Cr4Flags)[src]

Disables all flags enabled in the set.

impl UpperHex for Cr4Flags[src]

Auto Trait Implementations

impl Send for Cr4Flags

impl Sync for Cr4Flags

impl Unpin for Cr4Flags

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.