#ifndef SIMTRACE_RINGBUF_H #define SIMTRACE_RINGBUF_H #include #include #include #define RING_BUFLEN 1024 typedef struct ringbuf { uint8_t buf[RING_BUFLEN]; size_t ird; size_t iwr; } ringbuf; void rbuf_reset(volatile ringbuf * rb); uint8_t rbuf_read(volatile ringbuf * rb); uint8_t rbuf_peek(volatile ringbuf * rb); void rbuf_write(volatile ringbuf * rb, uint8_t item); bool rbuf_is_empty(volatile ringbuf * rb); bool rbuf_is_full(volatile ringbuf * rb); #endif /* end of include guard: SIMTRACE_RINGBUF_H */