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 selfmethod is called on the implementing object:read_buffermust always return the same value, if called multiple times.- The memory specified by the pointer and size returned by
read_buffermust not be freed during the transfer it is used in as long asselfis not dropped.
Required Associated Types§
Required Methods§
Sourceunsafe fn read_buffer(&self) -> (*const Self::Word, usize)
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".