1 /* 2 * Copyright (c) 2004-2010 Alex Pankratov. All rights reserved. 3 * 4 * Hierarchical memory allocator, 1.2.1 5 * http://swapped.cc/halloc 6 */ 7 8 /* 9 * The program is distributed under terms of BSD license. 10 * You can obtain the copy of the license by visiting: 11 * 12 * http://www.opensource.org/licenses/bsd-license.php 13 */ 14 15 #ifndef _LIBP_HALLOC_H_ 16 #define _LIBP_HALLOC_H_ 17 18 #include <stddef.h> /* size_t */ 19 20 /* 21 * Core API 22 */ 23 void * halloc (void * block, size_t len); 24 void hattach(void * block, void * parent); 25 26 /* 27 * standard malloc/free api 28 */ 29 void * h_malloc (size_t len); 30 void * h_calloc (size_t n, size_t len); 31 void * h_realloc(void * p, size_t len); 32 void h_free (void * p); 33 char * h_strdup (const char * str); 34 35 /* 36 * the underlying allocator 37 */ 38 typedef void * (* realloc_t)(void * ptr, size_t len); 39 40 extern realloc_t halloc_allocator; 41 42 #endif 43 44