69 if(((r->put_ptr - r->get_ptr) & r->mask) == r->mask) {
72 r->put_ptr = (r->put_ptr + 1) & r->mask;
83 if(((r->put_ptr - r->get_ptr) & r->mask) == r->mask) {
104 if(((r->put_ptr - r->get_ptr) & r->mask) > 0) {
105 get_ptr = r->get_ptr;
106 r->get_ptr = (r->get_ptr + 1) & r->mask;
120 if(((r->put_ptr - r->get_ptr) & r->mask) > 0) {
136 return (r->put_ptr - r->get_ptr) & r->mask;
142 return ((r->put_ptr - r->get_ptr) & r->mask) == r->mask;
void ringbufindex_init(struct ringbufindex *r, uint8_t size)
Initialize a ring buffer.
Header file for the ringbufindex library
int ringbufindex_peek_get(const struct ringbufindex *r)
Return the index of the first element which will be removed if calling ringbufindex_get.
int ringbufindex_full(const struct ringbufindex *r)
Is the ring buffer full?
int ringbufindex_elements(const struct ringbufindex *r)
Return the number of elements currently in the ring buffer.
int ringbufindex_size(const struct ringbufindex *r)
Return the ring buffer size.
int ringbufindex_get(struct ringbufindex *r)
Remove the first element and return its index.
int ringbufindex_peek_put(const struct ringbufindex *r)
Check if there is space to put an element.
int ringbufindex_put(struct ringbufindex *r)
Put one element to the ring buffer.
int ringbufindex_empty(const struct ringbufindex *r)
Is the ring buffer empty?