#ifdef DEBUG
fprintf(stderr, _("Options are:\n"
- "[ -h ] [ -k | -m ] [ -t ] [ -V ] [ --debuginfo ]\n"));
+ "[ --human ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ --debuginfo ]\n"));
#else
fprintf(stderr, _("Options are:\n"
- "[ -h ] [ -k | -m ] [ -t ] [ -V ]\n"));
+ "[ --human ] [ -h ] [ -k | -m ] [ -t ] [ -V ]\n"));
#endif
exit(1);
}
struct io_hdr_stats *shi, struct cifs_stats *ioni,
struct cifs_stats *ionj)
{
+ double rbytes, wbytes;
+
if (DISPLAY_HUMAN_READ(flags)) {
cprintf_in(IS_STR, "%-22s\n", shi->name, 0);
printf("%22s", "");
}
/* rB/s wB/s fo/s fc/s fd/s*/
- cprintf_f(-1, 2, 12, 2,
- S_VALUE(ionj->rd_bytes, ioni->rd_bytes, itv) / fctr,
- S_VALUE(ionj->wr_bytes, ioni->wr_bytes, itv) / fctr);
+ rbytes = S_VALUE(ionj->rd_bytes, ioni->rd_bytes, itv);
+ wbytes = S_VALUE(ionj->wr_bytes, ioni->wr_bytes, itv);
+ if (!DISPLAY_UNIT(flags)) {
+ rbytes /= fctr;
+ wbytes /= fctr;
+ }
+ cprintf_f(DISPLAY_UNIT(flags) ? 1 : -1, 2, 12, 2,
+ rbytes, wbytes);
cprintf_f(-1, 2, 9, 2,
S_VALUE(ionj->rd_ops, ioni->rd_ops, itv),
S_VALUE(ionj->wr_ops, ioni->wr_ops, itv));
opt++;
} else
#endif
- if (!strncmp(argv[opt], "-", 1)) {
+
+ if (!strcmp(argv[opt], "--human")) {
+ flags |= I_D_UNIT;
+ opt++;
+ }
+
+ else if (!strncmp(argv[opt], "-", 1)) {
for (i = 1; *(argv[opt] + i); i++) {
switch (*(argv[opt] + i)) {
case 'h':
- /* Display an easy-to-read CIFS report */
- flags |= I_D_HUMAN_READ;
+ /* Display an easy-to-read CIFS report. Also imply --human */
+ flags |= I_D_HUMAN_READ + I_D_UNIT;
break;
case 'k':
#define I_D_ISO 0x008
#define I_D_HUMAN_READ 0x010
#define I_D_DEBUG 0x020
+#define I_D_UNIT 0x040
#define DISPLAY_TIMESTAMP(m) (((m) & I_D_TIMESTAMP) == I_D_TIMESTAMP)
#define DISPLAY_KILOBYTES(m) (((m) & I_D_KILOBYTES) == I_D_KILOBYTES)
#define DISPLAY_ISO(m) (((m) & I_D_ISO) == I_D_ISO)
#define DISPLAY_HUMAN_READ(m) (((m) & I_D_HUMAN_READ) == I_D_HUMAN_READ)
#define DISPLAY_DEBUG(m) (((m) & I_D_DEBUG) == I_D_DEBUG)
+#define DISPLAY_UNIT(m) (((m) & I_D_UNIT) == I_D_UNIT)
/* Preallocation constants */
#define NR_CIFS_PREALLOC 2