twizzler_driver::dma

Struct DmaSliceRegion

source
pub struct DmaSliceRegion<T: DeviceSync> { /* private fields */ }
Expand description

A region of DMA memory, represented in virtual memory as type [T; len], with a particular access mode and options.

Implementations§

source§

impl<'a, T: DeviceSync> DmaSliceRegion<T>

source

pub fn num_bytes(&self) -> usize

Return the number of bytes this region covers.

source

pub fn access(&self) -> Access

Return the access direction of this region.

source

pub fn len(&self) -> usize

Return the number of elements in the slice that this region covers.

source

pub fn pin(&mut self) -> Result<DmaPin<'_>, PinError>

source

pub fn sync(&self, range: Range<usize>, sync: SyncMode)

source

pub fn with<F, R>(&self, range: Range<usize>, f: F) -> R
where F: FnOnce(&[T]) -> R,

source

pub fn with_mut<F, R>(&mut self, range: Range<usize>, f: F) -> R
where F: FnOnce(&mut [T]) -> R,

source

pub unsafe fn release_pin(&mut self)

Release any pin created for this region.

§Safety

Caller must ensure that no device is using the information from any active pins for this region.

source

pub unsafe fn get(&self) -> &[T]

Get a reference to the DMA memory.

§Safety

The caller must ensure coherence is applied.

source

pub unsafe fn get_mut(&mut self) -> &mut [T]

Get a mutable reference to the DMA memory.

§Safety

The caller must ensure coherence is applied.

Auto Trait Implementations§

§

impl<T> !DeviceSync for DmaSliceRegion<T>

§

impl<T> Freeze for DmaSliceRegion<T>

§

impl<T> !ObjSafe for DmaSliceRegion<T>

§

impl<T> RefUnwindSafe for DmaSliceRegion<T>
where T: RefUnwindSafe,

§

impl<T> !Send for DmaSliceRegion<T>

§

impl<T> !Sync for DmaSliceRegion<T>

§

impl<T> Unpin for DmaSliceRegion<T>
where T: Unpin,

§

impl<T> UnwindSafe for DmaSliceRegion<T>
where T: UnwindSafe,

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.