21 lines
427 B
C
21 lines
427 B
C
#include <libk/ringbuffer.h>
|
|
#include <libk/std.h>
|
|
#include <libk/string.h>
|
|
#include <mm/malloc.h>
|
|
|
|
bool ringbuffer_init(struct ringbuffer* rb, size_t capacity, size_t type_size) {
|
|
void* buf = malloc(capacity * type_size);
|
|
|
|
if (buf == NULL)
|
|
return false;
|
|
|
|
memset(rb, 0, sizeof(*rb));
|
|
|
|
rb->capacity = capacity;
|
|
rb->buffer = buf;
|
|
|
|
return true;
|
|
}
|
|
|
|
void ringbuffer_fini(struct ringbuffer* rb) { free(rb->buffer); }
|