aboutsummaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorDenis Efremov <efremov@linux.com>2021-09-18 16:47:16 +0300
committerDmitry Vyukov <dvyukov@google.com>2021-11-08 12:48:12 +0100
commit3ea5a3451b2bfa90a3b73397273560f17d587efc (patch)
treee14a8ebdae0e0ae49c13c60e478fd616d8f9e051 /sys
parentd29682f18fd5f7d995e5c37b957b19469908a526 (diff)
sys/linux: add O_ACCMODE to floppy's open flags
O_ACCMODE is used for ioctl-only opens in the floppy driver. Drop O_CREAT, O_DIRECTORY, O_EXCL, O_LARGEFILE, O_NOCTTY, O_NOFOLLOW, O_PATH and __O_TMPFILE flags. They aren't affecting /dev/fd0. Signed-off-by: Denis Efremov <efremov@linux.com>
Diffstat (limited to 'sys')
-rw-r--r--sys/linux/dev_floppy.txt9
-rw-r--r--sys/linux/dev_floppy.txt.const11
2 files changed, 19 insertions, 1 deletions
diff --git a/sys/linux/dev_floppy.txt b/sys/linux/dev_floppy.txt
index 38244889d..7397dabde 100644
--- a/sys/linux/dev_floppy.txt
+++ b/sys/linux/dev_floppy.txt
@@ -9,7 +9,14 @@ include <uapi/linux/fd.h>
resource fd_floppy[fd]
-syz_open_dev$floppy(dev ptr[in, string["/dev/fd#"]], id intptr, flags flags[open_flags]) fd_floppy
+# O_ACCMODE is used for ioctl-only opens, see FMODE_WRITE_IOCTL
+# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/include/linux/fs.h?h=v5.14#n129
+# Examples:
+# - https://sources.debian.org/src/fdutils/5.6-2/src/floppycontrol.c/?hl=289#L289
+# - https://sources.debian.org/src/fdutils/5.6-2/src/diskd.c/?hl=90#L90
+fd_open_flags = O_WRONLY, O_RDWR, O_ACCMODE, O_APPEND, FASYNC, O_CLOEXEC, O_DIRECT, O_NOATIME, O_NONBLOCK, O_SYNC, O_TRUNC
+
+syz_open_dev$floppy(dev ptr[in, string["/dev/fd#"]], id intptr, flags flags[fd_open_flags]) fd_floppy
ioctl$FLOPPY_FDEJECT(fd fd_floppy, cmd const[FDEJECT])
ioctl$FLOPPY_FDCLRPRM(fd fd_floppy, cmd const[FDCLRPRM])
diff --git a/sys/linux/dev_floppy.txt.const b/sys/linux/dev_floppy.txt.const
index 1809a6e38..0d3e1f12f 100644
--- a/sys/linux/dev_floppy.txt.const
+++ b/sys/linux/dev_floppy.txt.const
@@ -1,5 +1,6 @@
# Code generated by syz-sysgen. DO NOT EDIT.
arches = 386, amd64, arm, arm64, mips64le, ppc64le, riscv64, s390x
+FASYNC = 8192, mips64le:4096
FDCLRPRM = 577, mips64le:ppc64le:536871489
FDDEFPRM = 1075839555, 386:arm:1075577411, mips64le:ppc64le:2149581379
FDEJECT = 602, mips64le:ppc64le:536871514
@@ -55,4 +56,14 @@ FD_SILENT_DCL_CLEAR = 4
FD_UNUSED_BIT = 3
FD_VERIFY_BIT = 1
FTD_MSG = 16
+O_ACCMODE = 3
+O_APPEND = 1024, mips64le:8
+O_CLOEXEC = 524288
+O_DIRECT = 16384, arm:arm64:65536, mips64le:32768, ppc64le:131072
+O_NOATIME = 262144
+O_NONBLOCK = 2048, mips64le:128
+O_RDWR = 2
+O_SYNC = 1052672, mips64le:16400
+O_TRUNC = 512
+O_WRONLY = 1
__NR_ioctl = 54, amd64:16, arm64:riscv64:29, mips64le:5015