PciExpressCapability

Struct PciExpressCapability 

Source
pub struct PciExpressCapability { /* private fields */ }
Expand description

Configurable PCI Express capability.

Implementations§

Source§

impl PciExpressCapability

Source

pub fn new( typ: DevicePortType, flr_handler: Option<Arc<dyn FlrHandler>>, ) -> Self

Creates a new PCI Express capability with FLR support.

§Arguments
  • typ - The spec-defined device or port type.
  • flr_handler - Optional handler to be called when FLR is initiated. This emulator will report that FLR is supported if flr_handler = Some(_)
Source

pub fn with_hotplug_support(self, slot_number: u32) -> Self

Enable hotplug support for this PCIe capability. This configures the appropriate registers to support hotpluggable devices. Panics if called on device types other than RootPort or DownstreamSwitchPort.

§Arguments
  • slot_number - The physical slot number to assign to this hotplug-capable port
Source

pub fn set_presence_detect_state(&self, present: bool)

Set the presence detect state for the slot. This method only has effect if the slot is implemented (slot_implemented = true). If slot is not implemented, the call is silently ignored, as the spec says “If this register is implemented but the Slot Implemented bit is Clear, the field behavior of this entire register with the exception of the DLLSC bit is undefined.”

§Arguments
  • present - true if a device is present in the slot, false if the slot is empty

Trait Implementations§

Source§

impl Inspect for PciExpressCapability

Source§

fn inspect(&self, req: Request<'_>)

Inspects the object.
Source§

impl PciCapability for PciExpressCapability

Source§

fn label(&self) -> &str

A descriptive label for use in Save/Restore + Inspect output
Source§

fn capability_id(&self) -> CapabilityId

Returns the PCI capability ID for this capability
Source§

fn len(&self) -> usize

Length of the capability structure
Source§

fn read_u32(&self, offset: u16) -> u32

Read a u32 at the given offset
Source§

fn write_u32(&mut self, offset: u16, val: u32)

Write a u32 at the given offset
Source§

fn reset(&mut self)

Reset the capability
Source§

fn as_pci_express(&self) -> Option<&PciExpressCapability>

Downcast to PCI Express capability
Source§

fn as_pci_express_mut(&mut self) -> Option<&mut PciExpressCapability>

Downcast to PCI Express capability (mutable)
Source§

impl SaveRestore for PciExpressCapability

Source§

type SavedState = SavedState

The concrete saved state type.
Source§

fn save(&mut self) -> Result<Self::SavedState, SaveError>

Saves the object’s state.
Source§

fn restore(&mut self, _: Self::SavedState) -> Result<(), RestoreError>

Restores the object’s state.

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.

§

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.

§

impl<T> ProtobufSaveRestore for T
where T: SaveRestore, <T as SaveRestore>::SavedState: 'static + Send + SavedStateRoot,

§

fn save(&mut self) -> Result<SavedStateBlob, SaveError>

Save the object.
§

fn restore(&mut self, state: SavedStateBlob) -> Result<(), RestoreError>

Restore the object.
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.
§

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