summaryrefslogtreecommitdiffstats
path: root/sys/dev/random
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2001-02-18 17:40:47 +0000
committermarkm <markm@FreeBSD.org>2001-02-18 17:40:47 +0000
commit886c7bc57d985e6b8c0412fdf450e616fe405262 (patch)
tree418dd3d4a393e7c5dee13a1775deb532264e252e /sys/dev/random
parent3b9f9179f5c6f2ecbbcb3ad8e77a6c516ef9735a (diff)
downloadFreeBSD-src-886c7bc57d985e6b8c0412fdf450e616fe405262.zip
FreeBSD-src-886c7bc57d985e6b8c0412fdf450e616fe405262.tar.gz
Provide the infrastructure for sysadmins to select the broad class
of entropy harvesting they wish to perform: "ethernet" (LAN), point-to-point and interrupt.
Diffstat (limited to 'sys/dev/random')
-rw-r--r--sys/dev/random/harvest.c3
-rw-r--r--sys/dev/random/randomdev.c14
2 files changed, 16 insertions, 1 deletions
diff --git a/sys/dev/random/harvest.c b/sys/dev/random/harvest.c
index 93ce35b..59495d7 100644
--- a/sys/dev/random/harvest.c
+++ b/sys/dev/random/harvest.c
@@ -45,6 +45,9 @@
static u_int read_random_phony(void *, u_int);
+/* Structure holding the desired entropy sources */
+struct harvest_select harvest = { 0, 0, 0 };
+
/* hold the address of the routine which is actually called if
* the randomdev is loaded
*/
diff --git a/sys/dev/random/randomdev.c b/sys/dev/random/randomdev.c
index bb602b1..8358877 100644
--- a/sys/dev/random/randomdev.c
+++ b/sys/dev/random/randomdev.c
@@ -81,7 +81,7 @@ static dev_t random_dev;
static dev_t urandom_dev; /* XXX Temporary */
/* To stash the sysctl's until they are removed */
-static struct sysctl_oid *random_sysctl[10]; /* magic # is sysctl count */
+static struct sysctl_oid *random_sysctl[12]; /* magic # is sysctl count */
static int sysctlcount = 0;
static int
@@ -190,6 +190,18 @@ random_modevent(module_t mod, int type, void *data)
SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(node1),
OID_AUTO, "seeded", CTLFLAG_RW,
&random_state.seeded, 0, "Seeded State");
+ random_sysctl[sysctlcount++] =
+ SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(node1),
+ OID_AUTO, "harvest_ethernet", CTLFLAG_RW,
+ &harvest.ethernet, 0, "Harvest NIC entropy");
+ random_sysctl[sysctlcount++] =
+ SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(node1),
+ OID_AUTO, "harvest_point_to_point", CTLFLAG_RW,
+ &harvest.point_to_point, 0, "Harvest serial net entropy");
+ random_sysctl[sysctlcount++] =
+ SYSCTL_ADD_INT(NULL, SYSCTL_CHILDREN(node1),
+ OID_AUTO, "harvest_interrupt", CTLFLAG_RW,
+ &harvest.interrupt, 0, "Harvest IRQ entropy");
random_sysctl[sysctlcount++] = node2 =
SYSCTL_ADD_NODE(NULL, SYSCTL_CHILDREN(node_base),
OID_AUTO, "yarrow", CTLFLAG_RW, 0,
OpenPOWER on IntegriCloud