diff options
| author | tls <tls@NetBSD.org> | 2014-08-10 16:44:32 +0000 |
|---|---|---|
| committer | tls <tls@NetBSD.org> | 2014-08-10 16:44:32 +0000 |
| commit | a72ef11467f430f0cb27f4e6a8ad98db3d777dd9 (patch) | |
| tree | 24f8915da45fd4b2671f09d9c1303538474ff651 /sys/dev/sysmon | |
| parent | df3948ca31a0d211dc4758be54656b813bd65bcf (diff) | |
Merge tls-earlyentropy branch into HEAD.
Diffstat (limited to 'sys/dev/sysmon')
| -rw-r--r-- | sys/dev/sysmon/sysmon_envsys.c | 38 | ||||
| -rw-r--r-- | sys/dev/sysmon/sysmon_power.c | 6 |
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); } |
