|
Contiki-Inga 3.x
|
The ring buffer library implements ring (circular) buffer where bytes can be read and written independently. More...
Files | |
| file | ringbuf.h |
Header file for the ring buffer library | |
Data Structures | |
| struct | ringbuf |
| Structure that holds the state of a ring buffer. More... | |
Functions | |
| void | ringbuf_init (struct ringbuf *r, uint8_t *a, uint8_t size_power_of_two) |
| Initialize a ring buffer. More... | |
| int | ringbuf_put (struct ringbuf *r, uint8_t c) |
| Insert a byte into the ring buffer. More... | |
| int | ringbuf_get (struct ringbuf *r) |
| Get a byte from the ring buffer. More... | |
| int | ringbuf_size (struct ringbuf *r) |
| Get the size of a ring buffer. More... | |
| int | ringbuf_elements (struct ringbuf *r) |
| Get the number of elements currently in the 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.
| int ringbuf_elements | ( | struct ringbuf * | r | ) |
| int ringbuf_get | ( | struct ringbuf * | r | ) |
Get a byte from the ring buffer.
| r | A pointer to a struct ringbuf to hold the state of the ring buffer |
This function removes a byte from the ring buffer. It
is safe to call this function from an interrupt
handler. | void ringbuf_init | ( | struct ringbuf * | r, |
| uint8_t * | a, | ||
| uint8_t | size_power_of_two | ||
| ) |
Initialize a ring buffer.
| 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. |
Definition at line 43 of file ringbuf.c.
Referenced by uart0_init(), and uart1_init().
| int ringbuf_put | ( | struct ringbuf * | r, |
| uint8_t | c | ||
| ) |
Insert a byte into the ring buffer.
| r | A pointer to a struct ringbuf to hold the state of the ring buffer |
| c | The byte to be written to the buffer |
This function inserts a byte into the ring buffer. It
is safe to call this function from an interrupt
handler. Definition at line 52 of file ringbuf.c.
Referenced by serial_line_input_byte().
1.8.3.1