virtio_drivers::transport

Trait Transport

Source
pub trait Transport {
Show 16 methods // Required methods fn device_type(&self) -> DeviceType; fn read_device_features(&mut self) -> u64; fn write_driver_features(&mut self, driver_features: u64); fn max_queue_size(&mut self, queue: u16) -> u32; fn notify(&mut self, queue: u16); fn get_status(&self) -> DeviceStatus; fn set_status(&mut self, status: DeviceStatus); fn set_guest_page_size(&mut self, guest_page_size: u32); fn requires_legacy_layout(&self) -> bool; fn queue_set( &mut self, queue: u16, size: u32, descriptors: PhysAddr, driver_area: PhysAddr, device_area: PhysAddr, ); fn queue_unset(&mut self, queue: u16); fn queue_used(&mut self, queue: u16) -> bool; fn ack_interrupt(&mut self) -> bool; fn config_space<T: 'static>(&self) -> Result<NonNull<T>>; // Provided methods fn begin_init<F: Flags<Bits = u64> + BitAnd<Output = F> + Debug>( &mut self, supported_features: F, ) -> F { ... } fn finish_init(&mut self) { ... }
}
Expand description

A VirtIO transport layer.

Required Methods§

Source

fn device_type(&self) -> DeviceType

Gets the device type.

Source

fn read_device_features(&mut self) -> u64

Reads device features.

Source

fn write_driver_features(&mut self, driver_features: u64)

Writes device features.

Source

fn max_queue_size(&mut self, queue: u16) -> u32

Gets the max size of the given queue.

Source

fn notify(&mut self, queue: u16)

Notifies the given queue on the device.

Source

fn get_status(&self) -> DeviceStatus

Gets the device status.

Source

fn set_status(&mut self, status: DeviceStatus)

Sets the device status.

Source

fn set_guest_page_size(&mut self, guest_page_size: u32)

Sets the guest page size.

Source

fn requires_legacy_layout(&self) -> bool

Returns whether the transport requires queues to use the legacy layout.

Ref: 2.6.2 Legacy Interfaces: A Note on Virtqueue Layout

Source

fn queue_set( &mut self, queue: u16, size: u32, descriptors: PhysAddr, driver_area: PhysAddr, device_area: PhysAddr, )

Sets up the given queue.

Source

fn queue_unset(&mut self, queue: u16)

Disables and resets the given queue.

Source

fn queue_used(&mut self, queue: u16) -> bool

Returns whether the queue is in use, i.e. has a nonzero PFN or is marked as ready.

Source

fn ack_interrupt(&mut self) -> bool

Acknowledges an interrupt.

Returns true on success.

Source

fn config_space<T: 'static>(&self) -> Result<NonNull<T>>

Gets the pointer to the config space.

Provided Methods§

Source

fn begin_init<F: Flags<Bits = u64> + BitAnd<Output = F> + Debug>( &mut self, supported_features: F, ) -> F

Begins initializing the device.

Ref: virtio 3.1.1 Device Initialization

Returns the negotiated set of features.

Source

fn finish_init(&mut self)

Finishes initializing the device.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§