summaryrefslogtreecommitdiff
path: root/tools/src/ringbuffer.h
diff options
context:
space:
mode:
authormagh <magh@maghmogh.com>2023-03-06 18:44:55 -0600
committermagh <magh@maghmogh.com>2023-03-06 18:44:55 -0600
commite80d9d8871b325a04b18f90a9ea4bb7fd148fb25 (patch)
tree79dbdb8506b7ff1e92549188d1b94cfc0b3503ae /tools/src/ringbuffer.h
add m1n1HEADmaster
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