]> granicus.if.org Git - sysstat/commitdiff
tapestat: Display values in human readable format.
authorSebastien GODARD <sysstat@users.noreply.github.com>
Thu, 17 Nov 2016 11:17:26 +0000 (12:17 +0100)
committerSebastien GODARD <sysstat@users.noreply.github.com>
Thu, 17 Nov 2016 11:17:26 +0000 (12:17 +0100)
Add new "--human" option used to display sizes in human redable format.

Signed-off-by: Sebastien GODARD <sysstat@users.noreply.github.com>
tapestat.c
tapestat.h

index aec6e7342534591a496488732bd7c305b6c7a6e1..c1698f1f798cf9d1b4c4212811fdd07f0e6ab507 100644 (file)
@@ -95,7 +95,7 @@ void usage(char *progname)
        fprintf(stderr, _("Usage: %s [ options ] [ <interval> [ <count> ] ]\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)) {
index 036528d39367757af0a96b704a2b40e8cff207d8..2e23ab571bb96e632eaf4dc663d8f7cc2ea01653 100644 (file)
@@ -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