summaryrefslogtreecommitdiff
path: root/sys/dev/sysmon
diff options
context:
space:
mode:
authortls <tls@NetBSD.org>2014-08-10 16:44:32 +0000
committertls <tls@NetBSD.org>2014-08-10 16:44:32 +0000
commita72ef11467f430f0cb27f4e6a8ad98db3d777dd9 (patch)
tree24f8915da45fd4b2671f09d9c1303538474ff651 /sys/dev/sysmon
parentdf3948ca31a0d211dc4758be54656b813bd65bcf (diff)
Merge tls-earlyentropy branch into HEAD.
Diffstat (limited to 'sys/dev/sysmon')
-rw-r--r--sys/dev/sysmon/sysmon_envsys.c38
-rw-r--r--sys/dev/sysmon/sysmon_power.c6
2 files changed, 37 insertions, 7 deletions
diff --git a/sys/dev/sysmon/sysmon_envsys.c b/sys/dev/sysmon/sysmon_envsys.c
index 16e8604aced..57967eaae84 100644
--- a/sys/dev/sysmon/sysmon_envsys.c
+++ b/sys/dev/sysmon/sysmon_envsys.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sysmon_envsys.c,v 1.126 2012/11/29 10:29:45 msaitoh Exp $ */
+/* $NetBSD: sysmon_envsys.c,v 1.127 2014/08/10 16:44:36 tls Exp $ */
/*-
* Copyright (c) 2007, 2008 Juan Romero Pardines.
@@ -64,7 +64,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys.c,v 1.126 2012/11/29 10:29:45 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_envsys.c,v 1.127 2014/08/10 16:44:36 tls Exp $");
#include <sys/param.h>
#include <sys/types.h>
@@ -778,6 +778,7 @@ out:
*/
TAILQ_FOREACH(edata, &sme->sme_sensors_list, sensors_head) {
if (edata->flags & ENVSYS_FHAS_ENTROPY) {
+ uint32_t rnd_type, rnd_flag = 0;
size_t n;
int tail = 1;
@@ -797,8 +798,34 @@ out:
} else
tail = 0;
}
+ rnd_flag |= RND_FLAG_COLLECT_TIME;
+ rnd_flag |= RND_FLAG_ESTIMATE_TIME;
+
+ switch (edata->units) {
+ case ENVSYS_STEMP:
+ case ENVSYS_SFANRPM:
+ case ENVSYS_INTEGER:
+ rnd_type = RND_TYPE_ENV;
+ rnd_flag |= RND_FLAG_COLLECT_VALUE;
+ rnd_flag |= RND_FLAG_ESTIMATE_VALUE;
+ break;
+ case ENVSYS_SVOLTS_AC:
+ case ENVSYS_SVOLTS_DC:
+ case ENVSYS_SOHMS:
+ case ENVSYS_SWATTS:
+ case ENVSYS_SAMPS:
+ case ENVSYS_SWATTHOUR:
+ case ENVSYS_SAMPHOUR:
+ rnd_type = RND_TYPE_POWER;
+ rnd_flag |= RND_FLAG_COLLECT_VALUE;
+ rnd_flag |= RND_FLAG_ESTIMATE_VALUE;
+ break;
+ default:
+ rnd_type = RND_TYPE_UNKNOWN;
+ break;
+ }
rnd_attach_source(&edata->rnd_src, rnd_name,
- RND_TYPE_ENV, 0);
+ rnd_type, rnd_flag);
}
}
DPRINTF(("%s: driver '%s' registered (nsens=%d nevent=%d)\n",
@@ -1206,7 +1233,10 @@ sme_remove_userprops(void)
snprintf(rnd_name, sizeof(rnd_name), "%s-%s",
sme->sme_name, edata->desc);
rnd_attach_source(&edata->rnd_src, rnd_name,
- RND_TYPE_ENV, 0);
+ RND_TYPE_ENV, RND_FLAG_COLLECT_VALUE|
+ RND_FLAG_COLLECT_TIME|
+ RND_FLAG_ESTIMATE_VALUE|
+ RND_FLAG_ESTIMATE_TIME);
}
}
diff --git a/sys/dev/sysmon/sysmon_power.c b/sys/dev/sysmon/sysmon_power.c
index ff55ad5e698..6999969a6df 100644
--- a/sys/dev/sysmon/sysmon_power.c
+++ b/sys/dev/sysmon/sysmon_power.c
@@ -1,4 +1,4 @@
-/* $NetBSD: sysmon_power.c,v 1.46 2012/02/02 19:43:07 tls Exp $ */
+/* $NetBSD: sysmon_power.c,v 1.47 2014/08/10 16:44:36 tls Exp $ */
/*-
* Copyright (c) 2007 Juan Romero Pardines.
@@ -69,7 +69,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysmon_power.c,v 1.46 2012/02/02 19:43:07 tls Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysmon_power.c,v 1.47 2014/08/10 16:44:36 tls Exp $");
#include "opt_compat_netbsd.h"
#include <sys/param.h>
@@ -201,7 +201,7 @@ sysmon_power_init(void)
selinit(&sysmon_power_event_queue_selinfo);
rnd_attach_source(&sysmon_rndsource, "system-power",
- RND_TYPE_POWER, 0);
+ RND_TYPE_POWER, RND_FLAG_DEFAULT);
}