Skip to main content

WriteBuffer

Trait WriteBuffer 

Source
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.
  • Target must be a type that is valid for any possible byte pattern.
  • As long as no &mut self method, except for write_buffer, is called on the implementing object:
    • write_buffer must always return the same value, if called multiple times.
    • The memory specified by the pointer and size returned by write_buffer must not be freed during the transfer as long as self is not dropped.

Required Associated Types§

Required Methods§

Source

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".

Implementors§

Source§

impl<B, T> WriteBuffer for B
where B: DerefMut<Target = T> + StableDeref + 'static, T: WriteTarget + ?Sized,