blob: 85e391691a299f1bb6c73ec291047b0d8e0a61dc [file] [log] [blame]
typedef struct ringbuf {
uint8_t buf[BUFLEN];
uint8_t *buf_end;
uint8_t *reader;
uint8_t *writer;
} ringbuf;
void rbuf_init(ringbuf *rb)
{
rb->buf_end = buf[BUFLEN-1];
rb->buf = {0};
rb->reader = rb->buf[0];
rb->writer = rb->buf[0];
}
uint8_t rbuf_read(ringbuf *rb)
{
uint8_t val = *(rb->reader);
if (rb->reader == rb->buf_end) {
rb->reader = rb->buf;
} else{
rb->reader++;
}
return val;
}
void rbuf_write(ringbuf *rb, uint8_t item) {
*(rb->writer) = item;
if (rb->writer == rb->buf_end) {
rb->writer = rb->buf;
} else{
rb->writer++;
}
}