micetools/src/micetools/lib/mice/ringbuf.h

17 lines
496 B
C

#pragma once
#include <stdbool.h>
// We use shorts for indexes so the max allowed here is 0x7fff
#define RING_BUFFER_SIZE 2048
typedef struct ring_buffer {
unsigned char buffer[RING_BUFFER_SIZE];
short read;
short write;
} ring_buffer_t;
bool ringbuf_write(ring_buffer_t* ring, unsigned const char* data, short bytes);
short ringbuf_read(ring_buffer_t* ring, unsigned char* data, short bytes);
short ringbuf_available(ring_buffer_t* ring);
void ringbuf_purge(ring_buffer_t* ring);