dovecot-2.0: liblib: Added pool_alloconly_get_total_used/alloc_s...
dovecot at dovecot.org
dovecot at dovecot.org
Sat Feb 20 17:17:28 EET 2010
details: http://hg.dovecot.org/dovecot-2.0/rev/d7108785c40a
changeset: 10787:d7108785c40a
user: Timo Sirainen <tss at iki.fi>
date: Sat Feb 20 15:17:16 2010 +0200
description:
liblib: Added pool_alloconly_get_total_used/alloc_size() functions.
diffstat:
src/lib/mempool-alloconly.c | 26 ++++++++++++++++++++++++++
src/lib/mempool.h | 7 +++++++
2 files changed, 33 insertions(+), 0 deletions(-)
diffs (48 lines):
diff -r 07059f9aead8 -r d7108785c40a src/lib/mempool-alloconly.c
--- a/src/lib/mempool-alloconly.c Sat Feb 20 15:16:40 2010 +0200
+++ b/src/lib/mempool-alloconly.c Sat Feb 20 15:17:16 2010 +0200
@@ -410,3 +410,29 @@
return apool->block->left;
}
+
+size_t pool_alloconly_get_total_used_size(pool_t pool)
+{
+ struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+ struct pool_block *block;
+ size_t size = 0;
+
+ i_assert(pool->v == &static_alloconly_pool_vfuncs);
+
+ for (block = apool->block; block != NULL; block = block->prev)
+ size += block->size - block->left;
+ return size;
+}
+
+size_t pool_alloconly_get_total_alloc_size(pool_t pool)
+{
+ struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+ struct pool_block *block;
+ size_t size = 0;
+
+ i_assert(pool->v == &static_alloconly_pool_vfuncs);
+
+ for (block = apool->block; block != NULL; block = block->prev)
+ size += block->size + SIZEOF_POOLBLOCK;
+ return size;
+}
diff -r 07059f9aead8 -r d7108785c40a src/lib/mempool.h
--- a/src/lib/mempool.h Sat Feb 20 15:16:40 2010 +0200
+++ b/src/lib/mempool.h Sat Feb 20 15:17:16 2010 +0200
@@ -106,4 +106,11 @@
#define p_get_max_easy_alloc_size(pool) \
(pool)->v->get_max_easy_alloc_size(pool)
+/* These functions are only for pools created with pool_alloconly_create(): */
+
+/* Returns how much memory has been allocated from this pool. */
+size_t pool_alloconly_get_total_used_size(pool_t pool);
+/* Returns how much system memory has been allocated for this pool. */
+size_t pool_alloconly_get_total_alloc_size(pool_t pool);
+
#endif
More information about the dovecot-cvs
mailing list