summaryrefslogtreecommitdiffstats
path: root/sys/miscfs/deadfs/dead_vnops.c
diff options
context:
space:
mode:
authormillert <millert@openbsd.org>2003-09-23 16:51:11 +0000
committermillert <millert@openbsd.org>2003-09-23 16:51:11 +0000
commit154dfaaa7e8e47825c6990a73b3eba25e82ebbb9 (patch)
treebae4f380ce55fc233a68444dffc895a9dabf0b91 /sys/miscfs/deadfs/dead_vnops.c
parentregen (Prepare for conversion of select backend -> poll) (diff)
downloadwireguard-openbsd-154dfaaa7e8e47825c6990a73b3eba25e82ebbb9.tar.xz
wireguard-openbsd-154dfaaa7e8e47825c6990a73b3eba25e82ebbb9.zip
Replace select backends with poll backends. selscan() and pollscan()
now call the poll backend. With this change we implement greater poll(2) functionality instead of emulating it via the select backend. Adapted from NetBSD and including some changes from FreeBSD. Tested by many, deraadt@ OK
Diffstat (limited to 'sys/miscfs/deadfs/dead_vnops.c')
-rw-r--r--sys/miscfs/deadfs/dead_vnops.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/sys/miscfs/deadfs/dead_vnops.c b/sys/miscfs/deadfs/dead_vnops.c
index cbfb7b817f7..b91827115bc 100644
--- a/sys/miscfs/deadfs/dead_vnops.c
+++ b/sys/miscfs/deadfs/dead_vnops.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: dead_vnops.c,v 1.14 2003/06/02 23:28:10 millert Exp $ */
+/* $OpenBSD: dead_vnops.c,v 1.15 2003/09/23 16:51:12 millert Exp $ */
/* $NetBSD: dead_vnops.c,v 1.16 1996/02/13 13:12:48 mycroft Exp $ */
/*
@@ -40,6 +40,7 @@
#include <sys/namei.h>
#include <sys/buf.h>
#include <sys/proc.h>
+#include <sys/poll.h>
/*
* Prototypes for dead operations on vnodes.
@@ -58,7 +59,7 @@ int dead_open(void *);
int dead_read(void *);
int dead_write(void *);
int dead_ioctl(void *);
-int dead_select(void *);
+int dead_poll(void *);
#define dead_fsync nullop
#define dead_remove dead_badop
#define dead_link dead_badop
@@ -98,7 +99,7 @@ struct vnodeopv_entry_desc dead_vnodeop_entries[] = {
{ &vop_read_desc, dead_read }, /* read */
{ &vop_write_desc, dead_write }, /* write */
{ &vop_ioctl_desc, dead_ioctl }, /* ioctl */
- { &vop_select_desc, dead_select }, /* select */
+ { &vop_poll_desc, dead_poll }, /* poll */
{ &vop_fsync_desc, dead_fsync }, /* fsync */
{ &vop_remove_desc, dead_remove }, /* remove */
{ &vop_link_desc, dead_link }, /* link */
@@ -224,13 +225,21 @@ dead_ioctl(v)
/* ARGSUSED */
int
-dead_select(v)
+dead_poll(v)
void *v;
{
+#if 0
+ struct vop_poll_args /* {
+ struct vnode *a_vp;
+ int a_events;
+ struct proc *a_p;
+ } */ *ap = v;
+#endif
+
/*
* Let the user find out that the descriptor is gone.
*/
- return (1);
+ return (POLLHUP);
}
/*