[]Struct x86_64::registers::rflags::RFlags

pub struct RFlags { /* fields omitted */ }

The RFLAGS register.

Methods

impl RFlags

pub const ID: RFlags

Processor feature identification flag.

If this flag is modifiable, the CPU supports CPUID.

pub const VIRTUAL_INTERRUPT_PENDING: RFlags

Indicates that an external, maskable interrupt is pending.

Used when virtual-8086 mode extensions (CR4.VME) or protected-mode virtual interrupts (CR4.PVI) are activated.

pub const VIRTUAL_INTERRUPT: RFlags

Virtual image of the INTERRUPT_FLAG bit.

Used when virtual-8086 mode extensions (CR4.VME) or protected-mode virtual interrupts (CR4.PVI) are activated.

pub const ALIGNMENT_CHECK: RFlags

Enable automatic alignment checking if CR0.AM is set. Only works if CPL is 3.

pub const VIRTUAL_8086_MODE: RFlags

Enable the virtual-8086 mode.

pub const RESUME_FLAG: RFlags

Allows to restart an instruction following an instrucion breakpoint.

pub const NESTED_TASK: RFlags

Used by iret in hardware task switch mode to determine if current task is nested.

pub const IOPL_HIGH: RFlags

The high bit of the I/O Privilege Level field.

Specifies the privilege level required for executing I/O address-space instructions.

pub const IOPL_LOW: RFlags

The low bit of the I/O Privilege Level field.

Specifies the privilege level required for executing I/O address-space instructions.

pub const OVERFLOW_FLAG: RFlags

Set by hardware to indicate that the sign bit of the result of the last signed integer operation differs from the source operands.

pub const DIRECTION_FLAG: RFlags

Determines the order in which strings are processed.

pub const INTERRUPT_FLAG: RFlags

Enable interrupts.

pub const TRAP_FLAG: RFlags

Enable single-step mode for debugging.

pub const SIGN_FLAG: RFlags

Set by hardware if last arithmetic operation resulted in a negative value.

pub const ZERO_FLAG: RFlags

Set by hardware if last arithmetic operation resulted in a zero value.

pub const AUXILIARY_CARRY_FLAG: RFlags

Set by hardware if last arithmetic operation generated a carry ouf of bit 3 of the result.

pub const PARITY_FLAG: RFlags

Set by hardware if last result has an even number of 1 bits (only for some operations).

pub const CARRY_FLAG: RFlags

Set by hardware if last arithmetic operation generated a carry out of the most-significant bit of the result.

pub const fn empty() -> RFlags

Returns an empty set of flags

pub const fn all() -> RFlags

Returns the set containing all flags.

pub const fn bits(&self) -> u64

Returns the raw value of the flags currently stored.

pub fn from_bits(bits: u64) -> Option<RFlags>

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) -> RFlags

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

pub const unsafe fn from_bits_unchecked(bits: u64) -> RFlags

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

pub const fn is_empty(&self) -> bool

Returns true if no flags are currently stored.

pub const fn is_all(&self) -> bool

Returns true if all flags are currently set.

pub const fn intersects(&self, other: RFlags) -> bool

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

pub const fn contains(&self, other: RFlags) -> bool

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

pub fn insert(&mut self, other: RFlags)

Inserts the specified flags in-place.

pub fn remove(&mut self, other: RFlags)

Removes the specified flags in-place.

pub fn toggle(&mut self, other: RFlags)

Toggles the specified flags in-place.

pub fn set(&mut self, other: RFlags, value: bool)

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

Trait Implementations

impl Debug for RFlags

impl Sub<RFlags> for RFlags

type Output = RFlags

The resulting type after applying the - operator.

fn sub(self, other: RFlags) -> RFlags

Returns the set difference of the two sets of flags.

impl PartialEq<RFlags> for RFlags

impl Eq for RFlags

impl Ord for RFlags

impl PartialOrd<RFlags> for RFlags

impl SubAssign<RFlags> for RFlags

fn sub_assign(&mut self, other: RFlags)

Disables all flags enabled in the set.

impl Not for RFlags

type Output = RFlags

The resulting type after applying the ! operator.

fn not(self) -> RFlags

Returns the complement of this set of flags.

impl BitAnd<RFlags> for RFlags

type Output = RFlags

The resulting type after applying the & operator.

fn bitand(self, other: RFlags) -> RFlags

Returns the intersection between the two sets of flags.

impl BitOr<RFlags> for RFlags

type Output = RFlags

The resulting type after applying the | operator.

fn bitor(self, other: RFlags) -> RFlags

Returns the union of the two sets of flags.

impl BitXor<RFlags> for RFlags

type Output = RFlags

The resulting type after applying the ^ operator.

fn bitxor(self, other: RFlags) -> RFlags

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

impl BitAndAssign<RFlags> for RFlags

fn bitand_assign(&mut self, other: RFlags)

Disables all flags disabled in the set.

impl BitOrAssign<RFlags> for RFlags

fn bitor_assign(&mut self, other: RFlags)

Adds the set of flags.

impl BitXorAssign<RFlags> for RFlags

fn bitxor_assign(&mut self, other: RFlags)

Toggles the set of flags.

impl Hash for RFlags

impl Copy for RFlags

impl StructuralPartialEq for RFlags

impl StructuralEq for RFlags

impl FromIterator<RFlags> for RFlags

impl Extend<RFlags> for RFlags

impl Octal for RFlags

impl Binary for RFlags

impl LowerHex for RFlags

impl UpperHex for RFlags

impl Clone for RFlags

Auto Trait Implementations

impl Unpin for RFlags

impl Send for RFlags

impl Sync for RFlags

Blanket Implementations

impl<T> From<T> for 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> Into<U> for T where
    U: From<T>, 
[src]

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.

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

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

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