summaryrefslogtreecommitdiff
path: root/src/secmem.c
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2016-12-07 10:01:39 +0100
committerWerner Koch <wk@gnupg.org>2016-12-07 10:01:39 +0100
commite366c19b34922c770af82cd035fd815680b29dee (patch)
tree04f13b07dc0b4bc2a7bc65d03bcfabb8dc41c513 /src/secmem.c
parent995ce697308320c6a52a307f83dc49eeb8d784b4 (diff)
downloadlibgcrypt-e366c19b34922c770af82cd035fd815680b29dee.tar.gz
tests: New test t-secmem.
* src/secmem.c (_gcry_secmem_dump_stats): Add arg EXTENDED and adjust caller. * src/gcrypt-testapi.h (PRIV_CTL_DUMP_SECMEM_STATS): New. * src/global.c (_gcry_vcontrol): Implement that. * tests/t-secmem.c: New. * tests/Makefile.am (tests_bin): Add that test. -- This test does not much right now. Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'src/secmem.c')
-rw-r--r--src/secmem.c40
1 files changed, 21 insertions, 19 deletions
diff --git a/src/secmem.c b/src/secmem.c
index 1f92f176..54bbda11 100644
--- a/src/secmem.c
+++ b/src/secmem.c
@@ -751,33 +751,35 @@ _gcry_secmem_term ()
}
+/* Print stats of the secmem allocator. With EXTENDED passwed as true
+ * a detiled listing is returned (used for testing). */
void
-_gcry_secmem_dump_stats ()
+_gcry_secmem_dump_stats (int extended)
{
pooldesc_t *pool;
-
-#if 1
- SECMEM_LOCK;
-
- pool = &mainpool;
- if (pool->okay)
- log_info ("secmem usage: %u/%lu bytes in %u blocks\n",
- cur_alloced, (unsigned long)pool->size, cur_blocks);
- SECMEM_UNLOCK;
-#else
memblock_t *mb;
int i;
SECMEM_LOCK;
pool = &mainpool;
- for (i = 0, mb = (memblock_t *) pool->mem;
- ptr_into_pool_p (pool, mb);
- mb = mb_get_next (pool, mb), i++)
- log_info ("SECMEM: [%s] block: %i; size: %i\n",
- (mb->flags & MB_FLAG_ACTIVE) ? "used" : "free",
- i,
- mb->size);
+ if (!extended)
+ {
+ if (pool->okay)
+ log_info ("secmem usage: %u/%lu bytes in %u blocks\n",
+ cur_alloced, (unsigned long)pool->size, cur_blocks);
+ }
+ else
+ {
+ for (i = 0, mb = (memblock_t *) pool->mem;
+ ptr_into_pool_p (pool, mb);
+ mb = mb_get_next (pool, mb), i++)
+ log_info ("SECMEM: pool %p %s block %i size %i\n",
+ pool,
+ (mb->flags & MB_FLAG_ACTIVE) ? "used" : "free",
+ i,
+ mb->size);
+ }
+
SECMEM_UNLOCK;
-#endif
}