#ifndef __RMALLOC_H #define __RMALLOC_H /* * File : rmalloc.h * Author : Ronald Kriemann * Purpose : malloc library */ #include /* * supported arguments for mallopt */ /* extra amount of memory to allocate from system in each sbrk-call */ #ifndef M_TOP_PAD # define M_TOP_PAD -2 #endif #ifdef __cplusplus extern "C" { #endif /* * SVID2/XPG mallinfo structure */ #if 0 struct mallinfo { unsigned long arena; /* total space allocated from system */ unsigned long ordblks; /* number of non-inuse chunks */ unsigned long smblks; /* unused -- always zero */ unsigned long hblks; /* number of mmapped regions */ unsigned long hblkhd; /* total space in mmapped regions */ unsigned long usmblks; /* unused -- always zero */ unsigned long fsmblks; /* unused -- always zero */ unsigned long uordblks; /* total allocated space */ unsigned long fordblks; /* total non-inuse space */ unsigned long keepcost; /* top-most, releasable (via malloc_trim) space */ }; #endif /************************************** * * allocation and deallocation * **************************************/ extern void * malloc ( size_t size ); extern void * calloc ( size_t nmemb, size_t size); extern void free ( void * ptr ); extern void * realloc ( void * ptr, size_t size ); /* set malloc options */ extern int mallopt ( int param, int val ); /* report memory usage */ extern struct mallinfo mallinfo ( void ); /* build allocation trace */ extern void malloc_init_trace ( const char * name ); extern void malloc_finish_trace (); /* print statistics */ extern void malloc_stat (); #ifdef __cplusplus } #endif /* * for C++ : overload global new/delete */ /* #ifdef __cplusplus void * operator new ( size_t n ) throw (std::bad_alloc); void * operator new[] ( size_t n ) throw (std::bad_alloc); void operator delete ( void * p ) throw (); void operator delete[] ( void * p ) throw (); #endif */ #endif /* __RMALLOC_H */