[][src]Struct sunrise_kernel::devices::lapic::Error

struct Error {
    bits: u32,
}

Contains the set of errors the LAPIC has encountered while running.

See 10.5.3: Error Handling

Fields

bits: u32

Implementations

impl Error[src]

pub const SEND_CHECKSUM_ERROR: Error[src]

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.

pub const RECEIVE_CHECKSUM_ERROR: Error[src]

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.

pub const SEND_ACCEPT_ERROR: Error[src]

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.

pub const RECEIVE_ACCEPT_ERROR: Error[src]

Set when the local APIC detects that the message it received was not accepted by any APIC on the APIC bus, including itself. Used only on P6 family and Pentium processors

pub const REDIRECTABLE_IPI: Error[src]

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. As noted in chapter 10.6.2: Determining IPI Destination, the ability of a processor to send a lowest-priority IPI is model-specific and should be avoided.

pub const SEND_ILLEGAL_VECTOR: Error[src]

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.

pub const RECEIVE_ILLEGAL_VECTOR: Error[src]

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.

pub const ILLEGAL_REGISTER_ADDRESS: Error[src]

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; The local-APIC register-address space comprises 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. They do not set the “Illegal Register Access” bit in the ESR.

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

Returns an empty set of flags

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

Returns the set containing all flags.

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

Returns the raw value of the flags currently stored.

pub fn from_bits(bits: u32) -> Option<Error>[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: u32) -> Error[src]

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

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: Error) -> bool[src]

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

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

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

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

Inserts the specified flags in-place.

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

Removes the specified flags in-place.

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

Toggles the specified flags in-place.

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

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

Trait Implementations

impl Binary for Error[src]

impl BitAnd<Error> for Error[src]

type Output = Error

The resulting type after applying the & operator.

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

Returns the intersection between the two sets of flags.

impl BitAndAssign<Error> for Error[src]

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

Disables all flags disabled in the set.

impl BitOr<Error> for Error[src]

type Output = Error

The resulting type after applying the | operator.

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

Returns the union of the two sets of flags.

impl BitOrAssign<Error> for Error[src]

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

Adds the set of flags.

impl BitXor<Error> for Error[src]

type Output = Error

The resulting type after applying the ^ operator.

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

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

impl BitXorAssign<Error> for Error[src]

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

Toggles the set of flags.

impl Clone for Error[src]

impl Copy for Error[src]

impl Debug for Error[src]

impl Eq for Error[src]

impl Extend<Error> for Error[src]

impl FromIterator<Error> for Error[src]

impl Hash for Error[src]

impl LowerHex for Error[src]

impl Not for Error[src]

type Output = Error

The resulting type after applying the ! operator.

fn not(self) -> Error[src]

Returns the complement of this set of flags.

impl Octal for Error[src]

impl Ord for Error[src]

impl PartialEq<Error> for Error[src]

impl PartialOrd<Error> for Error[src]

impl StructuralEq for Error[src]

impl StructuralPartialEq for Error[src]

impl Sub<Error> for Error[src]

type Output = Error

The resulting type after applying the - operator.

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

Returns the set difference of the two sets of flags.

impl SubAssign<Error> for Error[src]

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

Disables all flags enabled in the set.

impl UpperHex for Error[src]

Auto Trait Implementations

impl RefUnwindSafe for Error

impl Send for Error

impl Sync for Error

impl Unpin for Error

impl UnwindSafe for Error

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> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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.