summaryrefslogtreecommitdiff
path: root/kernel/lib/ringbuffer.h
blob: c329af3f95143d60ef56e7f7ab2c265351fad3be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <typedefs.h>

struct ringbuffer {
  u8 *buffer;
  u32 buffer_size;
  u32 read_ptr;
  u32 write_ptr;
};

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);
void ringbuffer_free(struct ringbuffer *rb);
#ifdef KERNEL_TEST
void ringbuffer_test(void);
#endif // KERNEL_TEST