Go to the documentation of this file.
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 + (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_destroy(msgpack_zone *zone)
size_t free
Definition: zone.h:41
void * data
Definition: zone.h:28
msgpack_zone_finalizer * end
Definition: zone.h:33
#define MSGPACK_DLLEXPORT
Definition: sysdep.h:42
struct msgpack_zone_finalizer_array msgpack_zone_finalizer_array
msgpack_zone_chunk_list chunk_list
Definition: zone.h:47
struct msgpack_zone_chunk msgpack_zone_chunk
Definition: zone.h:38
MSGPACK_DLLEXPORT msgpack_zone * msgpack_zone_new(size_t chunk_size)
size_t chunk_size
Definition: zone.h:49
bool msgpack_zone_push_finalizer_expand(msgpack_zone *zone, void(*func)(void *data), void *data)
msgpack_zone_finalizer * array
Definition: zone.h:34
struct msgpack_zone msgpack_zone
void(* func)(void *data)
Definition: zone.h:27
MSGPACK_DLLEXPORT void * msgpack_zone_malloc_expand(msgpack_zone *zone, size_t size)
char * ptr
Definition: zone.h:42
const char * data
Definition: unpack_template.h:89
MSGPACK_DLLEXPORT bool msgpack_zone_init(msgpack_zone *zone, size_t chunk_size)
MSGPACK_DLLEXPORT void msgpack_zone_free(msgpack_zone *zone)
msgpack_zone_chunk * head
Definition: zone.h:43
msgpack_zone_finalizer_array finalizer_array
Definition: zone.h:48
MSGPACK_DLLEXPORT void msgpack_zone_clear(msgpack_zone *zone)
struct msgpack_zone_finalizer msgpack_zone_finalizer
MSGPACK_DLLEXPORT bool msgpack_zone_is_empty(msgpack_zone *zone)
#define MSGPACK_ZONE_ALIGN
Definition: zone.h:84
struct msgpack_zone_chunk_list msgpack_zone_chunk_list
msgpack_zone_finalizer * tail
Definition: zone.h:32