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

Reply via email to