summaryrefslogtreecommitdiff
path: root/kernel/lib/ringbuffer.h
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2024-04-25 21:46:31 +0200
committerAnton Kling <anton@kling.gg>2024-04-25 21:46:31 +0200
commit3df15584d6663b330c344068dce7d36c6f27cf4b (patch)
treedb519e25e2b8bd59d68367d7a2441b18fcd747f6 /kernel/lib/ringbuffer.h
parent0305b0abe4ada656462d575a5e0f0618b42def2d (diff)
Kernel: Add a ringbuffer
This will be used later
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