pub unsafe trait WriteBuffer {
type Word;
// Required method
unsafe fn write_buffer(&mut self) -> (*mut Self::Word, usize);
}Expand description
Trait for buffers that can be given to DMA for writing.
§Safety
The implementing type must be safe to use for DMA writes. This means:
- It must be a pointer that references the actual buffer.
Targetmust be a type that is valid for any possible byte pattern.- As long as no
&mut selfmethod, except forwrite_buffer, is called on the implementing object:write_buffermust always return the same value, if called multiple times.- The memory specified by the pointer and size returned by
write_buffermust not be freed during the transfer as long asselfis not dropped.
Required Associated Types§
Required Methods§
Sourceunsafe fn write_buffer(&mut self) -> (*mut Self::Word, usize)
unsafe fn write_buffer(&mut self) -> (*mut Self::Word, usize)
Provide a buffer usable for DMA writes.
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, except for write_buffer, 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".