Adding a human-readable size for block constraints is useful. For:
$ ./run nbdinfo -- [ nbdkit memory \
--filter=blocksize-policy blocksize-preferred=32k 1M ] | grep pref
this changes pre-patch:
block_size_preferred: 32768
to post-patch:
block_size_preferred: 32768 (32K)
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
info/show.c | 26 +++++++++++++++++++-------
1 file changed, 19 insertions(+), 7 deletions(-)
diff --git a/info/show.c b/info/show.c
index 6aeffb54..ac483f34 100644
--- a/info/show.c
+++ b/info/show.c
@@ -35,6 +35,7 @@
#include "nbdinfo.h"
static void show_boolean (const char *name, bool cond);
+static void show_size (const char *name, int64_t size);
static int collect_context (void *opaque, const char *name);
static char *get_content (struct nbd_handle *, int64_t size);
@@ -181,13 +182,9 @@ show_one_export (struct nbd_handle *nbd, const char *desc,
show_boolean ("can_trim", can_trim);
if (can_zero >= 0)
show_boolean ("can_zero", can_zero);
- if (block_minimum > 0)
- fprintf (fp, "\t%s: %" PRId64 "\n",
"block_size_minimum", block_minimum);
- if (block_preferred > 0)
- fprintf (fp, "\t%s: %" PRId64 "\n",
"block_size_preferred",
- block_preferred);
- if (block_maximum > 0)
- fprintf (fp, "\t%s: %" PRId64 "\n",
"block_size_maximum", block_maximum);
+ show_size ("block_size_minimum", block_minimum);
+ show_size ("block_size_preferred", block_preferred);
+ show_size ("block_size_maximum", block_maximum);
}
else {
if (first)
@@ -304,6 +301,21 @@ show_boolean (const char *name, bool cond)
ansi_restore (fp);
}
+/* Used for displaying sizes in non-JSON output. */
+void show_size (const char *name, int64_t size)
+{
+ char size_str[HUMAN_SIZE_LONGEST];
+ bool human_size_flag = false;
+
+ if (size > 0) {
+ human_size (size_str, size, &human_size_flag);
+ if (human_size_flag)
+ fprintf (fp, "\t%s: %" PRId64 " (%s)\n", name, size,
size_str);
+ else
+ fprintf (fp, "\t%s: %" PRId64 "\n", name, size);
+ }
+}
+
static int
collect_context (void *opaque, const char *name)
{
--
2.41.0
_______________________________________________
Libguestfs mailing list
Libguestfs(a)redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs