diff options
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/kern_random.c | 27 | ||||
-rw-r--r-- | sys/kern/tty_cons.c | 12 |
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 |