1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/ucx/mempool.h Sat Dec 31 22:46:27 2011 +0100 1.3 @@ -0,0 +1,39 @@ 1.4 +/* 1.5 + * 1.6 + */ 1.7 + 1.8 +#ifndef MPOOL_H 1.9 +#define MPOOL_H 1.10 + 1.11 +#ifdef __cplusplus 1.12 +extern "C" { 1.13 +#endif 1.14 + 1.15 +typedef void(*ucx_destructor)(void*); 1.16 + 1.17 +typedef struct { 1.18 + void **data; 1.19 + size_t ndata; 1.20 + size_t size; 1.21 +} UcxMempool; 1.22 + 1.23 +#define ucx_mempool_new_default() ucx_mempool_new(16) 1.24 +UcxMempool *ucx_mempool_new(size_t n); 1.25 +int ucx_mempool_chcap(UcxMempool *pool, size_t newcap); 1.26 + 1.27 +void *ucx_mempool_malloc(UcxMempool *pool, size_t n); 1.28 +void *ucx_mempool_calloc(UcxMempool *pool, size_t nelem, size_t elsize); 1.29 +void *ucx_mempool_realloc(UcxMempool *pool, void *ptr, size_t n); 1.30 + 1.31 +void ucx_mempool_free(UcxMempool *pool); 1.32 + 1.33 +void ucx_mempool_set_destr(void *ptr, ucx_destructor func); 1.34 +void ucx_mempool_reg_destr(UcxMempool *pool, void *ptr, ucx_destructor destr); 1.35 + 1.36 + 1.37 +#ifdef __cplusplus 1.38 +} 1.39 +#endif 1.40 + 1.41 +#endif /* MPOOL_H */ 1.42 +