Veritable Lasagna
An Allocator & Data Structure Library for C.
|
Macros | |
#define | VL_ASYNC_POOL_BLOCK_MIN (1 << 4) |
#define | VL_ASYNC_POOL_BLOCK_MAX (1 << 16) |
Functions | |
void | vlAsyncPoolInit (vl_async_pool *pool, vl_uint16_t elementSize) |
Initializes the specified async pool. | |
void | vlAsyncPoolFree (vl_async_pool *pool) |
Frees the specified async pool, and all associated memory. | |
vl_async_pool * | vlAsyncPoolNew (vl_uint16_t elementSize) |
Allocates and initializes a new async pool. | |
void | vlAsyncPoolDelete (vl_async_pool *pool) |
Deinitializes and deletes the specified async pool, and all associated memory. | |
void | vlAsyncPoolReset (vl_async_pool *pool) |
Resets the specified async pool, returning it to its state when it was first initialized. | |
void | vlAsyncPoolClear (vl_async_pool *pool) |
Resets the state of all blocks and the pool, retaining memory but invalidating taken elements. | |
void * | vlAsyncPoolTake (vl_async_pool *pool) |
Takes an element from the specified async pool. | |
void | vlAsyncPoolReturn (vl_async_pool *pool, void *element) |
Returns an element to the specified async pool. | |
Variables | |
const vl_ularge_t | VL_ASYNC_POOL_BLOCK_ALIGNMENT = 32 |
Byte-level alignment of individual vlAsyncPool memory blocks. | |
const vl_ularge_t | VL_ASYNC_POOL_NODE_ALIGNMENT = 16 |
Byte-level alignment of individual vlAsyncPool element nodes. | |
#define VL_ASYNC_POOL_BLOCK_MAX (1 << 16) |
#define VL_ASYNC_POOL_BLOCK_MIN (1 << 4) |
void vlAsyncPoolClear | ( | vl_async_pool * | pool | ) |
Resets the state of all blocks and the pool, retaining memory but invalidating taken elements.
This does not free any associated memory.
pool | pointer to the async pool to clear |
void vlAsyncPoolDelete | ( | vl_async_pool * | pool | ) |
Deinitializes and deletes the specified async pool, and all associated memory.
The specified pool must have been initialized via vlAsyncPoolNew.
pool | pointer to async pool to delete |
void vlAsyncPoolFree | ( | vl_async_pool * | pool | ) |
Frees the specified async pool, and all associated memory.
The pool must have been initialized via vlAsyncPoolInit.
pool |
void vlAsyncPoolInit | ( | vl_async_pool * | pool, |
vl_uint16_t | elementSize ) |
Initializes the specified async pool.
The pool must be later freed via vlAsyncPoolFree.
pool | pointer to pool that will be initialized |
elementSize | total size of a single element, in bytes. |
vl_async_pool * vlAsyncPoolNew | ( | vl_uint16_t | elementSize | ) |
Allocates and initializes a new async pool.
The specified pool must later be deleted via vlAsyncPoolDelete.
elementSize |
void vlAsyncPoolReset | ( | vl_async_pool * | pool | ) |
Resets the specified async pool, returning it to its state when it was first initialized.
This frees all allocated blocks of nodes up to the first.
pool | pointer to the async pool to reset |
void vlAsyncPoolReturn | ( | vl_async_pool * | pool, |
void * | element ) |
Returns an element to the specified async pool.
pool | pointer to async pool |
element | pointer to returned element |
void * vlAsyncPoolTake | ( | vl_async_pool * | pool | ) |
Takes an element from the specified async pool.
pool | pointer to async pool |
const vl_ularge_t VL_ASYNC_POOL_BLOCK_ALIGNMENT = 32 |
Byte-level alignment of individual vlAsyncPool memory blocks.
const vl_ularge_t VL_ASYNC_POOL_NODE_ALIGNMENT = 16 |
Byte-level alignment of individual vlAsyncPool element nodes.