71#define RING_BUF_SIZE_MAX ((ring_buf_size_t)PTRDIFF_MIN)
351#define RING_BUF_DEFINE_STATIC(_name_, _size_) \
352 static uint8_t _ring_buf_space_##_name_[_size_]; \
353 static struct ring_buf _name_ = {.space = _ring_buf_space_##_name_, \
int ring_buf_put_ack(struct ring_buf *buf, ring_buf_size_t size)
Acknowledges space claimed for putting data into a ring buffer.
int ring_buf_get_ack(struct ring_buf *buf, ring_buf_size_t size)
Acknowledges space claimed for getting data from a ring buffer.
ring_buf_size_t ring_buf_get_claim(struct ring_buf *buf, void **space, ring_buf_size_t size)
Claims contiguous space for getting.
ring_buf_size_t ring_buf_put_claim(struct ring_buf *buf, void **space, ring_buf_size_t size)
Claims space for putting data into a ring buffer.
ring_buf_size_t ring_buf_get(struct ring_buf *buf, void *data, ring_buf_size_t size)
Gets data from a ring buffer.
int ring_buf_put_all(struct ring_buf *buf, const void *data, ring_buf_size_t size)
Puts all or none.
ring_buf_size_t ring_buf_put(struct ring_buf *buf, const void *data, ring_buf_size_t size)
Puts non-contiguous bytes into the ring buffer.
int ring_buf_get_all(struct ring_buf *buf, void *data, ring_buf_size_t size)
Gets all or none.
static bool ring_buf_is_full(const struct ring_buf *buf)
Checks if the ring buffer is full.
void ring_buf_reset(struct ring_buf *buf, ring_buf_ptrdiff_t base)
Resets a ring buffer.
static bool ring_buf_is_empty(const struct ring_buf *buf)
Checks if the ring buffer is empty.
static ring_buf_size_t ring_buf_free_space(const struct ring_buf *buf)
Calculates free space in the ring buffer.
static ring_buf_size_t ring_buf_used_space(const struct ring_buf *buf)
Calculates used space in the ring buffer.
size_t ring_buf_size_t
Ring buffer size type.
ptrdiff_t ring_buf_ptrdiff_t
Ring buffer pointer difference type.
ring_buf_ptrdiff_t tail
Tail index of the zone.
ring_buf_ptrdiff_t head
Head index of the zone.
ring_buf_ptrdiff_t base
Base index of the zone.
ring_buf_size_t size
Size of the ring buffer.
void * space
Pointer to the buffer's data space.
struct ring_buf_zone get
Get zone.
struct ring_buf_zone put
Put zone.