diff options
Diffstat (limited to 'ring-buffer.h')
| -rw-r--r-- | ring-buffer.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ring-buffer.h b/ring-buffer.h new file mode 100644 index 0000000..cfd70e0 --- /dev/null +++ b/ring-buffer.h @@ -0,0 +1,21 @@ +#ifndef RING_BUFFER_H +#define RING_BUFFER_H + +#include <stdbool.h> +#include <stddef.h> + +/* + * Circular buffer with functions for accessing elements in order. + * One slot always remains unused to distinguish between the empty/full case. + */ + +typedef struct RingBuffer RingBuffer; + +RingBuffer *ringbuf_alloc(size_t size); +void ringbuf_free(RingBuffer*); +void ringbuf_add(RingBuffer*, const void *value); +const void *ringbuf_prev(RingBuffer*); +const void *ringbuf_next(RingBuffer*); +void ringbuf_invalidate(RingBuffer*); + +#endif |
