halloc.h
1 /*
2  * This file is a part of Hierarchical Allocator library.
3  * Copyright (c) 2004-2011 Alex Pankratov. All rights reserved.
4  *
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