3 #include "core_alloc.h"
7 /* not static so it can be discovered by core_get_data() */
8 struct buflib_context core_ctx
;
10 /* debug test alloc */
11 static int test_alloc
;
12 void core_allocator_init(void)
16 void *start
= buffer_get_buffer(&size
);
17 buflib_init(&core_ctx
, start
, size
);
18 buffer_release_buffer(size
);
20 test_alloc
= core_alloc("test", 112);
23 bool core_test_free(void)
25 bool ret
= test_alloc
> 0;
27 test_alloc
= core_free(test_alloc
);
32 int core_alloc(const char* name
, size_t size
)
34 return buflib_alloc_ex(&core_ctx
, size
, name
, NULL
);
37 int core_alloc_ex(const char* name
, size_t size
, struct buflib_callbacks
*ops
)
39 return buflib_alloc_ex(&core_ctx
, size
, name
, ops
);
42 size_t core_available(void)
44 return buflib_available(&core_ctx
);
47 int core_free(int handle
)
49 return buflib_free(&core_ctx
, handle
);
52 int core_alloc_maximum(const char* name
, size_t *size
, struct buflib_callbacks
*ops
)
54 return buflib_alloc_maximum(&core_ctx
, name
, size
, ops
);
57 bool core_shrink(int handle
, void* new_start
, size_t new_size
)
59 return buflib_shrink(&core_ctx
, handle
, new_start
, new_size
);
62 int core_get_num_blocks(void)
64 return buflib_get_num_blocks(&core_ctx
);
67 void core_print_block_at(int block_num
, char* buf
, size_t bufsize
)
69 buflib_print_block_at(&core_ctx
, block_num
, buf
, bufsize
);