|
Zephyr Project API 4.4.99
A Scalable Open Source RTOS
|
Simple, header-only ring buffer implementation. More...
#include <errno.h>#include <stdbool.h>#include <stdint.h>#include <string.h>#include <zephyr/sys/util.h>#include <zephyr/toolchain.h>#include <zephyr/sys/__assert.h>Go to the source code of this file.
Data Structures | |
| struct | ring_buf |
| A structure to represent a ring buffer. More... | |
Macros | |
| #define | RING_BUF_INIT(buf, sz) |
| Statically initialize a ring buffer. | |
| #define | RING_BUF_DECLARE(name, size8) |
| Define and initialize a ring buffer for byte data. | |
Functions | |
| static uint32_t | ring_buf_capacity_get (const struct ring_buf *rb) |
| Return ring buffer capacity. | |
| static uint32_t | ring_buf_size_get (const struct ring_buf *rb) |
| Determine size of available data in a ring buffer. | |
| static uint32_t | ring_buf_space_get (const struct ring_buf *rb) |
| Determine free space in a ring buffer. | |
| static bool | ring_buf_is_empty (const struct ring_buf *rb) |
| Determine if a ring buffer is empty. | |
| static bool | ring_buf_is_full (const struct ring_buf *rb) |
| Determine if a ring buffer is full. | |
| static void | ring_buf_reset (struct ring_buf *rb) |
| Reset ring buffer state. | |
| static void | ring_buf_init (struct ring_buf *rb, uint32_t size, uint8_t *data) |
| Initialize a ring buffer for byte data. | |
| static uint32_t | ring_buf_put_ptr (struct ring_buf *rb, uint8_t **data, size_t offset) |
| Get address of region for writing data to a ring buffer. | |
| static void | ring_buf_commit (struct ring_buf *rb, size_t size) |
| Indicate number of bytes written to a ring buffer. | |
| static uint32_t | ring_buf_get_ptr (struct ring_buf *rb, uint8_t **data, size_t offset) |
| Get address of valid data within a ring buffer. | |
| static void | ring_buf_consume (struct ring_buf *rb, size_t size) |
| Indicate number of bytes consumed from a ring buffer. | |
| static uint32_t | ring_buf_put (struct ring_buf *rb, const uint8_t *data, uint32_t size) |
| Write (copy) data to a ring buffer. | |
| static uint32_t | ring_buf_get (struct ring_buf *rb, uint8_t *data, uint32_t size) |
| Read data from a ring buffer. | |
| static uint32_t | ring_buf_peek (const struct ring_buf *rb, uint8_t *data, uint32_t size) |
| Peek at data from a ring buffer without consuming it. | |
Simple, header-only ring buffer implementation.