twizzler_driver::dma

Struct DmaRegion

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

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

Implementations§

source§

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

source

pub fn nr_pages(&self) -> usize

Calculate the number of pages this region covers.

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 pin(&mut self) -> Result<DmaPin<'_>, PinError>

source

pub fn sync(&self, sync: SyncMode)

source

pub fn with<F, R>(&self, f: F) -> R
where F: FnOnce(&T) -> R,

source

pub fn with_mut<F, R>(&mut self, 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.

Trait Implementations§

source§

impl<'a, T: DeviceSync> Drop for DmaRegion<T>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> !DeviceSync for DmaRegion<T>

§

impl<T> Freeze for DmaRegion<T>

§

impl<T> !ObjSafe for DmaRegion<T>

§

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

§

impl<T> !Send for DmaRegion<T>

§

impl<T> !Sync for DmaRegion<T>

§

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

§

impl<T> UnwindSafe for DmaRegion<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.