pub unsafe trait _embedded_dma_ReadBuffer {
    type Word;

    // Required method
    unsafe fn read_buffer(&self) -> (*const Self::Word, usize);
}
Expand description

Trait for buffers that can be given to DMA for reading.

§Safety

The implementing type must be safe to use for DMA reads. This means:

  • It must be a pointer that references the actual buffer.
  • As long as no &mut self method is called on the implementing object:
    • read_buffer must always return the same value, if called multiple times.
    • The memory specified by the pointer and size returned by read_buffer must not be freed during the transfer it is used in as long as self is not dropped.

Required Associated Types§

Required Methods§

source

unsafe fn read_buffer(&self) -> (*const Self::Word, usize)

Provide a buffer usable for DMA reads.

The return value is:

  • pointer to the start of the buffer
  • buffer size in words
§Safety

Once this method has been called, it is unsafe to call any &mut self methods on this object as long as the returned value is in use (by DMA).

Implementors§

source§

impl<B, T> ReadBuffer for B
where B: Deref<Target = T> + StableDeref + 'static, T: ReadTarget + ?Sized,

§

type Word = <T as ReadTarget>::Word