diff options
Diffstat (limited to 'lib/memory_vty.c')
| -rw-r--r-- | lib/memory_vty.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/lib/memory_vty.c b/lib/memory_vty.c index 972914bf24..9ee2e52ec7 100644 --- a/lib/memory_vty.c +++ b/lib/memory_vty.c @@ -21,9 +21,12 @@ #include <zebra.h> /* malloc.h is generally obsolete, however GNU Libc mallinfo wants it. */ -#if (defined(GNU_LINUX) && defined(HAVE_MALLINFO)) +#ifdef HAVE_MALLOC_H #include <malloc.h> -#endif /* HAVE_MALLINFO */ +#endif +#ifdef HAVE_MALLOC_MALLOC_H +#include <malloc/malloc.h> +#endif #include <dlfcn.h> #include <link.h> @@ -76,12 +79,21 @@ static int qmem_walker(void *arg, struct memgroup *mg, struct memtype *mt) if (mt->n_alloc != 0) { char size[32]; snprintf(size, sizeof(size), "%6zu", mt->size); - vty_out(vty, "%-30s: %10zu %s\n", mt->name, + +#ifdef HAVE_MALLOC_USABLE_SIZE +#define TSTR " %9zu" +#define TARG , mt->total +#else +#define TSTR "" +#define TARG +#endif + vty_out(vty, "%-30s: %10zu %-16s"TSTR"\n", mt->name, mt->n_alloc, mt->size == 0 ? "" : mt->size == SIZE_VAR ? "(variably sized)" - : size); + : size + TARG); } } return 0; |
