pub struct StorageLayout {
pub submission_entries: usize,
pub submission_tail: usize,
pub completion_entries: usize,
pub completion_head: usize,
pub completion_tail: usize,
pub submission_mask: u32,
pub completion_mask: u32,
pub host_payload: u64,
}Expand description
Returned native ring offsets. GPU addresses are obtained from StorageRing::memory.
host_payload is a CPU virtual address for Linux fixed-buffer I/O, never a GPU VA.
Fields§
§submission_entries: usizeOffset of the native 64-byte SQE array.
submission_tail: usizeOffset of the 32-bit SQ publisher tail.
completion_entries: usizeOffset of the native 16-byte CQE array.
completion_head: usizeOffset of the 32-bit CQ consumer head.
completion_tail: usizeOffset of the 32-bit CQ producer tail.
submission_mask: u32Native SQ entry mask.
completion_mask: u32Native CQ entry mask.
host_payload: u64CPU address of fixed buffer zero.
Trait Implementations§
Source§impl Clone for StorageLayout
impl Clone for StorageLayout
impl Copy for StorageLayout
Auto Trait Implementations§
impl Freeze for StorageLayout
impl RefUnwindSafe for StorageLayout
impl Send for StorageLayout
impl Sync for StorageLayout
impl Unpin for StorageLayout
impl UnsafeUnpin for StorageLayout
impl UnwindSafe for StorageLayout
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more