| # 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] |
| |
| openat$watch_queue(fd const[AT_FDCWD], file ptr[in, string["/dev/fd_watch_queue"]], flags flags[open_flags], mode const[0]) fd_watch_queue |
| mmap$watch_queue(addr vma, len len[addr], prot flags[mmap_prot], flags flags[mmap_flags], fd fd_watch_queue, offset const[0]) |
| 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]) |
| |
| watch_devices(watch_fd fd_watch_queue, watch_id intptr[-1:0xff], flags const[0]) |
| |
| 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 |
| _ = __NR_mmap2 |