#include "circbuf.h" // Read a byte from a circular buffer, or zero if the buffer is empty. u8 circbuf_read(CircBuf *buf) { if (buf->front != buf->back) { return buf->mem[buf->front++]; } else { return 0; } } // Write a byte to a circular buffer if the buffer is not full. void circbuf_write(CircBuf *buf, u8 byte) { if (((buf->back+1)&0xff) != buf->front) { buf->mem[buf->back++] = byte; } } // Clear a circular buffer. void circbuf_clear(CircBuf *buf) { buf->front = 0; buf->back = 0; }