summaryrefslogtreecommitdiff
path: root/kernel/lib/ringbuffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/lib/ringbuffer.h')
-rw-r--r--kernel/lib/ringbuffer.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/lib/ringbuffer.h b/kernel/lib/ringbuffer.h
new file mode 100644
index 0000000..c329af3
--- /dev/null
+++ b/kernel/lib/ringbuffer.h
@@ -0,0 +1,16 @@
+#include <typedefs.h>
+
+struct ringbuffer {
+ u8 *buffer;
+ u32 buffer_size;
+ u32 read_ptr;
+ u32 write_ptr;
+};
+
+int ringbuffer_init(struct ringbuffer *rb, u32 buffer_size);
+u32 ringbuffer_write(struct ringbuffer *rb, const u8 *buffer, u32 len);
+u32 ringbuffer_read(struct ringbuffer *rb, u8 *buffer, u32 len);
+void ringbuffer_free(struct ringbuffer *rb);
+#ifdef KERNEL_TEST
+void ringbuffer_test(void);
+#endif // KERNEL_TEST