ucx/mempool.h

changeset 16
b4769e4eb4d1
parent 15
2dc4c688c262
child 38
35f67a8ef875
     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 +

mercurial