Struct VirtqueueDescriptors

Source
#[repr(C, align(16))]
pub struct VirtqueueDescriptors<const MAX_QUEUE_SIZE: usize>(/* private fields */);
Expand description

The Virtqueue descriptor table.

This table is provided to the VirtIO device (host) as a means to communicate information about shared buffers, maintained in the individual VirtqueueDescriptor elements. Elements in this table are referenced by the VirtqueueAvailableRing and VirtqueueUsedRing for exposing them to the VirtIO device in order, and receiving exposed (“used”) buffers back from the device.

Multiple entries of the descriptor table can be chained in order to treat disjoint regions of memory as a single buffer through the VirtqueueDescriptor::next field, where the value of this field indexes into this table.

Trait Implementations§

Source§

impl<const MAX_QUEUE_SIZE: usize> Default for VirtqueueDescriptors<MAX_QUEUE_SIZE>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl<const MAX_QUEUE_SIZE: usize> !Freeze for VirtqueueDescriptors<MAX_QUEUE_SIZE>

§

impl<const MAX_QUEUE_SIZE: usize> !RefUnwindSafe for VirtqueueDescriptors<MAX_QUEUE_SIZE>

§

impl<const MAX_QUEUE_SIZE: usize> Send for VirtqueueDescriptors<MAX_QUEUE_SIZE>

§

impl<const MAX_QUEUE_SIZE: usize> !Sync for VirtqueueDescriptors<MAX_QUEUE_SIZE>

§

impl<const MAX_QUEUE_SIZE: usize> Unpin for VirtqueueDescriptors<MAX_QUEUE_SIZE>

§

impl<const MAX_QUEUE_SIZE: usize> UnwindSafe for VirtqueueDescriptors<MAX_QUEUE_SIZE>

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.

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.