pub struct VirtQueue { /* private fields */ }Expand description
VirtIO queue implementation.
Implementations§
Source§impl VirtQueue
impl VirtQueue
Sourcepub fn new(size: u16) -> Result<Self>
pub fn new(size: u16) -> Result<Self>
Creates a new virtqueue with the given size.
§Errors
Returns an error if the size is not a power of 2 or exceeds limits.
Sourcepub fn set_descriptor(&mut self, idx: u16, descriptor: Descriptor) -> Result<()>
pub fn set_descriptor(&mut self, idx: u16, descriptor: Descriptor) -> Result<()>
Sourcepub fn add_avail(&mut self, head_idx: u16) -> Result<()>
pub fn add_avail(&mut self, head_idx: u16) -> Result<()>
Adds a descriptor chain head to the available ring.
§Errors
Returns an error if the descriptor index is out of range.
Sourcepub const fn has_available(&self) -> bool
pub const fn has_available(&self) -> bool
Checks if there are available descriptors.
Sourcepub fn pop_avail(&mut self) -> Option<(u16, DescriptorChain<'_>)>
pub fn pop_avail(&mut self) -> Option<(u16, DescriptorChain<'_>)>
Pops the next available descriptor chain.
Returns the head descriptor index and the descriptor chain.
Sourcepub fn get_descriptor(&self, idx: u16) -> Option<&Descriptor>
pub fn get_descriptor(&self, idx: u16) -> Option<&Descriptor>
Returns a reference to a descriptor.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for VirtQueue
impl RefUnwindSafe for VirtQueue
impl Send for VirtQueue
impl Sync for VirtQueue
impl Unpin for VirtQueue
impl UnsafeUnpin for VirtQueue
impl UnwindSafe for VirtQueue
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more