summaryrefslogtreecommitdiff
path: root/tools/src/ringbuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/src/ringbuffer.h')
-rw-r--r--tools/src/ringbuffer.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/tools/src/ringbuffer.h b/tools/src/ringbuffer.h
new file mode 100644
index 0000000..553ae76
--- /dev/null
+++ b/tools/src/ringbuffer.h
@@ -0,0 +1,22 @@
+#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