|
struct | ringbuf |
| Structure that holds the state of a ring buffer. More...
|
|
The ring buffer library implements ring (circular) buffer where bytes can be read and written independently. A ring buffer is particularly useful in device drivers where data can come in through interrupts.
◆ ringbuf_elements()
int ringbuf_elements |
( |
struct ringbuf * |
r | ) |
|
Get the number of elements currently in the ring buffer.
- Parameters
-
r | A pointer to a struct ringbuf to hold the state of the ring buffer |
- Returns
- The number of elements in the buffer.
◆ ringbuf_get()
int ringbuf_get |
( |
struct ringbuf * |
r | ) |
|
Get a byte from the ring buffer.
- Parameters
-
r | A pointer to a struct ringbuf to hold the state of the ring buffer |
- Returns
- The data from the buffer, or -1 if the buffer was empty
This function removes a byte from the ring buffer. It
is safe to call this function from an interrupt
handler.
◆ ringbuf_init()
void ringbuf_init |
( |
struct ringbuf * |
r, |
|
|
uint8_t * |
a, |
|
|
uint8_t |
size_power_of_two |
|
) |
| |
Initialize a ring buffer.
- Parameters
-
r | A pointer to a struct ringbuf to hold the state of the ring buffer |
a | A pointer to an array to hold the data in the buffer |
size_power_of_two | The size of the ring buffer, which must be a power of two This function initiates a ring buffer. The data in the
buffer is stored in an external array, to which a
pointer must be supplied. The size of the ring buffer
must be a power of two and cannot be larger than 128
bytes.
|
◆ ringbuf_put()
int ringbuf_put |
( |
struct ringbuf * |
r, |
|
|
uint8_t |
c |
|
) |
| |
Insert a byte into the ring buffer.
- Parameters
-
r | A pointer to a struct ringbuf to hold the state of the ring buffer |
c | The byte to be written to the buffer |
- Returns
- Non-zero if there data could be written, or zero if the buffer was full.
This function inserts a byte into the ring buffer. It
is safe to call this function from an interrupt
handler.
◆ ringbuf_size()
int ringbuf_size |
( |
struct ringbuf * |
r | ) |
|
Get the size of a ring buffer.
- Parameters
-
r | A pointer to a struct ringbuf to hold the state of the ring buffer |
- Returns
- The size of the buffer.