Skip to main content

ReadBuffer

Trait ReadBuffer 

Source
pub unsafe trait 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).

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

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