olaf@13: /* olaf@13: * olaf@13: */ olaf@13: olaf@13: #ifndef MPOOL_H olaf@13: #define MPOOL_H olaf@13: olaf@13: #ifdef __cplusplus olaf@13: extern "C" { olaf@13: #endif olaf@13: olaf@13: typedef void(*ucx_destructor)(void*); olaf@13: olaf@13: typedef struct { olaf@13: void **data; olaf@13: size_t ndata; olaf@13: size_t size; olaf@13: } UcxMempool; olaf@13: olaf@13: #define ucx_mempool_new_default() ucx_mempool_new(16) olaf@13: UcxMempool *ucx_mempool_new(size_t n); universe@15: int ucx_mempool_chcap(UcxMempool *pool, size_t newcap); olaf@13: olaf@13: void *ucx_mempool_malloc(UcxMempool *pool, size_t n); olaf@13: void *ucx_mempool_calloc(UcxMempool *pool, size_t nelem, size_t elsize); olaf@13: void *ucx_mempool_realloc(UcxMempool *pool, void *ptr, size_t n); olaf@13: olaf@13: void ucx_mempool_free(UcxMempool *pool); olaf@13: olaf@13: void ucx_mempool_set_destr(void *ptr, ucx_destructor func); olaf@13: void ucx_mempool_reg_destr(UcxMempool *pool, void *ptr, ucx_destructor destr); olaf@13: olaf@13: olaf@13: #ifdef __cplusplus olaf@13: } olaf@13: #endif olaf@13: olaf@13: #endif /* MPOOL_H */ olaf@13: