aboutsummaryrefslogtreecommitdiffstats
path: root/sys/openbsd/kqueue.txt
blob: 0ffc5ca8e4b4dd45366cdf03fe3c99acda84901a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Copyright 2018 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

include <sys/types.h>
include <sys/event.h>
include <sys/time.h>

resource fd_kqueue[fd]

kqueue() fd_kqueue
kevent(kd fd_kqueue, changelist ptr[in, array[kevent]], nchanges int32, eventlist ptr[in, array[kevent]], nevents int32, timeout ptr[in, timespec])

kevent_ident {
	ident	fd
} [size[8]]

kevent {
	ident	kevent_ident
	filter	flags[kevent_filter, int16]
	flags	flags[kevent_flags, int16]
	fflags	flags[kevent_fflags, int32]
	data	int64
	udata	intptr
}

kevent_filter = EVFILT_READ, EVFILT_WRITE, EVFILT_AIO, EVFILT_VNODE, EVFILT_PROC, EVFILT_SIGNAL, EVFILT_TIMER, EVFILT_DEVICE
kevent_flags = EV_ADD, EV_DELETE, EV_ENABLE, EV_DISABLE, EV_ONESHOT, EV_CLEAR, EV_RECEIPT, EV_DISPATCH
kevent_fflags = NOTE_LOWAT, NOTE_EOF, NOTE_DELETE, NOTE_WRITE, NOTE_EXTEND, NOTE_ATTRIB, NOTE_LINK, NOTE_RENAME, NOTE_REVOKE, NOTE_TRUNCATE, NOTE_EXIT, NOTE_FORK, NOTE_EXEC, NOTE_PCTRLMASK, NOTE_PDATAMASK, NOTE_TRACK, NOTE_TRACKERR, NOTE_CHILD, NOTE_CHANGE