diff options
author | visa <visa@openbsd.org> | 2020-04-07 13:27:50 +0000 |
---|---|---|
committer | visa <visa@openbsd.org> | 2020-04-07 13:27:50 +0000 |
commit | 9c969c9ab4dbfc69101f439c13329bb852e9fe18 (patch) | |
tree | 85e62132ace95376b927a5e1d5fc9bfb8d92ce37 /sys/sys/event.h | |
parent | Defer selwakeup() from kqueue_wakeup() to kqueue_task() to prevent (diff) | |
download | wireguard-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.h | 13 |
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 */ |