dma_api/dma/
mod.rs

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