Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/usr.sbin/envstat 1. Don't print blank for Integer sensors wi...
details: https://anonhg.NetBSD.org/src/rev/57d3a95bf322
branches: trunk
changeset: 765814:57d3a95bf322
user: pgoyette <pgoyette%NetBSD.org@localhost>
date: Mon Jun 06 20:48:56 2011 +0000
description:
1. Don't print blank for Integer sensors with value of zero
2. Properly print percentages in -T statistics mode
3. Always set Sensor Type (units) to a non-NULL value
4. Enable printing of percentages for Integer sensors
diffstat:
usr.sbin/envstat/envstat.c | 138 ++++++++++++++++++++++++--------------------
1 files changed, 76 insertions(+), 62 deletions(-)
diffs (206 lines):
diff -r 8d93a43dda7c -r 57d3a95bf322 usr.sbin/envstat/envstat.c
--- a/usr.sbin/envstat/envstat.c Mon Jun 06 19:15:43 2011 +0000
+++ b/usr.sbin/envstat/envstat.c Mon Jun 06 20:48:56 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: envstat.c,v 1.86 2011/06/04 13:29:02 pgoyette Exp $ */
+/* $NetBSD: envstat.c,v 1.87 2011/06/06 20:48:56 pgoyette Exp $ */
/*-
* Copyright (c) 2007, 2008 Juan Romero Pardines.
@@ -27,7 +27,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: envstat.c,v 1.86 2011/06/04 13:29:02 pgoyette Exp $");
+__RCSID("$NetBSD: envstat.c,v 1.87 2011/06/06 20:48:56 pgoyette Exp $");
#endif /* not lint */
#include <stdio.h>
@@ -763,7 +763,7 @@
mydevname ? "" : " ", (int)maxlen,
"", a, b, c, d, units);
else
- (void)printf("%s%*s %9s %8s %8s %8s %8s %4s\n",
+ (void)printf("%s%*s %9s %8s %8s %8s %8s %5s\n",
mydevname ? "" : " ", (int)maxlen,
"", a, b, c, d, e, units);
if (sensors && header_passes == 10)
@@ -914,44 +914,55 @@
(void)printf(":%10d ", sensor->cur_value);
ilen = 8;
- if (statistics) {
- /* show statistics if flag set */
- (void)printf("%8u %8u %8u ",
- stats->max, stats->min, stats->avg);
- ilen += 2;
- } else {
- if (sensor->critmax_value) {
- (void)printf("%*u ", (int)ilen,
- sensor->critmax_value);
- ilen = 8;
- } else
- ilen += 9;
+
+/* Print percentage of max_value */
+#define PRINTPCT(a) \
+do { \
+ if (sensor->max_value) { \
+ (void)printf("%*.3f%%", (int)ilen, \
+ ((a) * 100.0) / sensor->max_value); \
+ ilen = 8; \
+ } else \
+ ilen += 9; \
+} while ( /* CONSTCOND*/ 0 )
+
+/* Print an integer sensor value */
+#define PRINTINT(a) \
+do { \
+ (void)printf("%*u ", (int)ilen, (a)); \
+ ilen = 8; \
+} while ( /* CONSTCOND*/ 0 )
- if (sensor->warnmax_value) {
- (void)printf("%*u ", (int)ilen,
- sensor->warnmax_value);
- ilen = 8;
- } else
- ilen += 9;
-
- if (sensor->warnmin_value) {
- (void)printf("%*u ", (int)ilen,
- sensor->warnmin_value);
- ilen = 8;
- } else
- ilen += 9;
-
- if (sensor->critmin_value) {
- (void)printf( "%*u ", (int)ilen,
- sensor->critmin_value);
- ilen = 8;
- } else
- ilen += 9;
-
+ if (!statistics) {
+ if (sensor->percentage) {
+ PRINTPCT(sensor->critmax_value);
+ PRINTPCT(sensor->warnmax_value);
+ PRINTPCT(sensor->warnmin_value);
+ PRINTPCT(sensor->critmin_value);
+ } else {
+ PRINTINT(sensor->critmax_value);
+ PRINTINT(sensor->warnmax_value);
+ PRINTINT(sensor->warnmin_value);
+ PRINTINT(sensor->critmin_value);
+ }
+ } else {
+ if (sensor->percentage) {
+ PRINTPCT(stats->max);
+ PRINTPCT(stats->min);
+ PRINTPCT(stats->avg);
+ } else {
+ PRINTINT(stats->max);
+ PRINTINT(stats->min);
+ PRINTINT(stats->avg);
+ }
+ ilen += 2;
}
(void)printf("%*s", (int)ilen - 4, stype);
+#undef PRINTINT
+#undef PRINTPCT
+
/* drives */
} else if (strcmp(sensor->type, "Drive") == 0) {
@@ -978,19 +989,20 @@
stype = "Wh";
else if (strcmp(sensor->type, "Ampere hour") == 0)
stype = "Ah";
+ else
+ stype = "?";
(void)printf(":%10.3f ",
sensor->cur_value / 1000000.0);
ilen = 8;
- if (!statistics) {
/* Print percentage of max_value */
#define PRINTPCT(a) \
do { \
- if (sensor->a && sensor->max_value) { \
+ if ((a) && sensor->max_value) { \
(void)printf("%*.3f%%", (int)ilen, \
- (sensor->a * 100.0) / sensor->max_value); \
+ ((a) * 100.0) / sensor->max_value); \
ilen = 8; \
} else \
ilen += 9; \
@@ -999,40 +1011,42 @@
/* Print a generic sensor value */
#define PRINTVAL(a) \
do { \
- if (sensor->a) { \
- (void)printf("%*.3f ", (int)ilen, sensor->a / 1000000.0); \
+ if ((a)) { \
+ (void)printf("%*.3f ", (int)ilen, (a) / 1000000.0); \
ilen = 8; \
} else \
ilen += 9; \
} while ( /* CONSTCOND*/ 0 )
-
+ if (!statistics) {
if (sensor->percentage) {
- PRINTPCT(critmax_value);
- PRINTPCT(warnmax_value);
- PRINTPCT(warnmin_value);
- PRINTPCT(critmin_value);
+ PRINTPCT(sensor->critmax_value);
+ PRINTPCT(sensor->warnmax_value);
+ PRINTPCT(sensor->warnmin_value);
+ PRINTPCT(sensor->critmin_value);
} else {
- PRINTVAL(critmax_value);
- PRINTVAL(warnmax_value);
- PRINTVAL(warnmin_value);
- PRINTVAL(critmin_value);
+ PRINTVAL(sensor->critmax_value);
+ PRINTVAL(sensor->warnmax_value);
+ PRINTVAL(sensor->warnmin_value);
+ PRINTVAL(sensor->critmin_value);
+ }
+ } else {
+ if (sensor->percentage) {
+ PRINTPCT(stats->max);
+ PRINTPCT(stats->min);
+ PRINTPCT(stats->avg);
+ } else {
+ PRINTVAL(stats->max);
+ PRINTVAL(stats->min);
+ PRINTVAL(stats->avg);
+ }
+ ilen += 2;
+ }
#undef PRINTPCT
#undef PRINTVAL
- }
- }
- if (statistics && !sensor->percentage) {
- /* show statistics if flag set */
- (void)printf("%8.3f %8.3f %8.3f ",
- stats->max / 1000000.0,
- stats->min / 1000000.0,
- stats->avg / 1000000.0);
- ilen += 2;
- }
-
- (void)printf("%*s", (int)ilen - 4, stype);
+ (void)printf("%*s", (int)ilen - 3, stype);
if (sensor->percentage && sensor->max_value) {
(void)printf(" (%5.2f%%)",
Home |
Main Index |
Thread Index |
Old Index