Struct VfioDevice

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

A device backend accessed via VFIO.

Implementations§

Source§

impl VfioDevice

Source

pub async fn new( driver_source: &VmTaskDriverSource, pci_id: &str, dma_client: Arc<dyn DmaClient>, ) -> Result<Self>

Creates a new VFIO-backed device for the PCI device with pci_id.

Source

pub async fn restore( driver_source: &VmTaskDriverSource, pci_id: &str, keepalive: bool, dma_client: Arc<dyn DmaClient>, ) -> Result<Self>

Creates a new VFIO-backed device for the PCI device with pci_id. or creates a device from the saved state if provided.

Source

pub fn read_config(&self, offset: u16) -> Result<u32>

Source

pub fn write_config(&self, offset: u16, data: u32) -> Result<()>

Trait Implementations§

Source§

impl DeviceBacking for VfioDevice

Source§

type Registers = MappedRegionWithFallback

An object for accessing device registers.
Source§

fn id(&self) -> &str

Returns a device ID for diagnostics.
Source§

fn map_bar(&mut self, n: u8) -> Result<Self::Registers>

Maps a BAR.
Source§

fn dma_client(&self) -> Arc<dyn DmaClient>

DMA Client for the device.
Source§

fn max_interrupt_count(&self) -> u32

Returns the maximum number of interrupts that can be mapped.
Source§

fn map_interrupt(&mut self, msix: u32, cpu: u32) -> Result<DeviceInterrupt>

Maps a MSI-X interrupt for use, returning an object that can be used to wait for the interrupt to be signaled by the device. Read more
Source§

impl Inspect for VfioDevice

Source§

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

Inspects the object.

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.

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