Struct PageFaultErrorCode
#[repr(transparent)]pub struct PageFaultErrorCode(<PageFaultErrorCode as PublicFlags>::Internal);Expand description
Describes an page fault error code.
This structure is defined by the following manual sections:
- AMD Volume 2: 8.4.2
- Intel Volume 3A: 4.7
Tuple Fields§
§0: <PageFaultErrorCode as PublicFlags>::InternalImplementations§
§impl PageFaultErrorCode
impl PageFaultErrorCode
pub const PROTECTION_VIOLATION: PageFaultErrorCode
pub const PROTECTION_VIOLATION: PageFaultErrorCode
If this flag is set, the page fault was caused by a page-protection violation, else the page fault was caused by a not-present page.
pub const CAUSED_BY_WRITE: PageFaultErrorCode
pub const CAUSED_BY_WRITE: PageFaultErrorCode
If this flag is set, the memory access that caused the page fault was a write. Else the access that caused the page fault is a memory read. This bit does not necessarily indicate the cause of the page fault was a read or write violation.
pub const USER_MODE: PageFaultErrorCode
pub const USER_MODE: PageFaultErrorCode
If this flag is set, an access in user mode (CPL=3) caused the page fault. Else an access in supervisor mode (CPL=0, 1, or 2) caused the page fault. This bit does not necessarily indicate the cause of the page fault was a privilege violation.
pub const MALFORMED_TABLE: PageFaultErrorCode
pub const MALFORMED_TABLE: PageFaultErrorCode
If this flag is set, the page fault is a result of the processor reading a 1 from a reserved field within a page-translation-table entry.
pub const INSTRUCTION_FETCH: PageFaultErrorCode
pub const INSTRUCTION_FETCH: PageFaultErrorCode
If this flag is set, it indicates that the access that caused the page fault was an instruction fetch.
pub const PROTECTION_KEY: PageFaultErrorCode
pub const PROTECTION_KEY: PageFaultErrorCode
If this flag is set, it indicates that the page fault was caused by a protection key.
pub const SHADOW_STACK: PageFaultErrorCode
pub const SHADOW_STACK: PageFaultErrorCode
If this flag is set, it indicates that the page fault was caused by a shadow stack access.
pub const HLAT: PageFaultErrorCode
pub const HLAT: PageFaultErrorCode
If this flag is set, it indicates that the page fault occurred during HLAT paging (Intel-only).
pub const SGX: PageFaultErrorCode
pub const SGX: PageFaultErrorCode
If this flag is set, it indicates that the page fault was caused by SGX access-control requirements (Intel-only).
pub const RMP: PageFaultErrorCode
pub const RMP: PageFaultErrorCode
If this flag is set, it indicates that the page fault is a result of the processor encountering an RMP violation (AMD-only).
§impl PageFaultErrorCode
impl PageFaultErrorCode
pub const fn empty() -> PageFaultErrorCode
pub const fn empty() -> PageFaultErrorCode
Get a flags value with all bits unset.
pub const fn all() -> PageFaultErrorCode
pub const fn all() -> PageFaultErrorCode
Get a flags value with all known bits set.
pub const fn bits(&self) -> u64
pub const fn bits(&self) -> u64
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
pub const fn from_bits(bits: u64) -> Option<PageFaultErrorCode>
pub const fn from_bits(bits: u64) -> Option<PageFaultErrorCode>
Convert from a bits value.
This method will return None if any unknown bits are set.
pub const fn from_bits_truncate(bits: u64) -> PageFaultErrorCode
pub const fn from_bits_truncate(bits: u64) -> PageFaultErrorCode
Convert from a bits value, unsetting any unknown bits.
pub const fn from_bits_retain(bits: u64) -> PageFaultErrorCode
pub const fn from_bits_retain(bits: u64) -> PageFaultErrorCode
Convert from a bits value exactly.
pub fn from_name(name: &str) -> Option<PageFaultErrorCode>
pub fn from_name(name: &str) -> Option<PageFaultErrorCode>
Get a flags value with the bits of a flag with the given name set.
This method will return None if name is empty or doesn’t
correspond to any named flag.
pub const fn intersects(&self, other: PageFaultErrorCode) -> bool
pub const fn intersects(&self, other: PageFaultErrorCode) -> bool
Whether any set bits in other are also set in self.
pub const fn contains(&self, other: PageFaultErrorCode) -> bool
pub const fn contains(&self, other: PageFaultErrorCode) -> bool
Whether all set bits in other are also set in self.
pub fn insert(&mut self, other: PageFaultErrorCode)
pub fn insert(&mut self, other: PageFaultErrorCode)
The bitwise or (|) of the bits in self and other.
pub fn remove(&mut self, other: PageFaultErrorCode)
pub fn remove(&mut self, other: PageFaultErrorCode)
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
pub fn toggle(&mut self, other: PageFaultErrorCode)
pub fn toggle(&mut self, other: PageFaultErrorCode)
The bitwise exclusive-or (^) of the bits in self and other.
pub fn set(&mut self, other: PageFaultErrorCode, value: bool)
pub fn set(&mut self, other: PageFaultErrorCode, value: bool)
Call insert when value is true or remove when value is false.
pub const fn intersection(self, other: PageFaultErrorCode) -> PageFaultErrorCode
pub const fn intersection(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The bitwise and (&) of the bits in self and other.
pub const fn union(self, other: PageFaultErrorCode) -> PageFaultErrorCode
pub const fn union(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The bitwise or (|) of the bits in self and other.
pub const fn difference(self, other: PageFaultErrorCode) -> PageFaultErrorCode
pub const fn difference(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
pub const fn symmetric_difference(
self,
other: PageFaultErrorCode,
) -> PageFaultErrorCode
pub const fn symmetric_difference( self, other: PageFaultErrorCode, ) -> PageFaultErrorCode
The bitwise exclusive-or (^) of the bits in self and other.
pub const fn complement(self) -> PageFaultErrorCode
pub const fn complement(self) -> PageFaultErrorCode
The bitwise negation (!) of the bits in self, truncating the result.
§impl PageFaultErrorCode
impl PageFaultErrorCode
pub const fn iter(&self) -> Iter<PageFaultErrorCode> ⓘ
pub const fn iter(&self) -> Iter<PageFaultErrorCode> ⓘ
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
pub const fn iter_names(&self) -> IterNames<PageFaultErrorCode> ⓘ
pub const fn iter_names(&self) -> IterNames<PageFaultErrorCode> ⓘ
Yield a set of contained named flags values.
This method is like iter, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Trait Implementations§
§impl Binary for PageFaultErrorCode
impl Binary for PageFaultErrorCode
§impl BitAnd for PageFaultErrorCode
impl BitAnd for PageFaultErrorCode
§fn bitand(self, other: PageFaultErrorCode) -> PageFaultErrorCode
fn bitand(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The bitwise and (&) of the bits in self and other.
§type Output = PageFaultErrorCode
type Output = PageFaultErrorCode
& operator.§impl BitAndAssign for PageFaultErrorCode
impl BitAndAssign for PageFaultErrorCode
§fn bitand_assign(&mut self, other: PageFaultErrorCode)
fn bitand_assign(&mut self, other: PageFaultErrorCode)
The bitwise and (&) of the bits in self and other.
§impl BitOr for PageFaultErrorCode
impl BitOr for PageFaultErrorCode
§fn bitor(self, other: PageFaultErrorCode) -> PageFaultErrorCode
fn bitor(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The bitwise or (|) of the bits in self and other.
§type Output = PageFaultErrorCode
type Output = PageFaultErrorCode
| operator.§impl BitOrAssign for PageFaultErrorCode
impl BitOrAssign for PageFaultErrorCode
§fn bitor_assign(&mut self, other: PageFaultErrorCode)
fn bitor_assign(&mut self, other: PageFaultErrorCode)
The bitwise or (|) of the bits in self and other.
§impl BitXor for PageFaultErrorCode
impl BitXor for PageFaultErrorCode
§fn bitxor(self, other: PageFaultErrorCode) -> PageFaultErrorCode
fn bitxor(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The bitwise exclusive-or (^) of the bits in self and other.
§type Output = PageFaultErrorCode
type Output = PageFaultErrorCode
^ operator.§impl BitXorAssign for PageFaultErrorCode
impl BitXorAssign for PageFaultErrorCode
§fn bitxor_assign(&mut self, other: PageFaultErrorCode)
fn bitxor_assign(&mut self, other: PageFaultErrorCode)
The bitwise exclusive-or (^) of the bits in self and other.
§impl Clone for PageFaultErrorCode
impl Clone for PageFaultErrorCode
§fn clone(&self) -> PageFaultErrorCode
fn clone(&self) -> PageFaultErrorCode
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PageFaultErrorCode
§impl Debug for PageFaultErrorCode
impl Debug for PageFaultErrorCode
impl Eq for PageFaultErrorCode
§impl Extend<PageFaultErrorCode> for PageFaultErrorCode
impl Extend<PageFaultErrorCode> for PageFaultErrorCode
§fn extend<T>(&mut self, iterator: T)where
T: IntoIterator<Item = PageFaultErrorCode>,
fn extend<T>(&mut self, iterator: T)where
T: IntoIterator<Item = PageFaultErrorCode>,
The bitwise or (|) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)§impl Flags for PageFaultErrorCode
impl Flags for PageFaultErrorCode
§const FLAGS: &'static [Flag<PageFaultErrorCode>]
const FLAGS: &'static [Flag<PageFaultErrorCode>]
§fn from_bits_retain(bits: u64) -> PageFaultErrorCode
fn from_bits_retain(bits: u64) -> PageFaultErrorCode
§fn all_named() -> PageFaultErrorCode
fn all_named() -> PageFaultErrorCode
§fn known_bits(&self) -> Self::Bits
fn known_bits(&self) -> Self::Bits
§fn unknown_bits(&self) -> Self::Bits
fn unknown_bits(&self) -> Self::Bits
§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
§fn iter_names(&self) -> IterNames<Self> ⓘ
fn iter_names(&self) -> IterNames<Self> ⓘ
§fn iter_defined_names() -> IterDefinedNames<Self> ⓘ
fn iter_defined_names() -> IterDefinedNames<Self> ⓘ
Self::FLAGS].§fn iter_equal_names(&self) -> IterEqualNames<Self> ⓘ
fn iter_equal_names(&self) -> IterEqualNames<Self> ⓘ
§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
other are also set in self.§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
other are also set in self.§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in self and other.§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in self and other.§fn set(&mut self, other: Self, value: bool)where
Self: Sized,
fn set(&mut self, other: Self, value: bool)where
Self: Sized,
Flags::insert] when value is true or [Flags::remove] when value is false.§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in self and other.§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in self and other.§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in self, truncating the result.§impl FromIterator<PageFaultErrorCode> for PageFaultErrorCode
impl FromIterator<PageFaultErrorCode> for PageFaultErrorCode
§fn from_iter<T>(iterator: T) -> PageFaultErrorCodewhere
T: IntoIterator<Item = PageFaultErrorCode>,
fn from_iter<T>(iterator: T) -> PageFaultErrorCodewhere
T: IntoIterator<Item = PageFaultErrorCode>,
The bitwise or (|) of the bits in each flags value.
§impl Hash for PageFaultErrorCode
impl Hash for PageFaultErrorCode
§impl IntoIterator for PageFaultErrorCode
impl IntoIterator for PageFaultErrorCode
§type Item = PageFaultErrorCode
type Item = PageFaultErrorCode
§type IntoIter = Iter<PageFaultErrorCode>
type IntoIter = Iter<PageFaultErrorCode>
§fn into_iter(self) -> <PageFaultErrorCode as IntoIterator>::IntoIter
fn into_iter(self) -> <PageFaultErrorCode as IntoIterator>::IntoIter
§impl LowerHex for PageFaultErrorCode
impl LowerHex for PageFaultErrorCode
§impl Not for PageFaultErrorCode
impl Not for PageFaultErrorCode
§fn not(self) -> PageFaultErrorCode
fn not(self) -> PageFaultErrorCode
The bitwise negation (!) of the bits in self, truncating the result.
§type Output = PageFaultErrorCode
type Output = PageFaultErrorCode
! operator.§impl Octal for PageFaultErrorCode
impl Octal for PageFaultErrorCode
§impl Ord for PageFaultErrorCode
impl Ord for PageFaultErrorCode
§fn cmp(&self, other: &PageFaultErrorCode) -> Ordering
fn cmp(&self, other: &PageFaultErrorCode) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
§impl PartialEq for PageFaultErrorCode
impl PartialEq for PageFaultErrorCode
§impl PartialOrd for PageFaultErrorCode
impl PartialOrd for PageFaultErrorCode
impl StructuralPartialEq for PageFaultErrorCode
§impl Sub for PageFaultErrorCode
impl Sub for PageFaultErrorCode
§fn sub(self, other: PageFaultErrorCode) -> PageFaultErrorCode
fn sub(self, other: PageFaultErrorCode) -> PageFaultErrorCode
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
§type Output = PageFaultErrorCode
type Output = PageFaultErrorCode
- operator.§impl SubAssign for PageFaultErrorCode
impl SubAssign for PageFaultErrorCode
§fn sub_assign(&mut self, other: PageFaultErrorCode)
fn sub_assign(&mut self, other: PageFaultErrorCode)
The intersection of self with the complement of other (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Auto Trait Implementations§
impl Freeze for PageFaultErrorCode
impl RefUnwindSafe for PageFaultErrorCode
impl Send for PageFaultErrorCode
impl Sync for PageFaultErrorCode
impl Unpin for PageFaultErrorCode
impl UnsafeUnpin for PageFaultErrorCode
impl UnwindSafe for PageFaultErrorCode
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more