summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornate <nate@openbsd.org>2003-06-27 16:20:58 +0000
committernate <nate@openbsd.org>2003-06-27 16:20:58 +0000
commit30fec190afa158d337b52177fa1fbdf11685843a (patch)
tree32c57ccffc8b478524e13e157bf765617ad1ede1
parent- add eephy (diff)
downloadwireguard-openbsd-30fec190afa158d337b52177fa1fbdf11685843a.tar.xz
wireguard-openbsd-30fec190afa158d337b52177fa1fbdf11685843a.zip
filter event that simulates seltrue(). From NetBSD
-rw-r--r--sys/kern/kern_event.c20
-rw-r--r--sys/sys/event.h3
2 files changed, 21 insertions, 2 deletions
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index 6352c2e1256..91cb9d260a5 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_event.c,v 1.18 2002/10/01 14:06:53 art Exp $ */
+/* $OpenBSD: kern_event.c,v 1.19 2003/06/27 16:20:58 nate Exp $ */
/*-
* Copyright (c) 1999,2000,2001 Jonathan Lemon <jlemon@FreeBSD.org>
@@ -288,6 +288,24 @@ filt_proc(struct knote *kn, long hint)
return (kn->kn_fflags != 0);
}
+/*
+ * filt_seltrue:
+ *
+ * This filter "event" routine simulates seltrue().
+ */
+int
+filt_seltrue(struct knote *kn, long hint)
+{
+
+ /*
+ * We don't know how much data can be read/written,
+ * but we know that it *can* be. This is about as
+ * good as select/poll does as well.
+ */
+ kn->kn_data = 0;
+ return (1);
+}
+
int
sys_kqueue(struct proc *p, void *v, register_t *retval)
{
diff --git a/sys/sys/event.h b/sys/sys/event.h
index 822e852fc46..2bf83d52640 100644
--- a/sys/sys/event.h
+++ b/sys/sys/event.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: event.h,v 1.5 2003/05/22 19:59:13 nate Exp $ */
+/* $OpenBSD: event.h,v 1.6 2003/06/27 16:20:58 nate Exp $ */
/*-
* Copyright (c) 1999,2000,2001 Jonathan Lemon <jlemon@FreeBSD.org>
@@ -165,6 +165,7 @@ extern void knote_remove(struct proc *p, struct klist *list);
extern void knote_fdclose(struct proc *p, int fd);
extern int kqueue_register(struct kqueue *kq,
struct kevent *kev, struct proc *p);
+extern int filt_seltrue(struct knote *kn, long hint);
#else /* !_KERNEL */