1 /* (c) 2008, Jack Lange <jarusl@cs.northwestern.edu> */
2 /* (c) 2008, The V3VEE Project <http://www.v3vee.org> */
4 #ifndef __RING_BUFFER_H__
5 #define __RING_BUFFER_H__
8 #include <geekos/ktypes.h>
22 void init_ring_buffer(struct ring_buffer * ring, uint_t size);
23 struct ring_buffer * create_ring_buffer(uint_t size);
25 void free_ring_buffer(struct ring_buffer * ring);
28 int rb_read(struct ring_buffer * ring, char * dst, uint_t len);
29 int rb_peek(struct ring_buffer * ring, char * dst, uint_t len);
30 int rb_delete(struct ring_buffer * ring, uint_t len);
31 int rb_write(struct ring_buffer * ring, char * src, uint_t len);
32 int rb_data_len(struct ring_buffer * ring);
33 int rb_capacity(struct ring_buffer * ring);
36 void print_ring_buffer(struct ring_buffer * ring);
39 #endif // ! __RING_BUFFER_H__