| Index: third_party/tcmalloc/chromium/src/google/malloc_hook_c.h
|
| ===================================================================
|
| --- third_party/tcmalloc/chromium/src/google/malloc_hook_c.h (revision 88335)
|
| +++ third_party/tcmalloc/chromium/src/google/malloc_hook_c.h (working copy)
|
| @@ -40,21 +40,44 @@
|
| #include <stddef.h>
|
| #include <sys/types.h>
|
|
|
| +/* 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
|
| +extern "C" {
|
| +#endif
|
| +
|
| /* Get the current stack trace. Try to skip all routines up to and
|
| * and including the caller of MallocHook::Invoke*.
|
| * Use "skip_count" (similarly to GetStackTrace from stacktrace.h)
|
| * as a hint about how many routines to skip if better information
|
| * is not available.
|
| */
|
| +PERFTOOLS_DLL_DECL
|
| int MallocHook_GetCallerStackTrace(void** result, int max_depth,
|
| int skip_count);
|
|
|
| +/* The MallocHook_{Add,Remove}*Hook functions return 1 on success and 0 on
|
| + * failure.
|
| + */
|
|
|
| typedef void (*MallocHook_NewHook)(const void* ptr, size_t size);
|
| -MallocHook_NewHook MallocHook_SetNewHook(MallocHook_NewHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddNewHook(MallocHook_NewHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveNewHook(MallocHook_NewHook hook);
|
|
|
| typedef void (*MallocHook_DeleteHook)(const void* ptr);
|
| -MallocHook_DeleteHook MallocHook_SetDeleteHook(MallocHook_DeleteHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddDeleteHook(MallocHook_DeleteHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveDeleteHook(MallocHook_DeleteHook hook);
|
|
|
| typedef void (*MallocHook_PreMmapHook)(const void *start,
|
| size_t size,
|
| @@ -62,7 +85,10 @@
|
| int flags,
|
| int fd,
|
| off_t offset);
|
| -MallocHook_PreMmapHook MallocHook_SetPreMmapHook(MallocHook_PreMmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddPreMmapHook(MallocHook_PreMmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemovePreMmapHook(MallocHook_PreMmapHook hook);
|
|
|
| typedef void (*MallocHook_MmapHook)(const void* result,
|
| const void* start,
|
| @@ -71,23 +97,77 @@
|
| int flags,
|
| int fd,
|
| off_t offset);
|
| -MallocHook_MmapHook MallocHook_SetMmapHook(MallocHook_MmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddMmapHook(MallocHook_MmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveMmapHook(MallocHook_MmapHook hook);
|
|
|
| +typedef int (*MallocHook_MmapReplacement)(const void* start,
|
| + size_t size,
|
| + int protection,
|
| + int flags,
|
| + int fd,
|
| + off_t offset,
|
| + void** result);
|
| +int MallocHook_SetMmapReplacement(MallocHook_MmapReplacement hook);
|
| +int MallocHook_RemoveMmapReplacement(MallocHook_MmapReplacement hook);
|
| +
|
| typedef void (*MallocHook_MunmapHook)(const void* ptr, size_t size);
|
| -MallocHook_MunmapHook MallocHook_SetMunmapHook(MallocHook_MunmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddMunmapHook(MallocHook_MunmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveMunmapHook(MallocHook_MunmapHook hook);
|
|
|
| +typedef int (*MallocHook_MunmapReplacement)(const void* ptr,
|
| + size_t size,
|
| + int* result);
|
| +int MallocHook_SetMunmapReplacement(MallocHook_MunmapReplacement hook);
|
| +int MallocHook_RemoveMunmapReplacement(MallocHook_MunmapReplacement hook);
|
| +
|
| typedef void (*MallocHook_MremapHook)(const void* result,
|
| const void* old_addr,
|
| size_t old_size,
|
| size_t new_size,
|
| int flags,
|
| const void* new_addr);
|
| -MallocHook_MremapHook MallocHook_SetMremapHook(MallocHook_MremapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddMremapHook(MallocHook_MremapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveMremapHook(MallocHook_MremapHook hook);
|
|
|
| typedef void (*MallocHook_PreSbrkHook)(std::ptrdiff_t increment);
|
| -MallocHook_PreSbrkHook MallocHook_SetPreSbrkHook(MallocHook_PreSbrkHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddPreSbrkHook(MallocHook_PreSbrkHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemovePreSbrkHook(MallocHook_PreSbrkHook hook);
|
|
|
| typedef void (*MallocHook_SbrkHook)(const void* result, std::ptrdiff_t increment);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_AddSbrkHook(MallocHook_SbrkHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +int MallocHook_RemoveSbrkHook(MallocHook_SbrkHook hook);
|
| +
|
| +/* The following are DEPRECATED. */
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_NewHook MallocHook_SetNewHook(MallocHook_NewHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_DeleteHook MallocHook_SetDeleteHook(MallocHook_DeleteHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_PreMmapHook MallocHook_SetPreMmapHook(MallocHook_PreMmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_MmapHook MallocHook_SetMmapHook(MallocHook_MmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_MunmapHook MallocHook_SetMunmapHook(MallocHook_MunmapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_MremapHook MallocHook_SetMremapHook(MallocHook_MremapHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| +MallocHook_PreSbrkHook MallocHook_SetPreSbrkHook(MallocHook_PreSbrkHook hook);
|
| +PERFTOOLS_DLL_DECL
|
| MallocHook_SbrkHook MallocHook_SetSbrkHook(MallocHook_SbrkHook hook);
|
| +/* End of DEPRECATED functions. */
|
|
|
| +#ifdef __cplusplus
|
| +} // extern "C"
|
| +#endif
|
| +
|
| #endif /* _MALLOC_HOOK_C_H_ */
|
|
|