21 #ifndef _LWPA_MEMPOOL_H_
22 #define _LWPA_MEMPOOL_H_
25 #include "lwpa_error.h"
70 #define LWPA_MEMPOOL_DECLARE(name) extern LwpaMempoolDesc name##_pool_desc;
84 #define LWPA_MEMPOOL_DEFINE(name, type, size) \
85 type name##_pool[size]; \
86 struct LwpaMempool name##_pool_list[size]; \
87 struct LwpaMempoolDesc name##_pool_desc = {sizeof(type), \
105 #define lwpa_mempool_init(name) lwpa_mempool_init_priv(&name##_pool_desc)
113 #define lwpa_mempool_alloc(name) lwpa_mempool_alloc_priv(&name##_pool_desc)
124 #define lwpa_mempool_free(name, mem) lwpa_mempool_free_priv(&name##_pool_desc, mem)
134 #define lwpa_mempool_size(name) (name##_pool_desc.pool_size)
140 #define lwpa_mempool_used(name) lwpa_mempool_used_priv(&name##_pool_desc)
lwpa_error_t
A set of error codes that can be returned by library functions.
Definition: lwpa_error.h:37
struct LwpaMempoolDesc LwpaMempoolDesc
(Not for direct usage) A memory pool description structure.
(Not for direct usage) A memory pool description structure.
Definition: lwpa_mempool.h:53
const size_t elem_size
The size of each element.
Definition: lwpa_mempool.h:54
const size_t pool_size
The number of elements in the pool.
Definition: lwpa_mempool.h:55
LwpaMempool *const list
The array of mempool list structs.
Definition: lwpa_mempool.h:57
void *const pool
The actual pool memory.
Definition: lwpa_mempool.h:60
LwpaMempool * freelist
The current freelist.
Definition: lwpa_mempool.h:56
size_t current_used
The number of pool elements that have currently been allocated.
Definition: lwpa_mempool.h:59
Definition: lwpa_mempool.h:45