summaryrefslogtreecommitdiff
path: root/kernel/lib
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/lib')
-rw-r--r--kernel/lib/ringbuffer.c4
-rw-r--r--kernel/lib/ringbuffer.h4
2 files changed, 8 insertions, 0 deletions
diff --git a/kernel/lib/ringbuffer.c b/kernel/lib/ringbuffer.c
index 425971d..66dd17e 100644
--- a/kernel/lib/ringbuffer.c
+++ b/kernel/lib/ringbuffer.c
@@ -65,6 +65,10 @@ u32 ringbuffer_read(struct ringbuffer *rb, u8 *buffer, u32 len) {
return orig_len - len;
}
+int ringbuffer_isempty(const struct ringbuffer *rb) {
+ return (rb->write_ptr == rb->read_ptr);
+}
+
void ringbuffer_free(struct ringbuffer *rb) {
kfree(rb->buffer);
rb->buffer = NULL;
diff --git a/kernel/lib/ringbuffer.h b/kernel/lib/ringbuffer.h
index c329af3..3ebc507 100644
--- a/kernel/lib/ringbuffer.h
+++ b/kernel/lib/ringbuffer.h
@@ -1,3 +1,5 @@
+#ifndef RINGBUFFER_H
+#define RINGBUFFER_H
#include <typedefs.h>
struct ringbuffer {
@@ -10,7 +12,9 @@ struct ringbuffer {
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);
+int ringbuffer_isempty(const struct ringbuffer *rb);
void ringbuffer_free(struct ringbuffer *rb);
#ifdef KERNEL_TEST
void ringbuffer_test(void);
#endif // KERNEL_TEST
+#endif // RINGBUFFER_H