Trait virtio_drivers::Transport
source · [−]pub trait Transport {
Show 13 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(&self) -> u32;
fn notify(&mut self, queue: u32);
fn set_status(&mut self, status: DeviceStatus);
fn set_guest_page_size(&mut self, guest_page_size: u32);
fn queue_set(
&mut self,
queue: u32,
size: u32,
descriptors: PhysAddr,
driver_area: PhysAddr,
device_area: PhysAddr
);
fn queue_used(&mut self, queue: u32) -> bool;
fn ack_interrupt(&mut self) -> bool;
fn config_space(&self) -> NonNull<u64>;
fn begin_init(&mut self, negotiate_features: impl FnOnce(u64) -> u64) { ... }
fn finish_init(&mut self) { ... }
}Expand description
A VirtIO transport layer.
Required Methods
sourcefn device_type(&self) -> DeviceType
fn device_type(&self) -> DeviceType
Gets the device type.
sourcefn read_device_features(&mut self) -> u64
fn read_device_features(&mut self) -> u64
Reads device features.
sourcefn write_driver_features(&mut self, driver_features: u64)
fn write_driver_features(&mut self, driver_features: u64)
Writes device features.
sourcefn max_queue_size(&self) -> u32
fn max_queue_size(&self) -> u32
Gets the max size of queue.
sourcefn set_status(&mut self, status: DeviceStatus)
fn set_status(&mut self, status: DeviceStatus)
Sets the device status.
sourcefn set_guest_page_size(&mut self, guest_page_size: u32)
fn set_guest_page_size(&mut self, guest_page_size: u32)
Sets the guest page size.
Sets up the given queue.
sourcefn queue_used(&mut self, queue: u32) -> bool
fn queue_used(&mut self, queue: u32) -> bool
Returns whether the queue is in use, i.e. has a nonzero PFN or is marked as ready.
sourcefn ack_interrupt(&mut self) -> bool
fn ack_interrupt(&mut self) -> bool
Acknowledges an interrupt.
Returns true on success.
sourcefn config_space(&self) -> NonNull<u64>
fn config_space(&self) -> NonNull<u64>
Gets the pointer to the config space.
Provided Methods
sourcefn begin_init(&mut self, negotiate_features: impl FnOnce(u64) -> u64)
fn begin_init(&mut self, negotiate_features: impl FnOnce(u64) -> u64)
Begins initializing the device.
Ref: virtio 3.1.1 Device Initialization
sourcefn finish_init(&mut self)
fn finish_init(&mut self)
Finishes initializing the device.