63 if(((r->put_ptr - r->get_ptr) & r->mask) == r->mask) {
66 r->data[r->put_ptr] = c;
67 r->put_ptr = (r->put_ptr + 1) & r->mask;
86 if(((r->put_ptr - r->get_ptr) & r->mask) > 0) {
87 c = r->data[r->get_ptr];
88 r->get_ptr = (r->get_ptr + 1) & r->mask;
104 return (r->put_ptr - r->get_ptr) & r->mask;
Header file for the ring buffer library
Structure that holds the state of a ring buffer.
int ringbuf_get(struct ringbuf *r)
Get a byte from the ring buffer.
void ringbuf_init(struct ringbuf *r, uint8_t *dataptr, uint8_t size)
Initialize a ring buffer.
int ringbuf_elements(struct ringbuf *r)
Get the number of elements currently in the ring buffer.
int ringbuf_size(struct ringbuf *r)
Get the size of a ring buffer.
int ringbuf_put(struct ringbuf *r, uint8_t c)
Insert a byte into the ring buffer.