3 #include "core_alloc.h"
7 /* not static so it can be discovered by core_get_data() */
8 struct buflib_context core_ctx
;
9 void core_allocator_init(void)
13 void *start
= buffer_get_buffer(&size
);
14 buflib_init(&core_ctx
, start
, size
);
15 buffer_release_buffer(size
);
18 int core_alloc(const char* name
, size_t size
)
20 return buflib_alloc_ex(&core_ctx
, size
, name
, NULL
);
23 int core_alloc_ex(const char* name
, size_t size
, struct buflib_callbacks
*ops
)
25 return buflib_alloc_ex(&core_ctx
, size
, name
, ops
);
28 size_t core_available(void)
30 return buflib_available(&core_ctx
);
33 int core_free(int handle
)
35 return buflib_free(&core_ctx
, handle
);
38 int core_alloc_maximum(const char* name
, size_t *size
, struct buflib_callbacks
*ops
)
40 return buflib_alloc_maximum(&core_ctx
, name
, size
, ops
);
43 bool core_shrink(int handle
, void* new_start
, size_t new_size
)
45 return buflib_shrink(&core_ctx
, handle
, new_start
, new_size
);
48 int core_get_num_blocks(void)
50 return buflib_get_num_blocks(&core_ctx
);
53 void core_print_block_at(int block_num
, char* buf
, size_t bufsize
)
55 buflib_print_block_at(&core_ctx
, block_num
, buf
, bufsize
);