pub struct InFlight<'dma, T: ?Sized + 'dma> { /* private fields */ }Expand description
Non-blocking DMA transfer token.
Owns a BorrowedForDma for the transfer duration; the &mut
reborrow inside prevents CPU access and re-submission until the
transfer completes. Completion (polling or waiting) consumes the
InFlight and returns the BorrowedForDma (which can then be
dropped to release the &mut back to the caller).
The concrete start_*_typed methods that produce InFlight values
land with the typed DMA2D API in Step 3 of the refactor plan.
Implementations§
Source§impl<'dma, T: ?Sized + 'dma> InFlight<'dma, T>
impl<'dma, T: ?Sized + 'dma> InFlight<'dma, T>
Sourcepub fn new(borrow: BorrowedForDma<'dma, T>) -> Self
pub fn new(borrow: BorrowedForDma<'dma, T>) -> Self
Wrap a BorrowedForDma in an InFlight — used by DMA engines
to hand the borrow back to the caller on submission.
Sourcepub fn into_borrow(self) -> BorrowedForDma<'dma, T>
pub fn into_borrow(self) -> BorrowedForDma<'dma, T>
Release the underlying BorrowedForDma — called by DMA-engine
completion handlers when the transfer is done and the CPU may
touch the buffer again.
Auto Trait Implementations§
impl<'dma, T> !UnwindSafe for InFlight<'dma, T>
impl<'dma, T> Freeze for InFlight<'dma, T>where
T: ?Sized,
impl<'dma, T> RefUnwindSafe for InFlight<'dma, T>where
T: RefUnwindSafe + ?Sized,
impl<'dma, T> Send for InFlight<'dma, T>
impl<'dma, T> Sync for InFlight<'dma, T>
impl<'dma, T> Unpin for InFlight<'dma, T>where
T: ?Sized,
impl<'dma, T> UnsafeUnpin for InFlight<'dma, T>where
T: ?Sized,
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