ucx/allocator.h

changeset 107
86b19c98b5fd
parent 103
08018864fb91
child 118
151f5345f303
equal deleted inserted replaced
106:a54115d554f7 107:86b19c98b5fd
36 #endif 36 #endif
37 37
38 typedef void*(*ucx_allocator_malloc)(void *pool, size_t n); 38 typedef void*(*ucx_allocator_malloc)(void *pool, size_t n);
39 typedef void*(*ucx_allocator_calloc)(void *pool, size_t n, size_t size); 39 typedef void*(*ucx_allocator_calloc)(void *pool, size_t n, size_t size);
40 typedef void*(*ucx_allocator_realloc)(void *pool, void *data, size_t n); 40 typedef void*(*ucx_allocator_realloc)(void *pool, void *data, size_t n);
41 typedef void(*ucx_allocator_free)(void *pool, void *data);
41 42
42 typedef struct { 43 typedef struct {
43 void *pool; 44 void *pool;
44 ucx_allocator_malloc malloc; 45 ucx_allocator_malloc malloc;
45 ucx_allocator_calloc calloc; 46 ucx_allocator_calloc calloc;
46 ucx_allocator_realloc realloc; 47 ucx_allocator_realloc realloc;
48 ucx_allocator_free free;
47 } UcxAllocator; 49 } UcxAllocator;
50
51 UcxAllocator *ucx_default_allocator();
48 52
49 void *ucx_default_malloc(void *ignore, size_t n); 53 void *ucx_default_malloc(void *ignore, size_t n);
50 void *ucx_default_calloc(void *ignore, size_t n, size_t size); 54 void *ucx_default_calloc(void *ignore, size_t n, size_t size);
51 void *ucx_default_realloc(void *ignore, void *data, size_t n); 55 void *ucx_default_realloc(void *ignore, void *data, size_t n);
56 void ucx_default_free(void *ignore, void *data);
52 57
53 #define UCX_ALLOCATOR_DEFAULT {NULL, \ 58 #define UCX_ALLOCATOR_DEFAULT {NULL, \
54 ucx_default_malloc, ucx_default_calloc, ucx_default_realloc} 59 ucx_default_malloc, ucx_default_calloc, ucx_default_realloc, \
60 ucx_default_free }
55 61
56 #ifdef __cplusplus 62 #ifdef __cplusplus
57 } 63 }
58 #endif 64 #endif
59 65

mercurial