11 typedef struct ll_ringbuffer ll_ringbuffer_t;
12 typedef struct ll_ringbuffer_data {
15 } ll_ringbuffer_data_t;
23 ll_ringbuffer_t *ll_ringbuffer_create(
size_t sz,
size_t elem_sz,
int limit_writes);
25 void ll_ringbuffer_free(ll_ringbuffer_t *rb);
27 void ll_ringbuffer_reset(ll_ringbuffer_t *rb);
34 void ll_ringbuffer_get_read_vector(
const ll_ringbuffer_t *rb, ll_ringbuffer_data_t vec[2]);
40 void ll_ringbuffer_get_write_vector(
const ll_ringbuffer_t *rb, ll_ringbuffer_data_t vec[2]);
46 size_t ll_ringbuffer_read_space(
const ll_ringbuffer_t *rb);
51 size_t ll_ringbuffer_read(ll_ringbuffer_t *rb,
char *dest,
size_t cnt);
56 size_t ll_ringbuffer_peek(ll_ringbuffer_t *rb,
char *dest,
size_t cnt);
58 void ll_ringbuffer_read_advance(ll_ringbuffer_t *rb,
size_t cnt);
64 size_t ll_ringbuffer_write_space(
const ll_ringbuffer_t *rb);
69 size_t ll_ringbuffer_write(ll_ringbuffer_t *rb,
const char *src,
size_t cnt);
71 void ll_ringbuffer_write_advance(ll_ringbuffer_t *rb,
size_t cnt);