Trait VringT

Source
pub trait VringT<M: GuestAddressSpace>: for<'a> VringStateGuard<'a, M> + for<'a> VringStateMutGuard<'a, M> {
Show 21 methods // Required methods fn new(mem: M, max_queue_size: u16) -> Result<Self, VirtQueError> where Self: Sized; fn get_ref(&self) -> <Self as VringStateGuard<'_, M>>::G; fn get_mut(&self) -> <Self as VringStateMutGuard<'_, M>>::G; fn add_used(&self, desc_index: u16, len: u32) -> Result<(), VirtQueError>; fn signal_used_queue(&self) -> Result<()>; fn enable_notification(&self) -> Result<bool, VirtQueError>; fn disable_notification(&self) -> Result<(), VirtQueError>; fn needs_notification(&self) -> Result<bool, VirtQueError>; fn set_enabled(&self, enabled: bool); fn set_queue_info( &self, desc_table: u64, avail_ring: u64, used_ring: u64, ) -> Result<(), VirtQueError>; fn queue_next_avail(&self) -> u16; fn set_queue_next_avail(&self, base: u16); fn set_queue_next_used(&self, idx: u16); fn queue_used_idx(&self) -> Result<u16, VirtQueError>; fn set_queue_size(&self, num: u16); fn set_queue_event_idx(&self, enabled: bool); fn set_queue_ready(&self, ready: bool); fn set_kick(&self, file: Option<File>); fn read_kick(&self) -> Result<bool>; fn set_call(&self, file: Option<File>); fn set_err(&self, file: Option<File>);
}

Required Methods§

Source

fn new(mem: M, max_queue_size: u16) -> Result<Self, VirtQueError>
where Self: Sized,

Create a new instance of Vring.

Source

fn get_ref(&self) -> <Self as VringStateGuard<'_, M>>::G

Get an immutable reference to the kick event fd.

Source

fn get_mut(&self) -> <Self as VringStateMutGuard<'_, M>>::G

Get a mutable reference to the kick event fd.

Source

fn add_used(&self, desc_index: u16, len: u32) -> Result<(), VirtQueError>

Add an used descriptor into the used queue.

Source

fn signal_used_queue(&self) -> Result<()>

Notify the vhost-user frontend that used descriptors have been put into the used queue.

Source

fn enable_notification(&self) -> Result<bool, VirtQueError>

Enable event notification for queue.

Source

fn disable_notification(&self) -> Result<(), VirtQueError>

Disable event notification for queue.

Source

fn needs_notification(&self) -> Result<bool, VirtQueError>

Check whether a notification to the guest is needed.

Source

fn set_enabled(&self, enabled: bool)

Set vring enabled state.

Source

fn set_queue_info( &self, desc_table: u64, avail_ring: u64, used_ring: u64, ) -> Result<(), VirtQueError>

Set queue addresses for descriptor table, available ring and used ring.

Source

fn queue_next_avail(&self) -> u16

Get queue next avail head.

Source

fn set_queue_next_avail(&self, base: u16)

Set queue next avail head.

Source

fn set_queue_next_used(&self, idx: u16)

Set queue next used head.

Source

fn queue_used_idx(&self) -> Result<u16, VirtQueError>

Get queue next used head index from the guest memory.

Source

fn set_queue_size(&self, num: u16)

Set configured queue size.

Source

fn set_queue_event_idx(&self, enabled: bool)

Enable/disable queue event index feature.

Source

fn set_queue_ready(&self, ready: bool)

Set queue enabled state.

Source

fn set_kick(&self, file: Option<File>)

Set EventFd for kick.

Source

fn read_kick(&self) -> Result<bool>

Read event from the kick EventFd.

Source

fn set_call(&self, file: Option<File>)

Set EventFd for call.

Source

fn set_err(&self, file: Option<File>)

Set EventFd for err.

Implementors§

Source§

impl<M: 'static + GuestAddressSpace> VringT<M> for VringMutex<M>

Source§

impl<M: 'static + GuestAddressSpace> VringT<M> for VringRwLock<M>