ucx/mempool.h

changeset 16
b4769e4eb4d1
parent 15
2dc4c688c262
child 38
35f67a8ef875
equal deleted inserted replaced
15:2dc4c688c262 16:b4769e4eb4d1
1 /*
2 *
3 */
4
5 #ifndef MPOOL_H
6 #define MPOOL_H
7
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11
12 typedef void(*ucx_destructor)(void*);
13
14 typedef struct {
15 void **data;
16 size_t ndata;
17 size_t size;
18 } UcxMempool;
19
20 #define ucx_mempool_new_default() ucx_mempool_new(16)
21 UcxMempool *ucx_mempool_new(size_t n);
22 int ucx_mempool_chcap(UcxMempool *pool, size_t newcap);
23
24 void *ucx_mempool_malloc(UcxMempool *pool, size_t n);
25 void *ucx_mempool_calloc(UcxMempool *pool, size_t nelem, size_t elsize);
26 void *ucx_mempool_realloc(UcxMempool *pool, void *ptr, size_t n);
27
28 void ucx_mempool_free(UcxMempool *pool);
29
30 void ucx_mempool_set_destr(void *ptr, ucx_destructor func);
31 void ucx_mempool_reg_destr(UcxMempool *pool, void *ptr, ucx_destructor destr);
32
33
34 #ifdef __cplusplus
35 }
36 #endif
37
38 #endif /* MPOOL_H */
39

mercurial