summaryrefslogtreecommitdiffstats
path: root/sys/sys/event.h
diff options
context:
space:
mode:
authorvisa <visa@openbsd.org>2020-04-07 13:27:50 +0000
committervisa <visa@openbsd.org>2020-04-07 13:27:50 +0000
commit9c969c9ab4dbfc69101f439c13329bb852e9fe18 (patch)
tree85e62132ace95376b927a5e1d5fc9bfb8d92ce37 /sys/sys/event.h
parentDefer selwakeup() from kqueue_wakeup() to kqueue_task() to prevent (diff)
downloadwireguard-openbsd-9c969c9ab4dbfc69101f439c13329bb852e9fe18.tar.xz
wireguard-openbsd-9c969c9ab4dbfc69101f439c13329bb852e9fe18.zip
Abstract the head of knote lists. This allows extending the lists,
for example, with locking assertions. OK mpi@, anton@
Diffstat (limited to 'sys/sys/event.h')
-rw-r--r--sys/sys/event.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/sys/event.h b/sys/sys/event.h
index 7d66820a65f..2c345f378d6 100644
--- a/sys/sys/event.h
+++ b/sys/sys/event.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: event.h,v 1.34 2020/04/04 08:57:36 mpi Exp $ */
+/* $OpenBSD: event.h,v 1.35 2020/04/07 13:27:52 visa Exp $ */
/*-
* Copyright (c) 1999,2000,2001 Jonathan Lemon <jlemon@FreeBSD.org>
@@ -121,7 +121,11 @@ struct kevent {
*/
#include <sys/queue.h>
struct knote;
-SLIST_HEAD(klist, knote);
+SLIST_HEAD(knlist, knote);
+
+struct klist {
+ struct knlist kl_list;
+};
#ifdef _KERNEL
@@ -191,13 +195,16 @@ extern const struct filterops sig_filtops;
extern void knote(struct klist *list, long hint);
extern void knote_activate(struct knote *);
-extern void knote_remove(struct proc *p, struct klist *list);
+extern void knote_remove(struct proc *p, struct knlist *list);
extern void knote_fdclose(struct proc *p, int fd);
extern void knote_processexit(struct proc *);
extern int kqueue_register(struct kqueue *kq,
struct kevent *kev, struct proc *p);
extern int filt_seltrue(struct knote *kn, long hint);
extern int seltrue_kqfilter(dev_t, struct knote *);
+extern void klist_insert(struct klist *, struct knote *);
+extern void klist_remove(struct klist *, struct knote *);
+extern int klist_empty(struct klist *);
extern void klist_invalidate(struct klist *);
#else /* !_KERNEL */