summaryrefslogtreecommitdiffstats
path: root/sys/fs/fifofs
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1997-09-14 02:58:12 +0000
committerpeter <peter@FreeBSD.org>1997-09-14 02:58:12 +0000
commitce7feabb13f41094afbd4e234c6f678a4453967a (patch)
tree0a930e64e09a2d4576012e8d1e569c188a15389a /sys/fs/fifofs
parent13141f4b232b76b274f95166bd837fba480bf0ee (diff)
downloadFreeBSD-src-ce7feabb13f41094afbd4e234c6f678a4453967a.zip
FreeBSD-src-ce7feabb13f41094afbd4e234c6f678a4453967a.tar.gz
Convert select -> poll.
Delete 'always succeed' select/poll handlers, replaced with generic call. Flag missing vnode op table entries.
Diffstat (limited to 'sys/fs/fifofs')
-rw-r--r--sys/fs/fifofs/fifo.h4
-rw-r--r--sys/fs/fifofs/fifo_vnops.c33
2 files changed, 19 insertions, 18 deletions
diff --git a/sys/fs/fifofs/fifo.h b/sys/fs/fifofs/fifo.h
index 0a42690..38314de 100644
--- a/sys/fs/fifofs/fifo.h
+++ b/sys/fs/fifofs/fifo.h
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo.h 8.6 (Berkeley) 5/21/95
- * $Id$
+ * $Id: fifo.h,v 1.13 1997/02/22 09:40:17 peter Exp $
*/
extern vop_t **fifo_vnodeop_p;
@@ -53,7 +53,7 @@ int fifo_read __P((struct vop_read_args *));
int fifo_write __P((struct vop_write_args *));
#define fifo_lease_check ((int (*) __P((struct vop_lease_args *)))nullop)
int fifo_ioctl __P((struct vop_ioctl_args *));
-int fifo_select __P((struct vop_select_args *));
+int fifo_poll __P((struct vop_poll_args *));
#define fifo_revoke vop_revoke
#define fifo_mmap ((int (*) __P((struct vop_mmap_args *)))fifo_badop)
#define fifo_fsync ((int (*) __P((struct vop_fsync_args *)))nullop)
diff --git a/sys/fs/fifofs/fifo_vnops.c b/sys/fs/fifofs/fifo_vnops.c
index 41b50c5..bab3f53 100644
--- a/sys/fs/fifofs/fifo_vnops.c
+++ b/sys/fs/fifofs/fifo_vnops.c
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)fifo_vnops.c 8.10 (Berkeley) 5/27/95
- * $Id: fifo_vnops.c,v 1.25 1997/08/16 19:15:13 wollman Exp $
+ * $Id: fifo_vnops.c,v 1.26 1997/09/02 20:06:11 bde Exp $
*/
#include <sys/param.h>
@@ -45,6 +45,7 @@
#include <sys/fcntl.h>
#include <sys/file.h>
#include <sys/malloc.h>
+#include <sys/poll.h>
#include <sys/un.h>
#include <miscfs/fifofs/fifo.h>
@@ -66,6 +67,7 @@ vop_t **fifo_vnodeop_p;
static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
{ &vop_default_desc, (vop_t *)vn_default_error },
{ &vop_lookup_desc, (vop_t *)fifo_lookup }, /* lookup */
+/* XXX: vop_cachedlookup */
{ &vop_create_desc, (vop_t *)fifo_create }, /* create */
{ &vop_mknod_desc, (vop_t *)fifo_mknod }, /* mknod */
{ &vop_open_desc, (vop_t *)fifo_open }, /* open */
@@ -77,7 +79,7 @@ static struct vnodeopv_entry_desc fifo_vnodeop_entries[] = {
{ &vop_write_desc, (vop_t *)fifo_write }, /* write */
{ &vop_lease_desc, (vop_t *)fifo_lease_check }, /* lease */
{ &vop_ioctl_desc, (vop_t *)fifo_ioctl }, /* ioctl */
- { &vop_select_desc, (vop_t *)fifo_select }, /* select */
+ { &vop_poll_desc, (vop_t *)fifo_poll }, /* poll */
{ &vop_revoke_desc, (vop_t *)fifo_revoke }, /* revoke */
{ &vop_mmap_desc, (vop_t *)fifo_mmap }, /* mmap */
{ &vop_fsync_desc, (vop_t *)fifo_fsync }, /* fsync */
@@ -341,31 +343,30 @@ fifo_ioctl(ap)
/* ARGSUSED */
int
-fifo_select(ap)
- struct vop_select_args /* {
+fifo_poll(ap)
+ struct vop_poll_args /* {
struct vnode *a_vp;
- int a_which;
- int a_fflags;
+ int a_events;
struct ucred *a_cred;
struct proc *a_p;
} */ *ap;
{
struct file filetmp;
- int ready;
+ int revents = 0;
- if (ap->a_fflags & FREAD) {
+ if (ap->a_events & (POLLIN | POLLPRI | POLLRDNORM | POLLRDBAND)) {
filetmp.f_data = (caddr_t)ap->a_vp->v_fifoinfo->fi_readsock;
- ready = soo_select(&filetmp, ap->a_which, ap->a_p);
- if (ready)
- return (ready);
+ if (filetmp.f_data)
+ revents |= soo_poll(&filetmp, ap->a_events, ap->a_cred,
+ ap->a_p);
}
- if (ap->a_fflags & FWRITE) {
+ if (ap->a_events & (POLLOUT | POLLWRNORM | POLLWRBAND)) {
filetmp.f_data = (caddr_t)ap->a_vp->v_fifoinfo->fi_writesock;
- ready = soo_select(&filetmp, ap->a_which, ap->a_p);
- if (ready)
- return (ready);
+ if (filetmp.f_data)
+ revents |= soo_poll(&filetmp, ap->a_events, ap->a_cred,
+ ap->a_p);
}
- return (0);
+ return (revents);
}
int
OpenPOWER on IntegriCloud