Changes for poll(2).
This commit is contained in:
parent
3d5284e11e
commit
c21fad0c51
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: event.c,v 1.4 1996/10/08 23:18:49 thorpej Exp $ */
|
||||
/* $NetBSD: event.c,v 1.5 1996/10/11 21:12:43 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -53,7 +53,9 @@
|
||||
#include <sys/param.h>
|
||||
#include <sys/fcntl.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/poll.h>
|
||||
#include <sys/proc.h>
|
||||
#include <sys/select.h>
|
||||
#include <sys/systm.h>
|
||||
#include <sys/vnode.h>
|
||||
|
||||
@ -86,7 +88,7 @@ ev_fini(ev)
|
||||
}
|
||||
|
||||
/*
|
||||
* User-level interface: read, select.
|
||||
* User-level interface: read, poll.
|
||||
* (User cannot write an event queue.)
|
||||
*/
|
||||
int
|
||||
@ -147,28 +149,21 @@ ev_read(ev, uio, flags)
|
||||
}
|
||||
|
||||
int
|
||||
ev_select(ev, rw, p)
|
||||
ev_poll(ev, events, p)
|
||||
register struct evvar *ev;
|
||||
int rw;
|
||||
int events;
|
||||
struct proc *p;
|
||||
{
|
||||
int s = splev();
|
||||
int revents = 0;
|
||||
|
||||
switch (rw) {
|
||||
|
||||
case FREAD:
|
||||
if (events & (POLLIN | POLLRDNORM))
|
||||
/* succeed if there is something to read */
|
||||
if (ev->ev_get != ev->ev_put) {
|
||||
splx(s);
|
||||
return (1);
|
||||
}
|
||||
selrecord(p, &ev->ev_sel);
|
||||
break;
|
||||
|
||||
case FWRITE:
|
||||
splx(s);
|
||||
return (1); /* always fails => never blocks */
|
||||
}
|
||||
if (ev->ev_get != ev->ev_put)
|
||||
revents |= events & (POLLIN | POLLRDNORM);
|
||||
if (revents == 0)
|
||||
if (events & (POLLIN | POLLRDNORM))
|
||||
selrecord(p, &ev->ev_sel);
|
||||
splx(s);
|
||||
return (0);
|
||||
return (revents);
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: event_var.h,v 1.2 1994/10/26 02:03:00 cgd Exp $ */
|
||||
/* $NetBSD: event_var.h,v 1.3 1996/10/11 21:12:46 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992, 1993
|
||||
@ -80,7 +80,7 @@ struct evvar {
|
||||
void ev_init __P((struct evvar *));
|
||||
void ev_fini __P((struct evvar *));
|
||||
int ev_read __P((struct evvar *, struct uio *, int));
|
||||
int ev_select __P((struct evvar *, int, struct proc *));
|
||||
int ev_poll __P((struct evvar *, int, struct proc *));
|
||||
|
||||
/*
|
||||
* PEVENT is set just above PSOCK, which is just above TTIPRI, on the
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: grf.c,v 1.29 1996/10/10 23:55:39 christos Exp $ */
|
||||
/* $NetBSD: grf.c,v 1.30 1996/10/11 21:12:50 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1988 University of Utah.
|
||||
@ -57,6 +57,7 @@
|
||||
#include <sys/systm.h>
|
||||
#include <sys/vnode.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/poll.h>
|
||||
#include <vm/vm.h>
|
||||
#include <vm/vm_kern.h>
|
||||
#include <vm/vm_page.h>
|
||||
@ -302,14 +303,12 @@ grfioctl(dev, cmd, data, flag, p)
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
grfselect(dev, rw, p)
|
||||
grfpoll(dev, events, p)
|
||||
dev_t dev;
|
||||
int rw;
|
||||
int events;
|
||||
struct proc *p;
|
||||
{
|
||||
if (rw == FREAD)
|
||||
return(0);
|
||||
return(1);
|
||||
return(events & (POLLOUT | POLLWRNORM));
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: kbd.c,v 1.24 1996/10/10 23:56:16 christos Exp $ */
|
||||
/* $NetBSD: kbd.c,v 1.25 1996/10/11 21:12:51 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1982, 1986, 1990 The Regents of the University of California.
|
||||
@ -274,12 +274,12 @@ kbdioctl(dev, cmd, data, flag, p)
|
||||
}
|
||||
|
||||
int
|
||||
kbdselect(dev, rw, p)
|
||||
kbdpoll(dev, events, p)
|
||||
dev_t dev;
|
||||
int rw;
|
||||
int events;
|
||||
struct proc *p;
|
||||
{
|
||||
return ev_select (&kbd_softc.k_events, rw, p);
|
||||
return ev_poll (&kbd_softc.k_events, events, p);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: ms.c,v 1.11 1996/10/10 23:56:22 christos Exp $ */
|
||||
/* $NetBSD: ms.c,v 1.12 1996/10/11 21:12:53 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* based on:
|
||||
@ -424,14 +424,14 @@ msioctl(dev, cmd, data, flag, p)
|
||||
}
|
||||
|
||||
int
|
||||
msselect(dev, rw, p)
|
||||
mspoll(dev, events, p)
|
||||
dev_t dev;
|
||||
int rw;
|
||||
int events;
|
||||
struct proc *p;
|
||||
{
|
||||
struct ms_softc *ms;
|
||||
|
||||
ms = (struct ms_softc *)getsoftc(ms_cd, minor(dev));
|
||||
|
||||
return(ev_select(&ms->ms_events, rw, p));
|
||||
return(ev_poll(&ms->ms_events, events, p));
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* $NetBSD: view.c,v 1.14 1996/10/10 23:56:37 christos Exp $ */
|
||||
/* $NetBSD: view.c,v 1.15 1996/10/11 21:12:54 mhitch Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1994 Christian E. Hopps
|
||||
@ -45,6 +45,7 @@
|
||||
#include <sys/device.h>
|
||||
#include <sys/malloc.h>
|
||||
#include <sys/queue.h>
|
||||
#include <sys/poll.h>
|
||||
#include <machine/cpu.h>
|
||||
#include <amiga/dev/grfabs_reg.h>
|
||||
#include <amiga/dev/viewioctl.h>
|
||||
@ -412,12 +413,10 @@ viewmmap(dev, off, prot)
|
||||
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
viewselect(dev, rw, p)
|
||||
viewpoll(dev, events, p)
|
||||
dev_t dev;
|
||||
int rw;
|
||||
int events;
|
||||
struct proc *p;
|
||||
{
|
||||
if (rw == FREAD)
|
||||
return(0);
|
||||
return(1);
|
||||
return(events & (POLLOUT | POLLWRNORM));
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user