pub struct Status(/* private fields */);
Expand description

A PCI device’s Status register.

See https://wiki.osdev.org/Pci#Status_Register

Implementations§

source§

impl Status

source

pub const INTERRUPT_STATUS: Pack16<bool, Status> = _

Interrupt Status.

Represents the state of the device’s INTx# signal. If set to 1 and bit 10 of the Command register ([INTERRUPT_DISABLE]) is set to 0, the signal will be asserted; otherwise, the signal will be ignored.

source

pub const CAPABILITIES_LIST: Pack16<bool, Status> = _

Capabilities List

If set to 1, the device implements the pointer for a New Capabilities linked list at offset 0x34; otherwise, the linked list is not available.

source

pub const IS_66MHZ_CAPABLE: Pack16<bool, Status> = _

66 MHz Capable

If set to 1 the device is capable of running at 66 MHz; otherwise, the device runs at 33 MHz.

source

pub const FAST_BACK_TO_BACK_CAPABLE: Pack16<bool, Status> = _

Fast Back-To-Back Capable

If set to 1 the device can accept fast back-to-back transactions that are not from the same agent; otherwise, transactions can only be accepted from the same agent.

source

pub const MASTER_DATA_PARITY_ERROR: Pack16<bool, Status> = _

Master Data Parity Error

This bit is only set when the following conditions are met. The bus agent asserted PERR# on a read or observed an assertion of PERR# on a write, the agent setting the bit acted as the bus master for the operation in which the error occurred, and bit 6 of the Command register (PARITY_ERROR_RESPONSE bit) is set to 1.

source

pub const DEVSEL_TIMING: Pack16<DevselTiming, Status> = _

DEVSEL# Timing

Read-only bits that represent the slowest time that a device will assert DEVSEL# for any bus command except Configuration Space read and writes. A value of 0x0 represents fast timing, a value of 0x1 represents medium timing, and a value of 0x2 represents slow timing.

source

pub const SIGNALLED_TARGET_ABORT: Pack16<bool, Status> = _

Signalled Target Abort

This bit will be set to 1 whenever a target device terminates a transaction with Target-Abort.

source

pub const RECEIVED_TARGET_ABORT: Pack16<bool, Status> = _

Received Target Abort

This bit will be set to 1, by a master device, whenever its transaction is terminated with Target-Abort.

source

pub const RECEIVED_MASTER_ABORT: Pack16<bool, Status> = _

Received Master Abort

This bit will be set to 1, by a master device, whenever its transaction (except for Special Cycle transactions) is terminated with Master-Abort.

source

pub const SIGNALLED_SYSTEM_ERROR: Pack16<bool, Status> = _

Signalled System Error

This bit will be set to 1 whenever the device asserts SERR#.

source

pub const DETECTED_PARITY_ERROR: Pack16<bool, Status> = _

Detected Parity Error

This bit will be set to 1 whenever the device detects a parity error, even if parity error handling is disabled.

source

pub const fn from_bits(bits: u16) -> Status

Constructs a new instance of Self from the provided raw bits.

source

pub const fn new() -> Status

Constructs a new instance of Self with all bits set to 0.

source

pub const fn bits(self) -> u16

Returns the raw bit representatiion of self as an integer.

source

pub fn with<T>(self, field: Pack16<T, Status>, value: T) -> Status
where T: FromBits<u16>,

Packs the bit representation of value into self at the bit range designated by field, returning a new bitfield.

source

pub fn set<T>(&mut self, field: Pack16<T, Status>, value: T) -> &mut Status
where T: FromBits<u16>,

Packs the bit representation of value into self at the range designated by field, mutating self in place.

source

pub fn get<T>(self, field: Pack16<T, Status>) -> T
where T: FromBits<u16>,

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.

source

pub fn try_get<T>( self, field: Pack16<T, Status> ) -> Result<T, <T as FromBits<u16>>::Error>
where T: FromBits<u16>,

Unpacks the bit range represented by field from self and attempts to convert it into a T-typed value.

Returns
  • Ok(T) if a T-typed value could be constructed from the bits in src
  • Err(T::Error) if src does not contain a valid bit pattern for a T-typed value, as determined by T’s [FromBits::try_from_bits implementation.
source

pub fn assert_valid()

Asserts that all the packing specs for this type are valid.

This is intended to be used in unit tests.

source

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.

source

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.

source§

impl Status

source

pub fn received_abort(self) -> bool

Returns true if this device received an abort (either a Master Abort or Target Abort).

This returns true if the Status::RECEIVED_MASTER_ABORT or Status::RECEIVED_TARGET_ABORT bits are set.

Trait Implementations§

source§

impl Binary for Status

source§

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

Formats the value using the given formatter.
source§

impl Clone for Status

source§

fn clone(&self) -> Status

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Status

source§

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

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

impl Display for Status

source§

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

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

impl From<u16> for Status

source§

fn from(val: u16) -> Status

Converts to this type from the input type.
source§

impl FromBits<u32> for Status

source§

const BITS: u32 = 16u32

The number of bits required to represent a value of this type.
§

type Error = Infallible

The error type returned by Self::try_from_bits when an invalid bit pattern is encountered. Read more
source§

fn try_from_bits(bits: u32) -> Result<Status, <Status as FromBits<u32>>::Error>

Attempt to convert bits into a value of this type. Read more
source§

fn into_bits(self) -> u32

Convert self into a raw bit representation. Read more
source§

impl LowerHex for Status

source§

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

Formats the value using the given formatter.
source§

impl PartialEq for Status

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl UpperHex for Status

source§

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

Formats the value using the given formatter.
source§

impl Copy for Status

source§

impl Eq for Status

source§

impl StructuralEq for Status

source§

impl StructuralPartialEq for Status

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> Az for T

source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
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<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

source§

fn cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> CheckedAs for T

source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

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

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> OverflowingAs for T

source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
source§

impl<T> SaturatingAs for T

source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

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

§

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>,

§

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.
source§

impl<T> UnwrappedAs for T

source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> WrappingAs for T

source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.