diff options
Diffstat (limited to 'kernel/lib')
-rw-r--r-- | kernel/lib/ringbuffer.c | 4 | ||||
-rw-r--r-- | kernel/lib/ringbuffer.h | 4 |
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 |