diff options
author | Anton Kling <anton@kling.gg> | 2024-04-29 18:00:20 +0200 |
---|---|---|
committer | Anton Kling <anton@kling.gg> | 2024-04-29 18:00:20 +0200 |
commit | 7d2ab3a71f4bda9d8ee997764d98b29e13a902c5 (patch) | |
tree | 6dcdc7a674a8047a2dba3e95d3be91b4e3161bd5 /kernel/lib/ringbuffer.c | |
parent | d60fa1fc01e600c4a163bbe82fab3f1986cb1476 (diff) |
Kernel/Socket: Move sockets back to being file descriptors
Diffstat (limited to 'kernel/lib/ringbuffer.c')
-rw-r--r-- | kernel/lib/ringbuffer.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/kernel/lib/ringbuffer.c b/kernel/lib/ringbuffer.c index 66dd17e..9caf555 100644 --- a/kernel/lib/ringbuffer.c +++ b/kernel/lib/ringbuffer.c @@ -16,6 +16,23 @@ int ringbuffer_init(struct ringbuffer *rb, u32 buffer_size) { return 1; } +u32 ringbuffer_used(const struct ringbuffer *rb) { + if (rb->write_ptr < rb->read_ptr) { + u32 c = rb->buffer_size - rb->read_ptr; + c += rb->write_ptr; + return c; + } + return rb->write_ptr - rb->read_ptr; +} + +u32 ringbuffer_capacity(const struct ringbuffer *rb) { + return rb->buffer_size - 1; +} + +u32 ringbuffer_unused(const struct ringbuffer *rb) { + return ringbuffer_capacity(rb) - ringbuffer_used(rb); +} + u32 ringbuffer_write(struct ringbuffer *rb, const u8 *buffer, u32 len) { const u32 orig_len = len; for (; len > 0;) { |