summaryrefslogtreecommitdiffstats
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_random.c27
-rw-r--r--sys/kern/tty_cons.c12
2 files changed, 20 insertions, 19 deletions
diff --git a/sys/kern/kern_random.c b/sys/kern/kern_random.c
index affe38f..70d3c95 100644
--- a/sys/kern/kern_random.c
+++ b/sys/kern/kern_random.c
@@ -1,7 +1,7 @@
/*
* random_machdep.c -- A strong random number generator
*
- * $Id: random_machdep.c,v 1.16 1997/04/26 11:46:03 peter Exp $
+ * $Id: random_machdep.c,v 1.17 1997/05/04 14:28:22 peter Exp $
*
* Version 0.95, last modified 18-Oct-95
*
@@ -45,6 +45,7 @@
#include <sys/systm.h>
#include <sys/kernel.h>
#include <sys/select.h>
+#include <sys/poll.h>
#include <sys/fcntl.h>
#include <machine/clock.h>
@@ -494,22 +495,22 @@ write_random(const char *buf, u_int nbytes)
#endif /* notused */
int
-random_select(dev_t dev, int rw, struct proc *p)
+random_poll(dev_t dev, int events, struct proc *p)
{
- int s, ret;
-
- if (rw == FWRITE)
- return 1; /* heh. */
+ int s;
+ int revents = 0;
s = splhigh();
- if (random_state.entropy_count >= 8)
- ret = 1;
- else {
- selrecord(p, &random_state.rsel);
- ret = 0;
- }
+ if (events & (POLLIN | POLLRDNORM))
+ if (random_state.entropy_count >= 8)
+ revents |= events & (POLLIN | POLLRDNORM);
+ else
+ selrecord(p, &random_state.rsel);
+
splx(s);
+ if (events & (POLLOUT | POLLWRNORM))
+ revents |= events & (POLLOUT | POLLWRNORM); /* heh */
- return ret;
+ return (revents);
}
diff --git a/sys/kern/tty_cons.c b/sys/kern/tty_cons.c
index 0f8c57d..1da0188 100644
--- a/sys/kern/tty_cons.c
+++ b/sys/kern/tty_cons.c
@@ -36,7 +36,7 @@
* SUCH DAMAGE.
*
* from: @(#)cons.c 7.2 (Berkeley) 5/9/91
- * $Id: cons.c,v 1.53 1997/08/08 20:09:50 julian Exp $
+ * $Id: cons.c,v 1.54 1997/08/08 20:29:47 julian Exp $
*/
#include <sys/param.h>
@@ -76,13 +76,13 @@ static d_close_t cnclose;
static d_read_t cnread;
static d_write_t cnwrite;
static d_ioctl_t cnioctl;
-static d_select_t cnselect;
+static d_poll_t cnpoll;
#define CDEV_MAJOR 0
static struct cdevsw cn_cdevsw =
{ cnopen, cnclose, cnread, cnwrite, /*0*/
cnioctl, nullstop, nullreset, nodevtotty,/* console */
- cnselect, nommap, NULL, "console", NULL, -1 };
+ cnpoll, nommap, NULL, "console", NULL, -1 };
static dev_t cn_dev_t; /* seems to be never really used */
SYSCTL_OPAQUE(_machdep, CPU_CONSDEV, consdev, CTLTYPE_OPAQUE|CTLFLAG_RD,
@@ -374,9 +374,9 @@ cnioctl(dev, cmd, data, flag, p)
}
static int
-cnselect(dev, rw, p)
+cnpoll(dev, events, p)
dev_t dev;
- int rw;
+ int events;
struct proc *p;
{
if ((cn_tab == NULL) || cn_mute)
@@ -384,7 +384,7 @@ cnselect(dev, rw, p)
dev = cn_tab->cn_dev;
- return ((*cdevsw[major(dev)]->d_select)(dev, rw, p));
+ return ((*cdevsw[major(dev)]->d_poll)(dev, events, p));
}
int
OpenPOWER on IntegriCloud