summaryrefslogtreecommitdiff
path: root/include/libk/data/ringbuf.h
diff options
context:
space:
mode:
authorDanny Holman <dholman@gymli.org>2025-01-12 01:17:36 -0600
committerDanny Holman <dholman@gymli.org>2025-01-12 01:19:11 -0600
commit95cd78840f0891e60f5ebecc8a8eb4fbaf3c2ebf (patch)
treec8c35347b50477929727fa5be9f5d0f55cbe18fd /include/libk/data/ringbuf.h
parent5e166f3042a8e7b3031aae4da7006f80caa53ecc (diff)
PROJECT RESTRUCTURING
Move the entire kernel into its own directory. Create new directories for system commands, libraries and other required essentials for a complete Unix-like operating system. Signed-off-by: Danny Holman <dholman@gymli.org>
Diffstat (limited to 'include/libk/data/ringbuf.h')
-rw-r--r--include/libk/data/ringbuf.h50
1 files changed, 0 insertions, 50 deletions
diff --git a/include/libk/data/ringbuf.h b/include/libk/data/ringbuf.h
deleted file mode 100644
index cc6d77b..0000000
--- a/include/libk/data/ringbuf.h
+++ /dev/null
@@ -1,50 +0,0 @@
-#ifndef LIBK_RINGBUF_H
-#define LIBK_RINGBUF_H
-
-#include <kernel/kmalloc.h>
-#include <kernel/string.h>
-#include <stdint.h>
-
-struct ringbuf {
- void *buffer;
- void *buf_end;
- uint32_t capacity;
- uint32_t count;
- uint32_t size;
- void *head;
- void *tail;
-};
-
-static inline void rb_init(struct ringbuf *rb, uint32_t capacity, uint32_t size) {
- rb->buffer = kmalloc(capacity * size);
- rb->buf_end = (char*)rb->buffer + (capacity * size);
- rb->capacity = capacity;
- rb->size = size;
- rb->head = rb->buffer;
- rb->tail = rb->buffer;
-}
-
-static inline int rb_push_back(struct ringbuf *rb, const void *item, size_t size) {
- if (rb->count == rb->capacity)
- return -1;
- if (size > rb->size)
- return -1;
-
- void *tmp = rb->tail + rb->size;
- if (tmp > rb->head + rb->capacity * rb->size)
- rb->tail = rb->head;
- memcpy(rb->tail, item, size);
- rb->tail += rb->size;
- rb->count++;
- return 0;
-}
-
-static inline void rb_pop_front(struct ringbuf *rb, void *item) {
- memcpy(item, rb->tail, rb->size);
- rb->tail = (char*)rb->tail + rb->size;
- if (rb->tail == rb->buf_end)
- rb->tail = rb->buffer;
- rb->count--;
-}
-
-#endif