Module Name: src
Committed By: pgoyette
Date: Tue Jun 7 17:24:32 UTC 2011
Modified Files:
src/usr.sbin/envstat: envstat.c
Log Message:
Zero is a valid value for some sensors so update statistics code to
handle that.
To generate a diff of this commit:
cvs rdiff -u -r1.87 -r1.88 src/usr.sbin/envstat/envstat.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/envstat/envstat.c
diff -u src/usr.sbin/envstat/envstat.c:1.87 src/usr.sbin/envstat/envstat.c:1.88
--- src/usr.sbin/envstat/envstat.c:1.87 Mon Jun 6 20:48:56 2011
+++ src/usr.sbin/envstat/envstat.c Tue Jun 7 17:24:32 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: envstat.c,v 1.87 2011/06/06 20:48:56 pgoyette Exp $ */
+/* $NetBSD: envstat.c,v 1.88 2011/06/07 17:24:32 pgoyette Exp $ */
/*-
* Copyright (c) 2007, 2008 Juan Romero Pardines.
@@ -27,13 +27,14 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: envstat.c,v 1.87 2011/06/06 20:48:56 pgoyette Exp $");
+__RCSID("$NetBSD: envstat.c,v 1.88 2011/06/07 17:24:32 pgoyette Exp $");
#endif /* not lint */
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <stdarg.h>
+#include <stdint.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
@@ -347,6 +348,8 @@
return NULL;
(void)strlcpy(stats->desc, desc, sizeof(stats->desc));
+ stats->min = INT32_MAX;
+ stats->max = INT32_MIN;
SIMPLEQ_INSERT_TAIL(&sensor_stats_list, stats, entries);
return stats;
@@ -625,7 +628,7 @@
continue;
/* ignore invalid data */
- if (sensor->invalid || !sensor->cur_value)
+ if (sensor->invalid)
continue;
/* find or allocate a new statistics sensor */
@@ -636,12 +639,7 @@
return ENOMEM;
}
- /* collect data */
- if (!stats->max)
- stats->max = sensor->cur_value;
- if (!stats->min)
- stats->min = sensor->cur_value;
-
+ /* update data */
if (sensor->cur_value > stats->max)
stats->max = sensor->cur_value;
@@ -649,10 +647,8 @@
stats->min = sensor->cur_value;
/* compute avg value */
- if (stats->max && stats->min)
- stats->avg =
- (sensor->cur_value + stats->max +
- stats->min) / 3;
+ stats->avg =
+ (sensor->cur_value + stats->max + stats->min) / 3;
}
}