|
struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_new (size_t sizeof_payload, uint64_t chunk_size, struct Buffered_LIFO_chunk *prev) |
| Allocates an empty Buffered_LIFO_chunk pointing to prev. More...
|
|
void | Buffered_LIFO_chunk_release (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload, void(*free_func)(void *)) |
| Releases a Buffered_LIFO_chunk note that it does not recurses over previous chunks. More...
|
|
struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_push (struct Buffered_LIFO_chunk *chunk, void *elem, size_t sizeof_payload, uint64_t chunk_size) |
| Push a new elem in the Buffered_LIFO_chunk. More...
|
|
struct Buffered_LIFO_chunk * | Buffered_LIFO_chunk_pop (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload, uint64_t chunk_size, void *elem, int *did_ret) |
| Get an element from the Buffered_LIFO_chunk. More...
|
|
void * | Buffered_LIFO_chunk_head (struct Buffered_LIFO_chunk *chunk, size_t sizeof_payload) |
| Get a pointer to the Buffered_LIFO_chunk head eleme (NULL if none) More...
|
|
void | Buffered_LIFO_init (struct Buffered_LIFO *lifo, size_t sizeof_payload, uint64_t chunk_size) |
| Initializes a Buffered_LIFO ready to contains elems of size sizeof_payload with chunk_size chunks. More...
|
|
void | Buffered_LIFO_release (struct Buffered_LIFO *lifo, void(*free_func)(void *)) |
| Releases a Buffered_LIFO and all its chunks. More...
|
|
void | Buffered_LIFO_push (struct Buffered_LIFO *lifo, void *elem) |
| Push an element of size sizeof_payload in the Buffered_LIFO. More...
|
|
void * | Buffered_LIFO_pop (struct Buffered_LIFO *lifo, void *elem) |
| Push an element of size sizeof_payload in the Buffered_LIFO. More...
|
|
void * | Buffered_LIFO_head (struct Buffered_LIFO *lifo) |
| Get a reference to the head element of the Buffered_LIFO note that as no lock is held this reference can be invalidated by another thread. In such context you can use Buffered_LIFO_head_locked instead. More...
|
|
void * | Buffered_LIFO_head_locked (struct Buffered_LIFO *lifo) |
| Get a reference to the head element of the Buffered_LIFO but keeps the LIFO locked in order to allow thread safe manipulation of the head. Note that Buffered_LIFO_head_unlock must be called to unlock the LIFO after ! More...
|
|
void | Buffered_LIFO_head_unlock (struct Buffered_LIFO *lifo) |
| Unlocks the Buffered_LIFO after a call to Buffered_LIFO_head. More...
|
|