39 #include <sys/types.h>
43 #if __cplusplus < 201103L
44 #define GRASS_MM_USE_EXCEPTION_SPECIFIER
47 #define MM_REGISTER_VERSION 2
50 #define MM_DEFAULT_MM_SIZE (40 << 20)
82 #ifdef GRASS_CMAKE_BUILD
83 #include <export/grass_iostream_export.h>
85 #define GRASS_IOSTREAM_EXPORT
111 MM_err register_allocation(
size_t sz);
112 MM_err register_deallocation(
size_t sz);
118 MM_err set_memory_limit(
size_t sz);
119 void enforce_memory_limit();
120 void ignore_memory_limit();
121 void warn_memory_limit();
123 void print_limit_mode();
125 size_t memory_available();
126 size_t memory_used();
127 size_t memory_limit();
129 int space_overhead();
134 #ifdef GRASS_MM_USE_EXCEPTION_SPECIFIER
135 void *
operator new(size_t)
throw(std::bad_alloc);
136 void *
operator new[](size_t)
throw(std::bad_alloc);
137 void operator delete(
void *)
throw();
138 void operator delete[](
void *)
throw();
140 void *
operator new(size_t);
141 void *
operator new[](size_t);
142 void operator delete(
void *) noexcept;
143 void operator delete[](
void *) noexcept;
154 static unsigned int count;
@ MM_STREAM_USAGE_OVERHEAD
@ MM_STREAM_USAGE_MAXIMUM
@ MM_STREAM_USAGE_CURRENT
@ MM_ERROR_INSUFFICIENT_SPACE
@ MM_ERROR_EXCESSIVE_ALLOCATION
#define GRASS_IOSTREAM_EXPORT
@ MM_ABORT_ON_MEMORY_EXCEEDED
@ MM_WARN_ON_MEMORY_EXCEEDED
@ MM_IGNORE_MEMORY_EXCEEDED
GRASS_IOSTREAM_EXPORT MM_register MM_manager