dma_api/dma/
mod.rs

1use crate::{flush, invalidate, Direction};
2use core::ptr::NonNull;
3
4pub mod slice;
5
6#[cfg(feature = "alloc")]
7pub mod alloc;
8
9impl Direction {
10    pub fn preper_read(self, ptr: NonNull<u8>, size: usize) {
11        if matches!(self, Direction::FromDevice | Direction::Bidirectional) {
12            invalidate(ptr, size);
13        }
14    }
15    pub fn confirm_write(self, ptr: NonNull<u8>, size: usize) {
16        if matches!(self, Direction::ToDevice | Direction::Bidirectional) {
17            flush(ptr, size)
18        }
19    }
20}