diff options
Diffstat (limited to 'kernel/lib')
-rw-r--r-- | kernel/lib/buffered_write.c | 1 | ||||
-rw-r--r-- | kernel/lib/relist.c | 1 | ||||
-rw-r--r-- | kernel/lib/ringbuffer.c | 6 |
3 files changed, 6 insertions, 2 deletions
diff --git a/kernel/lib/buffered_write.c b/kernel/lib/buffered_write.c index b6b78f9..8642c89 100644 --- a/kernel/lib/buffered_write.c +++ b/kernel/lib/buffered_write.c @@ -1,5 +1,6 @@ #include <kmalloc.h> #include <lib/buffered_write.h> +#include <string.h> int buffered_init(struct buffered *ctx, u16 size) { ctx->data = kmalloc(size); diff --git a/kernel/lib/relist.c b/kernel/lib/relist.c index a2f9ce5..01af884 100644 --- a/kernel/lib/relist.c +++ b/kernel/lib/relist.c @@ -2,6 +2,7 @@ #include <kmalloc.h> #include <lib/relist.h> #include <math.h> +#include <string.h> void relist_init(struct relist *list) { list->bitmap_capacity = 1; diff --git a/kernel/lib/ringbuffer.c b/kernel/lib/ringbuffer.c index 9caf555..643e6b9 100644 --- a/kernel/lib/ringbuffer.c +++ b/kernel/lib/ringbuffer.c @@ -74,9 +74,11 @@ u32 ringbuffer_read(struct ringbuffer *rb, u8 *buffer, u32 len) { } read_len = min(len, read_len); - memcpy(buffer, rb->buffer + rb->read_ptr, read_len); + if (buffer) { + memcpy(buffer, rb->buffer + rb->read_ptr, read_len); + buffer += read_len; + } len -= read_len; - buffer += read_len; rb->read_ptr = (rb->read_ptr + read_len) % rb->buffer_size; } return orig_len - len; |