From 1e6180c1c3fc91f4ef1e5e4b8bed7760f72a3fc1 Mon Sep 17 00:00:00 2001 From: Sebastien GODARD Date: Thu, 17 Nov 2016 12:17:26 +0100 Subject: [PATCH] tapestat: Display values in human readable format. Add new "--human" option used to display sizes in human redable format. Signed-off-by: Sebastien GODARD --- tapestat.c | 18 +++++++++++++----- tapestat.h | 3 ++- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/tapestat.c b/tapestat.c index aec6e73..c1698f1 100644 --- a/tapestat.c +++ b/tapestat.c @@ -95,7 +95,7 @@ void usage(char *progname) fprintf(stderr, _("Usage: %s [ options ] [ [ ] ]\n"), progname); fprintf(stderr, _("Options are:\n" - "[ -k | -m ] [ -t ] [ -V ] [ -y ] [ -z ]\n")); + "[ --human ] [ -k | -m ] [ -t ] [ -V ] [ -y ] [ -z ]\n")); exit(1); } @@ -449,9 +449,11 @@ void tape_write_stats(struct calc_stats *tape, int i) cprintf_u64(-1, 2, 7, tape->reads_per_second, tape->writes_per_second); - cprintf_u64(-1, 2, 11, - tape->kbytes_read_per_second / divisor, - tape->kbytes_written_per_second / divisor); + cprintf_u64(DISPLAY_UNIT(flags) ? 2 : -1, 2, 11, + DISPLAY_UNIT(flags) ? tape->kbytes_read_per_second + : tape->kbytes_read_per_second / divisor, + DISPLAY_UNIT(flags) ? tape->kbytes_written_per_second + : tape->kbytes_written_per_second / divisor); cprintf_pc(3, 3, 0, (double) tape->read_pct_wait, (double) tape->write_pct_wait, @@ -612,7 +614,13 @@ int main(int argc, char **argv) /* Process args... */ while (opt < argc) { - if (!strncmp(argv[opt], "-", 1)) { + + if (!strcmp(argv[opt], "--human")) { + flags |= T_D_UNIT; + opt++; + } + + else if (!strncmp(argv[opt], "-", 1)) { for (i = 1; *(argv[opt] + i); i++) { switch (*(argv[opt] + i)) { diff --git a/tapestat.h b/tapestat.h index 036528d..2e23ab5 100644 --- a/tapestat.h +++ b/tapestat.h @@ -16,6 +16,7 @@ #define T_D_OMIT_SINCE_BOOT 0x00008 #define T_D_ISO 0x00010 #define T_D_ZERO_OMIT 0x00020 +#define T_D_UNIT 0x00040 #define DISPLAY_TIMESTAMP(m) (((m) & T_D_TIMESTAMP) == T_D_TIMESTAMP) #define DISPLAY_KILOBYTES(m) (((m) & T_D_KILOBYTES) == T_D_KILOBYTES) @@ -23,7 +24,7 @@ #define DISPLAY_OMIT_SINCE_BOOT(m) (((m) & T_D_OMIT_SINCE_BOOT) == T_D_OMIT_SINCE_BOOT) #define DISPLAY_ISO(m) (((m) & T_D_ISO) == T_D_ISO) #define DISPLAY_ZERO_OMIT(m) (((m) & T_D_ZERO_OMIT) == T_D_ZERO_OMIT) - +#define DISPLAY_UNIT(m) (((m) & T_D_UNIT) == T_D_UNIT) #define TAPE_STATS_VALID 1 #define TAPE_STATS_INVALID 0 -- 2.40.0