summaryrefslogtreecommitdiff
path: root/src/google/tcmalloc.h.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/google/tcmalloc.h.in')
-rw-r--r--src/google/tcmalloc.h.in61
1 files changed, 43 insertions, 18 deletions
diff --git a/src/google/tcmalloc.h.in b/src/google/tcmalloc.h.in
index f49b190..4937c62 100644
--- a/src/google/tcmalloc.h.in
+++ b/src/google/tcmalloc.h.in
@@ -42,37 +42,62 @@
# define __THROW /* __THROW is just an optimization, so ok to make it "" */
#endif
+// Define the version number so folks can check against it
+#define TC_VERSION_MAJOR @TC_VERSION_MAJOR@
+#define TC_VERSION_MINOR @TC_VERSION_MINOR@
+#define TC_VERSION_PATCH "@TC_VERSION_PATCH@"
+#define TC_VERSION_STRING "google-perftools @TC_VERSION_MAJOR@.@TC_VERSION_MINOR@@TC_VERSION_PATCH@"
+
#include <stdlib.h> // for struct mallinfo, if it's defined
+// Annoying stuff for windows -- makes sure clients can import these functions
+#ifndef PERFTOOLS_DLL_DECL
+# ifdef _WIN32
+# define PERFTOOLS_DLL_DECL __declspec(dllimport)
+# else
+# define PERFTOOLS_DLL_DECL
+# endif
+#endif
+
#ifdef __cplusplus
#include <new> // for nothrow_t
extern "C" {
#endif
- void* tc_malloc(size_t size) __THROW;
- void tc_free(void* ptr) __THROW;
- void* tc_realloc(void* ptr, size_t size) __THROW;
- void* tc_calloc(size_t nmemb, size_t size) __THROW;
- void tc_cfree(void* ptr) __THROW;
+ // Returns a human-readable version string. If major, minor,
+ // and/or patch are not NULL, they are set to the major version,
+ // minor version, and patch-code (a string, usually "").
+ PERFTOOLS_DLL_DECL const char* tc_version(int* major, int* minor,
+ const char** patch) __THROW;
+
+ PERFTOOLS_DLL_DECL void* tc_malloc(size_t size) __THROW;
+ PERFTOOLS_DLL_DECL void tc_free(void* ptr) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_realloc(void* ptr, size_t size) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_calloc(size_t nmemb, size_t size) __THROW;
+ PERFTOOLS_DLL_DECL void tc_cfree(void* ptr) __THROW;
- void* tc_memalign(size_t __alignment, size_t __size) __THROW;
- int tc_posix_memalign(void** ptr, size_t align, size_t size) __THROW;
- void* tc_valloc(size_t __size) __THROW;
- void* tc_pvalloc(size_t __size) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_memalign(size_t __alignment,
+ size_t __size) __THROW;
+ PERFTOOLS_DLL_DECL int tc_posix_memalign(void** ptr,
+ size_t align, size_t size) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_valloc(size_t __size) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_pvalloc(size_t __size) __THROW;
- void tc_malloc_stats(void) __THROW;
- int tc_mallopt(int cmd, int value) __THROW;
+ PERFTOOLS_DLL_DECL void tc_malloc_stats(void) __THROW;
+ PERFTOOLS_DLL_DECL int tc_mallopt(int cmd, int value) __THROW;
#if @ac_cv_have_struct_mallinfo@
- struct mallinfo tc_mallinfo(void) __THROW;
+ PERFTOOLS_DLL_DECL struct mallinfo tc_mallinfo(void) __THROW;
#endif
#ifdef __cplusplus
- void* tc_new(size_t size);
- void tc_delete(void* p) __THROW;
- void* tc_newarray(size_t size);
- void tc_deletearray(void* p) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_new(size_t size);
+ PERFTOOLS_DLL_DECL void tc_delete(void* p) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_newarray(size_t size);
+ PERFTOOLS_DLL_DECL void tc_deletearray(void* p) __THROW;
- void* tc_new_nothrow(size_t size, const std::nothrow_t&) __THROW;
- void* tc_newarray_nothrow(size_t size, const std::nothrow_t&) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_new_nothrow(size_t size,
+ const std::nothrow_t&) __THROW;
+ PERFTOOLS_DLL_DECL void* tc_newarray_nothrow(size_t size,
+ const std::nothrow_t&) __THROW;
}
#endif