Enum DeliveryMode

Source
#[repr(u64)]
pub enum DeliveryMode { Fixed = 0, LowestPriority = 1, SMI = 2, _Reserved = 3, NMI = 4, Init = 5, StartUp = 6, }
Expand description

Specify IPI Delivery Mode

Variants§

§

Fixed = 0

Delivers the interrupt specified in the vector field to the target processor or processors.

§

LowestPriority = 1

Same as fixed mode, except that the interrupt is delivered to the processor executing at the lowest priority among the set of processors specified in the destination field. The ability for a processor to send a lowest priority IPI is model specific and should be avoided by BIOS and operating system software.

§

SMI = 2

Delivers an SMI interrupt to the target processor or processors. The vector field must be programmed to 00H for future compatibility.

§

_Reserved = 3

Reserved

§

NMI = 4

Delivers an NMI interrupt to the target processor or processors. The vector information is ignored.

§

Init = 5

Delivers an INIT request to the target processor or processors, which causes them to perform an INIT.

§

StartUp = 6

Sends a special start-up IPI (called a SIPI) to the target processor or processors. The vector typically points to a start-up routine that is part of the BIOS boot-strap code (see Section 8.4, Multiple-Processor (MP) Initialization). I PIs sent with this delivery mode are not automatically retried if the source APIC is unable to deliver it. It is up to the software to deter- mine if the SIPI was not successfully delivered and to reissue the SIPI if necessary.

Trait Implementations§

Source§

impl Debug for DeliveryMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for DeliveryMode

Source§

fn eq(&self, other: &DeliveryMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for DeliveryMode

Source§

impl StructuralPartialEq for DeliveryMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.