diff options
author | markm <markm@FreeBSD.org> | 2001-02-18 17:40:47 +0000 |
---|---|---|
committer | markm <markm@FreeBSD.org> | 2001-02-18 17:40:47 +0000 |
commit | 886c7bc57d985e6b8c0412fdf450e616fe405262 (patch) | |
tree | 418dd3d4a393e7c5dee13a1775deb532264e252e /sys/dev/random | |
parent | 3b9f9179f5c6f2ecbbcb3ad8e77a6c516ef9735a (diff) | |
download | FreeBSD-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.c | 3 | ||||
-rw-r--r-- | sys/dev/random/randomdev.c | 14 |
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, |