00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef MEMORY_H
00022 #define MEMORY_H
00023
00024
00025 #ifdef __cplusplus
00026 #include <cstddef>
00027 #else
00028 #include <stddef.h>
00029 #endif
00030
00031 #ifdef fid_ENABLE_MEMORY_PROFILING
00032 #ifdef __cplusplus
00033 #include <cstdio>
00034 #else
00035 #include <stdio.h>
00036 #endif
00037 #define malloc(s) fid_memory_malloc(s)
00038 #define calloc(n,s) fid_memory_calloc(n,s)
00039 #define realloc(p,s) fid_memory_realloc(p,s)
00040 #define strdup(s) fid_memory_strdup(s)
00041 #define free(p) fid_memory_free(p)
00042 #endif
00043
00044 #ifdef __cplusplus
00045 extern "C" {
00046 #endif
00047 #if defined fid_ENABLE_MEMORY_PROFILING || defined fid_MEMORY_INTERNAL
00048
00049 void *fid_memory_malloc(size_t size);
00050
00051 void *fid_memory_calloc(size_t nmemb, size_t size);
00052
00053 void *fid_memory_realloc(void *ptr, size_t size);
00054
00055 char *fid_memory_strdup(const char *s);
00056 void fid_memory_free(void *ptr);
00057 void fid_memory_query(size_t *peak, size_t *current, fid_Uint64 *allocs,
00058 fid_Uint64 *frees, fid_Uint64 *total);
00059 void fid_memory_show_usage(FILE *stream);
00060 #else
00061
00062 #define fid_memory_query(P,C,A,F,T)
00063
00064 #define fid_memory_show_usage(S)
00065 #endif
00066 #ifdef __cplusplus
00067 }
00068 #endif
00069
00070
00071 #endif