| /* | 
 |  *	Copyright (c) 2004-2010 Alex Pankratov. All rights reserved. | 
 |  * | 
 |  *	Hierarchical memory allocator, 1.2.1 | 
 |  *	http://swapped.cc/halloc | 
 |  */ | 
 |  | 
 | /* | 
 |  *	The program is distributed under terms of BSD license.  | 
 |  *	You can obtain the copy of the license by visiting: | 
 |  *	 | 
 |  *	http://www.opensource.org/licenses/bsd-license.php | 
 |  */ | 
 |  | 
 | #ifndef _LIBP_HALLOC_H_ | 
 | #define _LIBP_HALLOC_H_ | 
 |  | 
 | #include <stddef.h>  /* size_t */ | 
 |  | 
 | /* | 
 |  *	Core API | 
 |  */ | 
 | void * halloc (void * block, size_t len); | 
 | void   hattach(void * block, void * parent); | 
 |  | 
 | /* | 
 |  *	standard malloc/free api | 
 |  */ | 
 | void * h_malloc (size_t len); | 
 | void * h_calloc (size_t n, size_t len); | 
 | void * h_realloc(void * p, size_t len); | 
 | void   h_free   (void * p); | 
 | char * h_strdup (const char * str); | 
 |  | 
 | /* | 
 |  *	the underlying allocator | 
 |  */ | 
 | typedef void * (* realloc_t)(void * ptr, size_t len); | 
 |  | 
 | extern realloc_t halloc_allocator; | 
 |  | 
 | #endif | 
 |  |