Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Lockless shared memory byte stream IPC. More...
#include <winstream.h>
Data Fields | |
uint32_t | len |
uint32_t | start |
uint32_t | end |
uint32_t | seq |
uint8_t | data [] |
Lockless shared memory byte stream IPC.
The sys_winstream utility implements a unidirectional byte stream with simple read/write semantics on top of a memory region shared by the writer and reader. It requires no locking or synchronization mechanisms beyond reliable ordering of memory operations, and so is a good fit for use with heterogeneous shared memory environments (for example, where Zephyr needs to talk to other CPUs in the system running their own software).
This object does not keep track of the last sequence number read: the reader must keep that state and provide it on every read operation. After reaching "steady state", 'end' and 'start' are one byte apart because the buffer is always full.
uint8_t sys_winstream::data[] |
uint32_t sys_winstream::end |
uint32_t sys_winstream::len |
uint32_t sys_winstream::seq |
uint32_t sys_winstream::start |