Module Name: src Committed By: tsutsui Date: Sat Jun 25 00:58:36 UTC 2022
Modified Files: src/sys/arch/x68k/dev: kbd.c Log Message: Add rnd(9) entropy source from keyboard. To generate a diff of this commit: cvs rdiff -u -r1.42 -r1.43 src/sys/arch/x68k/dev/kbd.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/x68k/dev/kbd.c diff -u src/sys/arch/x68k/dev/kbd.c:1.42 src/sys/arch/x68k/dev/kbd.c:1.43 --- src/sys/arch/x68k/dev/kbd.c:1.42 Fri Jun 24 23:44:18 2022 +++ src/sys/arch/x68k/dev/kbd.c Sat Jun 25 00:58:36 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: kbd.c,v 1.42 2022/06/24 23:44:18 tsutsui Exp $ */ +/* $NetBSD: kbd.c,v 1.43 2022/06/25 00:58:36 tsutsui Exp $ */ /* * Copyright (c) 1982, 1986, 1990 The Regents of the University of California. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kbd.c,v 1.42 2022/06/24 23:44:18 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kbd.c,v 1.43 2022/06/25 00:58:36 tsutsui Exp $"); #include "ite.h" #include "bell.h" @@ -51,6 +51,7 @@ __KERNEL_RCSID(0, "$NetBSD: kbd.c,v 1.42 #include <sys/bus.h> #include <sys/intr.h> #include <sys/mutex.h> +#include <sys/rndsource.h> #include <arch/x68k/dev/intiovar.h> #include <arch/x68k/dev/mfp.h> @@ -71,6 +72,7 @@ struct kbd_softc { struct evvar sc_events; /* event queue state */ void *sc_softintr_cookie; kmutex_t sc_lock; + krndsource_t sc_rndsource; }; void kbdenable(int); @@ -141,6 +143,9 @@ kbdattach(device_t parent, device_t self sc->sc_softintr_cookie = softint_establish(SOFTINT_SERIAL, kbdsoftint, sc); + rnd_attach_source(&sc->sc_rndsource, device_xname(self), + RND_TYPE_TTY, RND_FLAG_DEFAULT); + kbdenable(1); sc->sc_event_mode = 0; sc->sc_events.ev_io = 0; @@ -338,6 +343,8 @@ kbdintr(void *arg) c = mfp_get_udr(); + rnd_add_uint32(&sc->sc_rndsource, (st << 8) | c); + if ((st & MFP_RSR_BF) == 0) return 0; /* intr caused by an err -- no char received */