pub struct ErrorStatus(/* private fields */);
Expand description
Value of the Error Status Register (ESR).
See Intel SDM Vol. 3A, Ch. 7, Section 12.5.3, “Error Handling”.
Implementations§
Source§impl ErrorStatus
impl ErrorStatus
Sourcepub const SEND_CHECKSUM_ERROR: Pack32<bool, ErrorStatus>
pub const SEND_CHECKSUM_ERROR: Pack32<bool, ErrorStatus>
Set when the local APIC detects a checksum error for a message that it sent on the APIC bus.
Used only on P6 family and Pentium processors.
Sourcepub const RECV_CHECKSUM_ERROR: Pack32<bool, ErrorStatus>
pub const RECV_CHECKSUM_ERROR: Pack32<bool, ErrorStatus>
Set when the local APIC detects a checksum error for a message that it received on the APIC bus.
Used only on P6 family and Pentium processors.
Sourcepub const SEND_ACCEPT_ERROR: Pack32<bool, ErrorStatus>
pub const SEND_ACCEPT_ERROR: Pack32<bool, ErrorStatus>
Set when the local APIC detects that a message it sent was not accepted by any APIC on the APIC bus
Used only on P6 family and Pentium processors.
Sourcepub const RECV_ACCEPT_ERROR: Pack32<bool, ErrorStatus>
pub const RECV_ACCEPT_ERROR: Pack32<bool, ErrorStatus>
Set when the local APIC detects that a message it received was not accepted by any APIC on the APIC bus.
Used only on P6 family and Pentium processors.
Sourcepub const REDIRECTABLE_IPI: Pack32<bool, ErrorStatus>
pub const REDIRECTABLE_IPI: Pack32<bool, ErrorStatus>
Set when the local APIC detects an attempt to send an IPI with the lowest-priority delivery mode and the local APIC does not support the sending of such IPIs. This bit is used on some Intel Core and Intel Xeon processors.
Sourcepub const SEND_ILLEGAL_VECTOR: Pack32<bool, ErrorStatus>
pub const SEND_ILLEGAL_VECTOR: Pack32<bool, ErrorStatus>
Set when the local APIC detects an illegal vector (one in the range 0 to 15) in the message that it is sending. This occurs as the result of a write to the ICR (in both xAPIC and x2APIC modes) or to SELF IPI register (x2APIC mode only) with an illegal vector.
If the local APIC does not support the sending of lowest-priority IPIs and software writes the ICR to send a lowest-priority IPI with an illegal vector, the local APIC sets only the “redirectable IPI” error bit. The interrupt is not processed and hence the “Send Illegal Vector” bit is not set in the ESR.
Sourcepub const RECV_ILLEGAL_VECTOR: Pack32<bool, ErrorStatus>
pub const RECV_ILLEGAL_VECTOR: Pack32<bool, ErrorStatus>
Set when the local APIC detects an illegal vector (one in the range 0 to 15) in an interrupt message it receives or in an interrupt generated locally from the local vector table or via a self IPI. Such interrupts are not delivered to the processor; the local APIC will never set an IRR bit in the range 0 to 15.
Sourcepub const ILLEGAL_REGISTER_ACCESS: Pack32<bool, ErrorStatus>
pub const ILLEGAL_REGISTER_ACCESS: Pack32<bool, ErrorStatus>
Set when the local APIC is in xAPIC mode and software attempts
to access a register that is reserved in the processor’s
local-APIC register-address space; see Table 10-1. (The
local-APIC register-address spacemprises the 4 KBytes at the
physical address specified in the IA32_APIC_BASE
MSR.) Used only
on Intel Core, Intel Atom, Pentium 4, Intel Xeon, and P6 family
processors.
In x2APIC mode, software accesses the APIC registers using the
RDMSR
and WRMSR
instructions. Use of one of these
instructions to access a reserved register cause a
general-protection exception (see Section 10.12.1.3). They do
not set the “Illegal Register Access” bit in the ESR.
Sourcepub const fn from_bits(bits: u32) -> ErrorStatus
pub const fn from_bits(bits: u32) -> ErrorStatus
Constructs a new instance of Self
from the provided raw bits.
Sourcepub const fn new() -> ErrorStatus
pub const fn new() -> ErrorStatus
Constructs a new instance of Self
with all bits set to 0.
Sourcepub fn with<T>(self, field: Pack32<T, ErrorStatus>, value: T) -> ErrorStatus
pub fn with<T>(self, field: Pack32<T, ErrorStatus>, value: T) -> ErrorStatus
Packs the bit representation of value
into self
at the bit
range designated by field
, returning a new bitfield.
Sourcepub fn set<T>(
&mut self,
field: Pack32<T, ErrorStatus>,
value: T,
) -> &mut ErrorStatus
pub fn set<T>( &mut self, field: Pack32<T, ErrorStatus>, value: T, ) -> &mut ErrorStatus
Packs the bit representation of value
into self
at the range
designated by field
, mutating self
in place.
Sourcepub fn get<T>(self, field: Pack32<T, ErrorStatus>) -> T
pub fn get<T>(self, field: Pack32<T, ErrorStatus>) -> T
Unpacks the bit range represented by field
from self
, and
converts it into a T
-typed value.
§Panics
This method panics if self
does not contain a valid bit
pattern for a T
-typed value, as determined by T
’s
FromBits::try_from_bits
implementation.
Sourcepub fn try_get<T>(
self,
field: Pack32<T, ErrorStatus>,
) -> Result<T, <T as FromBits<u32>>::Error>
pub fn try_get<T>( self, field: Pack32<T, ErrorStatus>, ) -> Result<T, <T as FromBits<u32>>::Error>
Unpacks the bit range represented by field
from self
and attempts to convert it into a T
-typed value.
§Returns
Ok(T)
if aT
-typed value could be constructed from the bits insrc
Err(T::Error)
ifsrc
does not contain a valid bit pattern for aT
-typed value, as determined byT
’s [FromBits::try_from_bits
implementation.
Sourcepub fn assert_valid()
pub fn assert_valid()
Asserts that all the packing specs for this type are valid.
This is intended to be used in unit tests.
Sourcepub fn display_ascii(&self) -> impl Display
pub fn display_ascii(&self) -> impl Display
Returns a value that formats this bitfield in a multi-line format, using only ASCII characters.
This is equivalent to formatting this bitfield using a {}
display specifier, but will never use Unicode box-drawing
characters, even when an upstream formatter uses the {:#}
fmt::Display
specifier. This is intended for use on platforms
where Unicode box drawing characters are never available.
Sourcepub fn display_unicode(&self) -> impl Display
pub fn display_unicode(&self) -> impl Display
Returns a value that formats this bitfield in a multi-line format, always using Unicode box-drawing characters.
This is equivalent to formatting this bitfield using a {:#}
format specifier, but will always use Unicode box-drawing
characters, even when an upstream formatter uses the {}
fmt::Display
specifier.
Trait Implementations§
Source§impl Binary for ErrorStatus
impl Binary for ErrorStatus
Source§impl Clone for ErrorStatus
impl Clone for ErrorStatus
Source§fn clone(&self) -> ErrorStatus
fn clone(&self) -> ErrorStatus
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ErrorStatus
impl Debug for ErrorStatus
Source§impl Default for ErrorStatus
impl Default for ErrorStatus
Source§fn default() -> ErrorStatus
fn default() -> ErrorStatus
Source§impl Display for ErrorStatus
impl Display for ErrorStatus
Source§impl From<u32> for ErrorStatus
impl From<u32> for ErrorStatus
Source§fn from(val: u32) -> ErrorStatus
fn from(val: u32) -> ErrorStatus
Source§impl LowerHex for ErrorStatus
impl LowerHex for ErrorStatus
Source§impl UpperHex for ErrorStatus
impl UpperHex for ErrorStatus
impl Copy for ErrorStatus
Auto Trait Implementations§
impl Freeze for ErrorStatus
impl RefUnwindSafe for ErrorStatus
impl Send for ErrorStatus
impl Sync for ErrorStatus
impl Unpin for ErrorStatus
impl UnwindSafe for ErrorStatus
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
Source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.