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 */