| #ifndef RINGBUFFER_H | |
| #define RINGBUFFER_H | |
| #include "types.h" | |
| typedef struct { | |
| u8 *buffer; | |
| size_t len; | |
| size_t read; | |
| size_t write; | |
| } ringbuffer_t; | |
| ringbuffer_t *ringbuffer_alloc(size_t len); | |
| void ringbuffer_free(ringbuffer_t *bfr); | |
| size_t ringbuffer_read(u8 *target, size_t len, ringbuffer_t *bfr); | |
| size_t ringbuffer_write(const u8 *src, size_t len, ringbuffer_t *bfr); | |
| size_t ringbuffer_get_used(ringbuffer_t *bfr); | |
| size_t ringbuffer_get_free(ringbuffer_t *bfr); | |
| #endif |