pub struct DmaBuffer {
frame: PhysFrame,
order: u8,
phys: u64,
virt: u64,
nframes: usize,
}Expand description
A pinned, contiguous DMA buffer.
Allocated from the buddy allocator with allocate_phys_contiguous.
The underlying frames are marked with the [frame_flags::DMA] flag,
preventing the buddy from recycling them while a transfer is in flight.
The buffer is automatically unpinned on Drop, using RAII to
guarantee cleanup even on panic paths.
Fields§
§frame: PhysFrame§order: u8§phys: u64§virt: u64§nframes: usizeNumber of 4 KiB frames in this buffer.
Implementations§
Source§impl DmaBuffer
impl DmaBuffer
Trait Implementations§
Auto Trait Implementations§
impl Freeze for DmaBuffer
impl RefUnwindSafe for DmaBuffer
impl Sync for DmaBuffer
impl Unpin for DmaBuffer
impl UnsafeUnpin for DmaBuffer
impl UnwindSafe for DmaBuffer
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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