pub struct Command(/* private fields */);
Expand description
A PCI device’s Command
register.
Implementations§
source§impl Command
impl Command
sourcepub const IO_SPACE_ENABLED: Pack16<bool, Command> = _
pub const IO_SPACE_ENABLED: Pack16<bool, Command> = _
I/O Space Enabled
If set to 1 the device can respond to I/O Space accesses; otherwise, the device’s response is disabled.
sourcepub const MEMORY_SPACE_ENABLED: Pack16<bool, Command> = _
pub const MEMORY_SPACE_ENABLED: Pack16<bool, Command> = _
Memory Space Enabled
If set to 1 the device can respond to Memory Space accesses; otherwise, the device’s response is disabled.
sourcepub const BUS_MASTER: Pack16<bool, Command> = _
pub const BUS_MASTER: Pack16<bool, Command> = _
Bus Master
If set to 1, the device can behave as a bus master; otherwise, the device can not generate PCI accesses.
sourcepub const SPECIAL_CYCLE_ENABLE: Pack16<bool, Command> = _
pub const SPECIAL_CYCLE_ENABLE: Pack16<bool, Command> = _
Special Cycle Enabled
If set to 1 the device can monitor Special Cycle operations; otherwise, the device will ignore them.
sourcepub const MEMORY_WRITE_AND_INVALIDATE_ENABLED: Pack16<bool, Command> = _
pub const MEMORY_WRITE_AND_INVALIDATE_ENABLED: Pack16<bool, Command> = _
Memory Write and Invalidate Enabled
If set to 1 the device can generate the Memory Write and Invalidate command; otherwise, the Memory Write command must be used.
sourcepub const VGA_PALETTE_SNOOP: Pack16<bool, Command> = _
pub const VGA_PALETTE_SNOOP: Pack16<bool, Command> = _
VGA Palette Snoop
If set to 1 the device does not respond to palette register writes and will snoop the data; otherwise, the device will treat palette write accesses like all other accesses.
sourcepub const PARITY_ERROR_RESPONSE_ENABLED: Pack16<bool, Command> = _
pub const PARITY_ERROR_RESPONSE_ENABLED: Pack16<bool, Command> = _
Parity Error Response enabled
If set to 1 the device will take its normal action when a parity
error is detected; otherwise, when an error is detected, the device
will set bit 15 of the Status
register
(DETECTED_PARITY_ERROR
), but will not assert the PERR# (Parity
Error) pin and will continue operation as normal.
sourcepub const SERR_ENABLED: Pack16<bool, Command> = _
pub const SERR_ENABLED: Pack16<bool, Command> = _
SERR#
Enabled
If set to 1 the SERR#
driver is enabled; otherwise, the driver is disabled.
sourcepub const FAST_BACK_TO_BACK_ENABLED: Pack16<bool, Command> = _
pub const FAST_BACK_TO_BACK_ENABLED: Pack16<bool, Command> = _
Fast Back-To-Back Enabled
If set to 1, indicates a device is allowed to generate fast back-to-back transactions; otherwise, fast back-to-back transactions are only allowed to the same agent.
sourcepub const INTERRUPT_DISABLE: Pack16<bool, Command> = _
pub const INTERRUPT_DISABLE: Pack16<bool, Command> = _
Interrupt Disable
If set to 1, the assertion of the devices INTx#
signal is
disabled; otherwise, assertion of the signal is enabled.
sourcepub const fn from_bits(bits: u16) -> Command
pub const fn from_bits(bits: u16) -> Command
Constructs a new instance of Self
from the provided raw bits.
sourcepub fn with<T>(self, field: Pack16<T, Command>, value: T) -> Command
pub fn with<T>(self, field: Pack16<T, Command>, value: T) -> Command
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: Pack16<T, Command>, value: T) -> &mut Command
pub fn set<T>(&mut self, field: Pack16<T, Command>, value: T) -> &mut Command
Packs the bit representation of value
into self
at the range
designated by field
, mutating self
in place.
sourcepub fn get<T>(self, field: Pack16<T, Command>) -> T
pub fn get<T>(self, field: Pack16<T, Command>) -> 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: Pack16<T, Command>
) -> Result<T, <T as FromBits<u16>>::Error>
pub fn try_get<T>( self, field: Pack16<T, Command> ) -> Result<T, <T as FromBits<u16>>::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 FromBits<u32> for Command
impl FromBits<u32> for Command
source§impl PartialEq for Command
impl PartialEq for Command
impl Copy for Command
impl Eq for Command
impl StructuralEq for Command
impl StructuralPartialEq for Command
Auto Trait Implementations§
impl RefUnwindSafe for Command
impl Send for Command
impl Sync for Command
impl Unpin for Command
impl UnwindSafe for Command
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>
§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.