blob: d6e699aac6aa86e8e4f58f7b4f52d4fbe98529b0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#ifndef RINGBUFFER_H
#define RINGBUFFER_H
#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);
int ringbuffer_isempty(const struct ringbuffer *rb);
void ringbuffer_free(struct ringbuffer *rb);
u32 ringbuffer_used(const struct ringbuffer *rb);
u32 ringbuffer_capacity(const struct ringbuffer *rb);
u32 ringbuffer_unused(const struct ringbuffer *rb);
#ifdef KERNEL_TEST
void ringbuffer_test(void);
#endif // KERNEL_TEST
#endif // RINGBUFFER_H
|