Main Page | Data Structures | File List | Data Fields | Globals | Related Pages

halloc.h File Reference

A hierarchical memory allocation system. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void * halloc (void *context, size_t size)
 Allocate new memory using specified parent memory context.
void halloc_register_function (void *context, void(*func)(void *), void *data)
 Make the specified function run whenever context is free'd, using data as argument.
void halloc_free (void *context)
 Free memory context and all children contexts.


Detailed Description

A hierarchical memory allocation system.

Works mostly like talloc used in Samba, except that an arbitrary block allocated with malloc() can be registered to be freed by halloc_free.


Function Documentation

void* halloc void *  context,
size_t  size
 

Allocate new memory using specified parent memory context.

Context _must_ be either 0 or the result of a previous call to halloc. The resulting memory is set to zero.

If context is null, the resulting block is a root block, and must be freed with a call to halloc_free().

If context is not null, context must be a halloc root block. the resulting memory block is a child context, and must never be explicitly freed, it will be automatically freed whenever the parent context is freed. Child blocks can also never be used as the context in calls to halloc_register_function, halloc_free, etc.

void halloc_free void *  context  ) 
 

Free memory context and all children contexts.

Only root contexts may be freed explicitly.

All functions registered with halloc_register_function are run in the order they where added. Afterwards, all memory allocated using halloc itself is free'd.

context a halloc root block

void halloc_register_function void *  context,
void(*)(void *)  func,
void *  data
 

Make the specified function run whenever context is free'd, using data as argument.

context a halloc root block


Generated on Sun Jan 13 02:52:50 2008 for fish by  doxygen 1.4.4