2014-04-18 23:44:56 +02:00
|
|
|
From 6b62214c4bd34a4480814ac47449fab7c34305ed Mon Sep 17 00:00:00 2001
|
2012-10-10 19:32:24 +02:00
|
|
|
From: Alexander Graf <agraf@suse.de>
|
|
|
|
Date: Wed, 10 Oct 2012 10:21:20 +0200
|
|
|
|
Subject: [PATCH] linux-user: add more blk ioctls
|
|
|
|
|
|
|
|
Implement a few more ioctls that operate on block devices.
|
|
|
|
|
|
|
|
Signed-off-by: Alexander Graf <agraf@suse.de>
|
|
|
|
---
|
2014-01-17 23:04:30 +01:00
|
|
|
linux-user/ioctls.h | 18 ++++++++++++++++++
|
|
|
|
linux-user/syscall_defs.h | 6 ++++++
|
|
|
|
linux-user/syscall_types.h | 3 +++
|
|
|
|
3 files changed, 27 insertions(+)
|
2012-10-10 19:32:24 +02:00
|
|
|
|
|
|
|
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h
|
2014-03-20 01:26:56 +01:00
|
|
|
index d76575c..ffd6d09 100644
|
2012-10-10 19:32:24 +02:00
|
|
|
--- a/linux-user/ioctls.h
|
|
|
|
+++ b/linux-user/ioctls.h
|
2013-12-08 06:19:09 +01:00
|
|
|
@@ -72,6 +72,24 @@
|
2012-10-10 19:32:24 +02:00
|
|
|
#ifdef BLKGETSIZE64
|
|
|
|
IOCTL(BLKGETSIZE64, IOC_R, MK_PTR(TYPE_ULONGLONG))
|
|
|
|
#endif
|
|
|
|
+#ifdef BLKDISCARD
|
|
|
|
+ IOCTL(BLKDISCARD, IOC_W, MK_PTR(MK_STRUCT(STRUCT_blkdiscard)))
|
|
|
|
+#endif
|
|
|
|
+#ifdef BLKIOMIN
|
|
|
|
+ IOCTL(BLKIOMIN, IOC_R, MK_PTR(TYPE_INT))
|
|
|
|
+#endif
|
|
|
|
+#ifdef BLKIOOPT
|
|
|
|
+ IOCTL(BLKIOOPT, IOC_R, MK_PTR(TYPE_INT))
|
|
|
|
+#endif
|
|
|
|
+#ifdef BLKALIGNOFF
|
|
|
|
+ IOCTL(BLKALIGNOFF, IOC_R, MK_PTR(TYPE_INT))
|
|
|
|
+#endif
|
|
|
|
+#ifdef BLKPBSZGET
|
|
|
|
+ IOCTL(BLKPBSZGET, IOC_R, MK_PTR(TYPE_INT))
|
|
|
|
+#endif
|
|
|
|
+#ifdef BLKDISCARDZEROES
|
|
|
|
+ IOCTL(BLKDISCARDZEROES, IOC_R, MK_PTR(TYPE_INT))
|
|
|
|
+#endif
|
|
|
|
IOCTL(BLKFLSBUF, 0, TYPE_NULL)
|
|
|
|
IOCTL(BLKRASET, 0, TYPE_INT)
|
|
|
|
IOCTL(BLKRAGET, IOC_R, MK_PTR(TYPE_LONG))
|
|
|
|
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
|
2014-04-04 00:50:11 +02:00
|
|
|
index 03863a6..2271d5f 100644
|
2012-10-10 19:32:24 +02:00
|
|
|
--- a/linux-user/syscall_defs.h
|
|
|
|
+++ b/linux-user/syscall_defs.h
|
2014-03-20 01:26:56 +01:00
|
|
|
@@ -913,6 +913,12 @@ struct target_pollfd {
|
2012-10-10 19:32:24 +02:00
|
|
|
#define TARGET_BLKGETSIZE64 TARGET_IOR(0x12,114,abi_ulong)
|
|
|
|
/* return device size in bytes
|
|
|
|
(u64 *arg) */
|
|
|
|
+#define TARGET_BLKDISCARD TARGET_IO(0x12,119)
|
|
|
|
+#define TARGET_BLKIOMIN TARGET_IO(0x12,120)
|
|
|
|
+#define TARGET_BLKIOOPT TARGET_IO(0x12,121)
|
|
|
|
+#define TARGET_BLKALIGNOFF TARGET_IO(0x12,122)
|
|
|
|
+#define TARGET_BLKPBSZGET TARGET_IO(0x12,123)
|
|
|
|
+#define TARGET_BLKDISCARDZEROES TARGET_IO(0x12,124)
|
|
|
|
#define TARGET_FIBMAP TARGET_IO(0x00,1) /* bmap access */
|
|
|
|
#define TARGET_FIGETBSZ TARGET_IO(0x00,2) /* get the block size used for bmap */
|
|
|
|
#define TARGET_FS_IOC_FIEMAP TARGET_IOWR('f',11,struct fiemap)
|
|
|
|
diff --git a/linux-user/syscall_types.h b/linux-user/syscall_types.h
|
2014-03-20 01:26:56 +01:00
|
|
|
index 193bee1..56e344c 100644
|
2012-10-10 19:32:24 +02:00
|
|
|
--- a/linux-user/syscall_types.h
|
|
|
|
+++ b/linux-user/syscall_types.h
|
|
|
|
@@ -71,6 +71,9 @@ STRUCT(kbentry,
|
|
|
|
STRUCT(kbsentry,
|
|
|
|
TYPE_CHAR, MK_ARRAY(TYPE_CHAR, 512))
|
|
|
|
|
|
|
|
+STRUCT(blkdiscard,
|
|
|
|
+ MK_ARRAY(TYPE_LONGLONG, 2))
|
|
|
|
+
|
|
|
|
STRUCT(audio_buf_info,
|
|
|
|
TYPE_INT, TYPE_INT, TYPE_INT, TYPE_INT)
|
|
|
|
|