summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYunqiang Su2019-09-04 14:59:24 +0200
committerLaurent Vivier2019-09-11 08:47:06 +0200
commitab22b4dd749f5769e72eaf4dd368072196ef29af (patch)
treefa2a5fb5b545bc8524ee2c4c2c87490b67c99c77
parentlinux-user: Add support for FIOGETOWN and FIOSETOWN ioctls (diff)
downloadqemu-ab22b4dd749f5769e72eaf4dd368072196ef29af.tar.gz
qemu-ab22b4dd749f5769e72eaf4dd368072196ef29af.tar.xz
qemu-ab22b4dd749f5769e72eaf4dd368072196ef29af.zip
linux-user: Add support for FDFLUSH ioctl
FDFLUSH is used for flushing buffers of floppy drives. Support in QEMU is needed because some of Debian packages use this ioctl while running post-build tests. One such example is 'tar' package. Signed-off-by: Yunqiang Su <ysu@wavecomp.com> Signed-off-by: Aleksandar Markovic <amarkovic@wavecomp.com> Reviewed-by: Laurent Vivier <laurent@vivier.eu> Message-Id: <1567601968-26946-5-git-send-email-aleksandar.markovic@rt-rk.com> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
-rw-r--r--linux-user/ioctls.h2
-rw-r--r--linux-user/syscall.c1
-rw-r--r--linux-user/syscall_defs.h4
3 files changed, 7 insertions, 0 deletions
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
index 1830de96e1..bc19448042 100644
--- a/linux-user/ioctls.h
+++ b/linux-user/ioctls.h
@@ -112,6 +112,8 @@
IOCTL(BLKZEROOUT, IOC_W, MK_PTR(MK_ARRAY(TYPE_ULONGLONG, 2)))
#endif
+ IOCTL(FDFLUSH, 0, TYPE_NULL)
+
#ifdef FIBMAP
IOCTL(FIBMAP, IOC_W | IOC_R, MK_PTR(TYPE_LONG))
#endif
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 6928f654ce..e2af3c1494 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -89,6 +89,7 @@
#include <linux/kd.h>
#include <linux/mtio.h>
#include <linux/fs.h>
+#include <linux/fd.h>
#if defined(CONFIG_FIEMAP)
#include <linux/fiemap.h>
#endif
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 498223b777..917202a203 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -888,6 +888,10 @@ struct target_pollfd {
#define TARGET_BLKROTATIONAL TARGET_IO(0x12, 126)
#define TARGET_BLKZEROOUT TARGET_IO(0x12, 127)
+/* From <linux/fd.h> */
+
+#define TARGET_FDFLUSH TARGET_IO(2, 0x4b)
+
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
#define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */