Skip to main content

LegacyPciChipsetDeviceHandle

Struct LegacyPciChipsetDeviceHandle 

Source
pub struct LegacyPciChipsetDeviceHandle {
    pub name: String,
    pub resource: Resource<ChipsetDeviceHandleKind>,
    pub pci_bus_name: String,
    pub bdf: (u8, u8, u8),
}
Expand description

A handle to instantiate a legacy PCI chipset device with explicit placement.

§Legacy Chipset Only

This handle type is exclusively for legacy Gen1 PCI chipset devices that require historically-fixed PCI bus/device/function placement. Examples include ISA bridge, PIIX4 IDE, USB UHCI, and similar integrated chipset functions.

New devices must not use this type. Externally-facing devices (e.g. passthrough, Gen2 emulated devices) should use ChipsetDeviceHandle and implement dynamic PCI enumeration or appropriate driver recognition patterns.

This type exists to preserve the explicit wiring of legacy Gen1 chipset components into fixed PCI locations, which guests expect and depend upon for compatibility.

Fields§

§name: String

The name of the device.

§resource: Resource<ChipsetDeviceHandleKind>

The device resource handle.

§pci_bus_name: String

The PCI bus name to attach the device to. Must be specified explicitly; derived from chipset architecture, not device discovery.

§bdf: (u8, u8, u8)

The explicit static PCI bus/device/function tuple. This is part of the legacy chipset’s fixed contract; do not make this negotiable.

Trait Implementations§

Source§

impl Debug for LegacyPciChipsetDeviceHandle

Source§

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

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

impl DefaultEncoding for LegacyPciChipsetDeviceHandle

Source§

type Encoding = TableEncoder

The encoding to use for the serialization. Read more
Source§

impl<'encoding> StructDecodeMetadata<'encoding, Resource> for LegacyPciChipsetDeviceHandle

Source§

const DECODERS: &'static [ErasedDecoderEntry]

The list of decoder vtables.
Source§

impl StructEncodeMetadata<Resource> for LegacyPciChipsetDeviceHandle

Source§

const ENCODERS: &'static [ErasedEncoderEntry]

The list of encoder vtables.
Source§

impl StructMetadata for LegacyPciChipsetDeviceHandle

Source§

const NUMBERS: &'static [u32]

The field numbers for each field.
Source§

const OFFSETS: &'static [usize]

The byte offset to each field within the struct.

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> MeshField for T
where T: DefaultEncoding, <T as DefaultEncoding>::Encoding: FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,

§

type Encoding = <T as DefaultEncoding>::Encoding

§

impl<T> MeshPayload for T
where T: DefaultEncoding + Any + Send + 'static, <T as DefaultEncoding>::Encoding: MessageEncode<T, Resource> + for<'a> MessageDecode<'a, T, Resource> + FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,

§

type Encoding = <T as DefaultEncoding>::Encoding

§

impl<T> SerializeMessage for T
where T: 'static + MeshPayload + Send,

§

type Concrete = T

The underlying concrete message type.
§

fn compute_message_size(&mut self, sizer: MessageSizer<'_>)

Computes the message size, as in [MessageEncode::compute_message_size].
§

fn write_message(self, writer: MessageWriter<'_, '_, Resource>)

Writes the message, as in [MessageEncode::write_message].
§

fn extract(self) -> <T as SerializeMessage>::Concrete

Extract the concrete message.
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