mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 21:58:33 +03:00
35 lines
641 B
C
35 lines
641 B
C
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++;
|
|
}
|
|
}
|