diff options
Diffstat (limited to 'include/libtf')
-rw-r--r-- | include/libtf/heap.h | 3 | ||||
-rw-r--r-- | include/libtf/memory.h | 22 |
2 files changed, 24 insertions, 1 deletions
diff --git a/include/libtf/heap.h b/include/libtf/heap.h index 3a16159..72c675a 100644 --- a/include/libtf/heap.h +++ b/include/libtf/heap.h @@ -14,6 +14,7 @@ #define TF_HEAP_H #include <libtf/defines.h> +#include <libtf/memory.h> #define TF_HEAP_D 4 #define TF_HEAP_ITEM0 (TF_HEAP_D - 1) @@ -78,7 +79,7 @@ static inline void tf_heap_destroy(struct tf_heap_head *head) { if (head->item) - free(head->item); + tf_bmem_free(head->item, head->allocated * sizeof(struct tf_heap_child)); head->item = NULL; head->num_items = 0; head->allocated = 0; diff --git a/include/libtf/memory.h b/include/libtf/memory.h new file mode 100644 index 0000000..04c2242 --- /dev/null +++ b/include/libtf/memory.h @@ -0,0 +1,22 @@ +/* memory.h - libtf memory allocator + * + * Copyright (C) 2009-2010 Timo Teräs <timo.teras@iki.fi> + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 or later as + * published by the Free Software Foundation. + * + * See http://www.gnu.org/ for details. + */ + +#ifndef TF_MEMORY_H +#define TF_MEMORY_H + +/* Big/bulk memory allocation using mmap() or similar */ +void *tf_bmem_alloc(size_t size); +void *tf_bmem_resize(void *ptr, size_t oldsize, size_t newsize); +void tf_bmem_free(void *ptr, size_t size); + +#endif + |