50 ringbufindex_init(
struct ringbufindex *r, uint8_t size)
58 ringbufindex_put(
struct ringbufindex *r)
69 if(((r->put_ptr - r->get_ptr) & r->mask) == r->mask) {
72 r->put_ptr = (r->put_ptr + 1) & r->mask;
78 ringbufindex_peek_put(
const struct ringbufindex *r)
83 if(((r->put_ptr - r->get_ptr) & r->mask) == r->mask) {
86 return (r->put_ptr + 1) & r->mask;
90 ringbufindex_get(
struct ringbufindex *r)
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;
115 ringbufindex_peek_get(
const struct ringbufindex *r)
120 if(((r->put_ptr - r->get_ptr) & r->mask) > 0) {
121 return (r->get_ptr + 1) & r->mask;
128 ringbufindex_size(
const struct ringbufindex *r)
134 ringbufindex_elements(
const struct ringbufindex *r)
136 return (r->put_ptr - r->get_ptr) & r->mask;
140 ringbufindex_full(
const struct ringbufindex *r)
142 return ((r->put_ptr - r->get_ptr) & r->mask) == r->mask;
146 ringbufindex_empty(
const struct ringbufindex *r)
148 return ringbufindex_elements(r) == 0;
Header file for the ringbufindex library