+/** @file mymemory.h
+ * @brief Memory allocation functions.
+ */
+
#ifndef _MY_MEMORY_H
#define _MY_MEMORY_H
#include <stdlib.h>
#include <limits>
-#define MEMALLOC void *operator new( size_t size ){ \
- return MYMALLOC( size );\
- }\
- void operator delete( void *p, size_t size ){ \
- MYFREE( p ); \
- }\
- void *operator new[]( size_t size ){ \
- return MYMALLOC( size );\
- }\
- void operator delete[]( void *p, size_t size ){\
- MYFREE( p );\
- }
+#define MEMALLOC \
+ void * operator new(size_t size) { \
+ return MYMALLOC(size);\
+ }\
+ void operator delete(void *p, size_t size) { \
+ MYFREE( p ); \
+ }\
+ void * operator new[](size_t size) { \
+ return MYMALLOC(size);\
+ }\
+ void operator delete[](void *p, size_t size) {\
+ MYFREE(p);\
+ }
+
+/* Empty define; represents opposite of MEMALLOC */
+#define SNAPSHOTALLOC
void *MYMALLOC(size_t size);
void MYFREE(void *ptr);
-void AddUserHeapToSnapshot();
+
+void system_free( void * ptr );
+void *system_malloc( size_t size );
/*
The following code example is taken from the book
The C++ Standard Library - A Tutorial and Reference
return false;
}
-
#ifdef __cplusplus
extern "C" {
#endif
typedef void * mspace;
extern void* mspace_malloc(mspace msp, size_t bytes);
extern void mspace_free(mspace msp, void* mem);
+extern void* mspace_realloc(mspace msp, void* mem, size_t newsize);
+extern void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size);
extern mspace create_mspace_with_base(void* base, size_t capacity, int locked);
extern mspace create_mspace(size_t capacity, int locked);
+extern mspace mySpace;
+extern void * basemySpace;
#ifdef __cplusplus
}; /* end of extern "C" */
#endif
-#endif
+
+#endif /* _MY_MEMORY_H */