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