summaryrefslogtreecommitdiffstats
path: root/sys/dev
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev')
-rw-r--r--sys/dev/syscons/syscons.c4
-rw-r--r--sys/dev/syscons/sysmouse.c6
2 files changed, 10 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index aea3c7e..1c60164 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -47,6 +47,7 @@
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/cons.h>
+#include <sys/random.h>
#include <machine/clock.h>
#include <machine/console.h>
@@ -2955,6 +2956,9 @@ next_code:
if (!(c & RELKEY))
sc_touch_scrn_saver();
+ /* do the /dev/random device a favour */
+ random_harvest((u_int64_t)c, 1, 0, RANDOM_KEYBOARD);
+
if (scp->kbd_mode != K_XLATE)
return KEYCHAR(c);
diff --git a/sys/dev/syscons/sysmouse.c b/sys/dev/syscons/sysmouse.c
index 453215a..5c92b23 100644
--- a/sys/dev/syscons/sysmouse.c
+++ b/sys/dev/syscons/sysmouse.c
@@ -32,6 +32,7 @@
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/proc.h>
+#include <sys/random.h>
#include <sys/tty.h>
#include <sys/kernel.h>
@@ -333,6 +334,11 @@ sysmouse_event(mouse_info_t *info)
sysmouse_tty);
}
+ /* do the /dev/random device a favour */
+ /* The nasty-looking cast is to force treatment of 8 u_chars */
+ /* in buf as a u_int64_t */
+ random_harvest(*((u_int64_t *)buf), 2, 0, RANDOM_MOUSE);
+
return mouse_status.flags;
}
OpenPOWER on IntegriCloud