aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/watch_queue.txt
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2022-03-16 11:18:40 +0100
committerDmitry Vyukov <dvyukov@google.com>2022-03-16 15:11:05 +0100
commit46cc3b2193a3be0e0043d9cb98af1121aeebf09d (patch)
treeadb896e692d32bd340d27494e51cfa05718100de /sys/linux/watch_queue.txt
parent3f1e91ed11e657c596a375b100695a8b4e0d6e37 (diff)
sys/linux: update watch queue descriptions
The interface has significantly changed since the first version. Update to the upstreammed interface. Fixes #3030
Diffstat (limited to 'sys/linux/watch_queue.txt')
-rw-r--r--sys/linux/watch_queue.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/linux/watch_queue.txt b/sys/linux/watch_queue.txt
new file mode 100644
index 000000000..f10bafbf4
--- /dev/null
+++ b/sys/linux/watch_queue.txt
@@ -0,0 +1,33 @@
+# Copyright 2019 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 <linux/fcntl.h>
+include <linux/ioctl.h>
+include <uapi/linux/watch_queue.h>
+
+resource fd_watch_queue[fd]
+
+pipe2$watch_queue(pipefd ptr[out, pipefd$watch_queue], flags const[O_NOTIFICATION_PIPE])
+read$watch_queue(fd fd_watch_queue, buf buffer[out], count len[buf])
+ioctl$IOC_WATCH_QUEUE_SET_SIZE(fd fd_watch_queue, cmd const[IOC_WATCH_QUEUE_SET_SIZE], arg flags[watch_queue_size])
+ioctl$IOC_WATCH_QUEUE_SET_FILTER(fd fd_watch_queue, cmd const[IOC_WATCH_QUEUE_SET_FILTER], arg ptr[in, watch_notification_filter])
+
+pipefd$watch_queue {
+ rfd fd_watch_queue
+ wfd fd
+}
+
+watch_notification_filter {
+ nr_filters len[filters, int32]
+ __reserved const[0, int32]
+ filters array[watch_notification_type_filter]
+}
+
+watch_notification_type_filter {
+ type int32
+ info_filter int32
+ info_mask int32
+ subtype_filter array[int32, 8]
+}
+
+watch_queue_size = 1, 2, 4, 8, 16