dma_api/dma/
mod.rs

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