pub struct NvmeRequester {
subq: Mutex<SubmissionQueue>,
comq: Mutex<CompletionQueue>,
sub_bell: *const VolatileCell<u32>,
com_bell: *const VolatileCell<u32>,
_sub_dma: NvmeDmaSliceRegion<CommonCommand>,
_com_dma: NvmeDmaSliceRegion<CommonCompletion>,
}
Fields
subq: Mutex<SubmissionQueue>
comq: Mutex<CompletionQueue>
sub_bell: *const VolatileCell<u32>
com_bell: *const VolatileCell<u32>
_sub_dma: NvmeDmaSliceRegion<CommonCommand>
_com_dma: NvmeDmaSliceRegion<CommonCompletion>
Implementations
sourceimpl NvmeRequester
impl NvmeRequester
pub fn new(
subq: Mutex<SubmissionQueue>,
comq: Mutex<CompletionQueue>,
sub_bell: *const VolatileCell<u32>,
com_bell: *const VolatileCell<u32>,
sub_dma: NvmeDmaSliceRegion<CommonCommand>,
com_dma: NvmeDmaSliceRegion<CommonCompletion>
) -> Self
pub fn check_completions(&self) -> Vec<ResponseInfo<CommonCompletion>>
Trait Implementations
sourceimpl RequestDriver for NvmeRequester
impl RequestDriver for NvmeRequester
type Request = CommonCommand
type Request = CommonCommand
The type of a request that will be used by the SubmitRequest wrapper to submit requests to
the driver. Read more
type Response = CommonCompletion
type Response = CommonCompletion
The type of a response to a request that we will use to send back to the Requester via the
[requester::Requester::finish] function. Read more
type SubmitError = ()
type SubmitError = ()
The type of a submit error in case submission fails.
sourcefn submit<'life0, 'life1, 'async_trait>(
&'life0 self,
reqs: &'life1 mut [SubmitRequest<Self::Request>]
) -> Pin<Box<dyn Future<Output = Result<(), Self::SubmitError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn submit<'life0, 'life1, 'async_trait>(
&'life0 self,
reqs: &'life1 mut [SubmitRequest<Self::Request>]
) -> Pin<Box<dyn Future<Output = Result<(), Self::SubmitError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
The actual submit function. The driver should perform whatever device-specific submission
procedure it needs to to submit all requests. Read more
impl Send for NvmeRequester
impl Sync for NvmeRequester
Auto Trait Implementations
impl !DeviceSync for NvmeRequester
impl !ObjSafe for NvmeRequester
impl RefUnwindSafe for NvmeRequester
impl Unpin for NvmeRequester
impl UnwindSafe for NvmeRequester
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more