/* * 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