10 #ifndef MSGPACK_ZONE_H
11 #define MSGPACK_ZONE_H
52 #ifndef MSGPACK_ZONE_CHUNK_SIZE
53 #define MSGPACK_ZONE_CHUNK_SIZE 8192
66 static inline void* msgpack_zone_malloc(
msgpack_zone* zone,
size_t size);
67 static inline void* msgpack_zone_malloc_no_align(
msgpack_zone* zone,
size_t size);
69 static inline bool msgpack_zone_push_finalizer(
msgpack_zone* zone,
70 void (*func)(
void*
data),
void*
data);
83 #ifndef MSGPACK_ZONE_ALIGN
84 #define MSGPACK_ZONE_ALIGN sizeof(void*)
90 static inline void* msgpack_zone_malloc_no_align(
msgpack_zone* zone,
size_t size)
106 static inline void* msgpack_zone_malloc(
msgpack_zone* zone,
size_t size)
114 size_t adjusted_size = size + (size_t)(aligned - zone->
chunk_list.
ptr);
131 void (*func)(
void*
data),
void*
data);
133 static inline bool msgpack_zone_push_finalizer(
msgpack_zone* zone,
134 void (*func)(
void*
data),
void*
data)
MSGPACK_DLLEXPORT void msgpack_zone_free(msgpack_zone *zone)
struct msgpack_zone_chunk_list msgpack_zone_chunk_list
MSGPACK_DLLEXPORT msgpack_zone * msgpack_zone_new(size_t chunk_size)
struct msgpack_zone_chunk msgpack_zone_chunk
Definition: zone.h:38
MSGPACK_DLLEXPORT bool msgpack_zone_init(msgpack_zone *zone, size_t chunk_size)
MSGPACK_DLLEXPORT bool msgpack_zone_is_empty(msgpack_zone *zone)
struct msgpack_zone_finalizer_array msgpack_zone_finalizer_array
MSGPACK_DLLEXPORT void msgpack_zone_clear(msgpack_zone *zone)
MSGPACK_DLLEXPORT void msgpack_zone_destroy(msgpack_zone *zone)
struct msgpack_zone msgpack_zone
struct msgpack_zone_finalizer msgpack_zone_finalizer
msgpack_zone_chunk * head
Definition: zone.h:43
char * ptr
Definition: zone.h:42
size_t free
Definition: zone.h:41
msgpack_zone_finalizer * array
Definition: zone.h:34
msgpack_zone_finalizer * tail
Definition: zone.h:32
msgpack_zone_finalizer * end
Definition: zone.h:33
void * data
Definition: zone.h:28
void(* func)(void *data)
Definition: zone.h:27
size_t chunk_size
Definition: zone.h:49
msgpack_zone_chunk_list chunk_list
Definition: zone.h:47
msgpack_zone_finalizer_array finalizer_array
Definition: zone.h:48
const char * data
Definition: unpack_template.h:94
MSGPACK_DLLEXPORT void * msgpack_zone_malloc_expand(msgpack_zone *zone, size_t size)
bool msgpack_zone_push_finalizer_expand(msgpack_zone *zone, void(*func)(void *data), void *data)
#define MSGPACK_ZONE_ALIGN
Definition: zone.h:84