From ebf03fd00cdfdfd2cfa6abccdfb44cef10f92a49 Mon Sep 17 00:00:00 2001 From: explorer Date: Sun, 19 Oct 1997 11:45:33 +0000 Subject: Add hooks for entropy collection. Right now, you must place options RND_COM in your kernel config file (along with the pseudo-device rnd line) to enable this. If results are positive, I will make this enabled by default. --- sys/dev/ic/com.c | 18 +++++++++++++++++- sys/dev/ic/comvar.h | 10 +++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'sys/dev') diff --git a/sys/dev/ic/com.c b/sys/dev/ic/com.c index ba253fa4d19..a569913df4b 100644 --- a/sys/dev/ic/com.c +++ b/sys/dev/ic/com.c @@ -1,4 +1,4 @@ -/* $NetBSD: com.c,v 1.114 1997/10/18 23:11:45 is Exp $ */ +/* $NetBSD: com.c,v 1.115 1997/10/19 11:45:33 explorer Exp $ */ /*- * Copyright (c) 1993, 1994, 1995, 1996, 1997 @@ -71,6 +71,12 @@ /* * COM driver, uses National Semiconductor NS16450/NS16550AF UART */ + +#include "rnd.h" +#if NRND > 0 && defined(RND_COM) +#include +#endif + #include #include #include @@ -454,6 +460,11 @@ com_attach_subr(sc) #ifdef __GENERIC_SOFT_INTERRUPTS sc->sc_si = softintr_establish(IPL_SOFTSERIAL, comsoft, sc); #endif + +#if NRND > 0 && defined(RND_COM) + rnd_attach_source(&sc->rnd_source, sc->sc_dev.dv_xname, + RND_TYPE_TTY); +#endif } int @@ -1607,6 +1618,11 @@ comintr(arg) } #endif #endif + +#if NRND > 0 && defined(RND_COM) + rnd_add_uint32(&sc->rnd_source, iir | lsr); +#endif + return (1); } diff --git a/sys/dev/ic/comvar.h b/sys/dev/ic/comvar.h index 0142fb5b93b..04e0aed1720 100644 --- a/sys/dev/ic/comvar.h +++ b/sys/dev/ic/comvar.h @@ -1,4 +1,4 @@ -/* $NetBSD: comvar.h,v 1.16 1997/10/15 22:00:17 thorpej Exp $ */ +/* $NetBSD: comvar.h,v 1.17 1997/10/19 11:45:45 explorer Exp $ */ /* * Copyright (c) 1996 Christopher G. Demetriou. All rights reserved. @@ -30,6 +30,11 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include "rnd.h" +#if NRND > 0 && defined(RND_COM) +#include +#endif + int comcnattach __P((bus_space_tag_t, int, int, int, tcflag_t)); #ifdef KGDB @@ -100,6 +105,9 @@ struct com_softc { sc_rx_ready; volatile u_char sc_heldchange; +#if NRND > 0 && defined(RND_COM) + rndsource_element_t rnd_source; +#endif }; /* Macros to clear/set/test flags. */ -- cgit