|
csnip
0.1
|
Ring buffers. More...

Go to the source code of this file.
Macros | |
| #define | csnip_ringbuf_Init(head, len, N) |
| Initialize an empty ring buffer. More... | |
| #define | csnip_ringbuf_GetHeadIdx(head, len, N, ret, err) |
| Compute the location of the head in the backing array. More... | |
| #define | csnip_ringbuf_GetTailIdx(head, len, N, ret, err) csnip_ringbuf__GetTailIdx((head), (len), (N), (ret), (err)) |
| Compute the location of the tail in the backing array. More... | |
| #define | csnip_ringbuf_PushHeadIdx(head, len, N, err) csnip_ringbuf__PushHeadIdx((head), (len), (N), (err)) |
| Add an element at the head. More... | |
| #define | csnip_ringbuf_PopHeadIdx(head, len, N, err) csnip_ringbuf__PopHeadIdx((head), (len), (N), (err)) |
| Remove an element from the head. | |
| #define | csnip_ringbuf_PushTailIdx(head, len, N, err) csnip_ringbuf__PushTailIdx((head), (len), (N), (err)) |
| Add an element to the tail. More... | |
| #define | csnip_ringbuf_PopTailIdx(head, len, N, err) csnip_ringbuf__PopTailIdx((head), (len), (N), (err)) |
| Remove an element from the tail. | |
| #define | csnip_ringbuf_IsFull(head, len, N) ((len) == (N)) |
| Check whether a ringbuffer is full. More... | |
| #define | csnip_ringbuf_IsEmpty(head, len, N) ((len) == 0) |
| Check whether a ringbuffer is empty. More... | |
| #define | csnip_ringbuf_CheckIdx(head, len, N, idx, err) csnip_ringbuf__CheckIdx((head), (len), (N), (idx), (err)) |
| Check whether a given index is valid. More... | |
| #define | csnip_ringbuf_AddWrap(N, amount, idx) |
| Compute the sum idx + amount with cyclic wrap. More... | |
| #define | csnip_ringbuf_AddWrapSet(N, amount, idx) |
| Compute idx += amount. More... | |
| #define | csnip_ringbuf_SubWrap(N, amount, idx) |
| Compute idx - amount with cyclic wrap. More... | |
| #define | csnip_ringbuf_SubWrapSet(N, amount, idx) |
| Compute idx -= amount with cyclic wrap. More... | |
| #define | csnip_ringbuf_PushHead(head, len, N, arr, val, err) |
| Add an element to the head. More... | |
| #define | csnip_ringbuf_PopHead(head, len, N, arr, ret, err) |
| Remove an element from the head. More... | |
| #define | csnip_ringbuf_PushTail(head, len, N, arr, val, err) |
| Add an element to the tail. More... | |
| #define | csnip_ringbuf_PopTail(head, len, N, arr, ret, err) |
| Remove an element from the tail. More... | |
| #define | CSNIP_RINGBUF_DECL_IDX_FUNCS(scope, prefix, idx_type, gen_args) |
| Generator macro to declare index functions. More... | |
| #define | CSNIP_RINGBUF_DECL_VAL_FUNCS(scope, prefix, val_type, gen_args) |
| Declare value functions. More... | |
| #define | CSNIP_RINGBUF_DEF_IDX_FUNCS(scope, prefix, idx_type, gen_args, head, len, N, err) |
| Define Ringbuffer index functions. More... | |
| #define | CSNIP_RINGBUF_DEF_VAL_FUNCS(scope, prefix, val_type, gen_args, head, len, N, arr, err) |
| Define Ringbuffer value functions. More... | |