diff options
Diffstat (limited to 'arm9/source/types/circbuf.c')
-rw-r--r-- | arm9/source/types/circbuf.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/arm9/source/types/circbuf.c b/arm9/source/types/circbuf.c new file mode 100644 index 0000000..532a5a0 --- /dev/null +++ b/arm9/source/types/circbuf.c @@ -0,0 +1,20 @@ +#include "circbuf.h" + +u8 cb_read_byte(CircBuf *buf) { + if (buf->front != buf->back) { + return buf->mem[buf->front++]; + } else { + return 0; + } +} + +void cb_write_byte(CircBuf *buf, u8 byte) { + if (((buf->back+1)&0xff) != buf->front) { + buf->mem[buf->back++] = byte; + } +} + +void cb_clear(CircBuf *buf) { + buf->front = 0; + buf->back = 0; +} |