summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/mem-pool.h
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/mem-pool.h')
-rw-r--r--libglusterfs/src/mem-pool.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/libglusterfs/src/mem-pool.h b/libglusterfs/src/mem-pool.h
index 9b8efbb9..2a064643 100644
--- a/libglusterfs/src/mem-pool.h
+++ b/libglusterfs/src/mem-pool.h
@@ -22,7 +22,10 @@
#include "list.h"
#include "locking.h"
+#include "mem-types.h"
#include <stdlib.h>
+#include <inttypes.h>
+#include <string.h>
#define MALLOC(size) malloc(size)
@@ -34,6 +37,65 @@
ptr = (void *)0xeeeeeeee; \
}
+struct mem_acct {
+ uint32_t num_types;
+ struct mem_acct_rec *rec;
+};
+
+struct mem_acct_rec {
+ size_t size;
+ size_t max_size;
+ uint32_t num_allocs;
+ uint32_t max_num_allocs;
+ gf_lock_t lock;
+};
+
+
+void *
+__gf_calloc (size_t cnt, size_t size, uint32_t type);
+
+void *
+__gf_malloc (size_t size, uint32_t type);
+
+void *
+__gf_realloc (void *ptr, size_t size);
+
+int
+gf_asprintf (char **string_ptr, const char *format, ...);
+
+#define GF_CALLOC(nmemb, size, type) __gf_calloc (nmemb, size, type)
+
+#define GF_MALLOC(size, type) __gf_malloc (size, type)
+
+#define GF_REALLOC(ptr, size) __gf_realloc (ptr, size)
+
+void
+__gf_free (void *ptr);
+
+
+#define GF_FREE(free_ptr) __gf_free (free_ptr);
+
+static inline
+char * gf_strdup (const char *src)
+{
+
+ char *dup_str = NULL;
+ size_t len = 0;
+
+ len = strlen (src) + 1;
+
+ dup_str = GF_CALLOC(1, len, gf_common_mt_strdup);
+
+ if (!dup_str)
+ return NULL;
+
+ memcpy (dup_str, src, len);
+
+ return dup_str;
+}
+
+
+
struct mem_pool {
struct list_head list;
int hot_count;
@@ -55,4 +117,7 @@ void *mem_get (struct mem_pool *pool);
void mem_pool_destroy (struct mem_pool *pool);
+int gf_mem_acct_is_enabled ();
+void gf_mem_acct_enable_set ();
+
#endif /* _MEM_POOL_H */