Expand description
Lock-free single-producer single-consumer ring buffer for zero-copy IPC.
§Memory layout
Each ring is backed by physically-contiguous DMA-accessible pages.
The first page holds a RingHeader with cache-line-padded atomic
head/tail indexes. Subsequent pages hold RingSlot entries.
§Ordering invariants
The producer writes data before publishing via tail.store(Release).
The consumer reads data after observing via tail.load(Acquire).
This guarantees correct ordering on x86 and ARM/POWER (no store-store
reordering past the Release barrier). See also LockFreeRing::write.
Structs§
- DmaBuffer
- Descriptor for a DMA-accessible buffer region within the ring.
- Lock
Free Ring - A lock-free single-producer single-consumer ring buffer.
- Ring
Header - Shared ring header, placed at the start of the first physical page.
- Ring
Slot - A single slot within the ring.
Enums§
- Ring
Error - Errors returned by ring operations.