diff options
author | Alexander Graf <agraf@suse.de> | 2012-10-10 10:21:20 +0200 |
---|---|---|
committer | Junfeng Dong <junfeng.dong@intel.com> | 2013-11-19 18:57:38 +0800 |
commit | 1821633a9aa46ea9fc18a543e0114a13b4f7e74b (patch) | |
tree | 4640b8a23fea573122b2264049fc9cac3b5ac374 | |
parent | d261962d5428204a31d7dc4c0737183c6dc52ed5 (diff) | |
download | qemu-1821633a9aa46ea9fc18a543e0114a13b4f7e74b.tar.gz qemu-1821633a9aa46ea9fc18a543e0114a13b4f7e74b.tar.bz2 qemu-1821633a9aa46ea9fc18a543e0114a13b4f7e74b.zip |
linux-user: add more blk ioctls
Implement a few more ioctls that operate on block devices.
Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r-- | linux-user/ioctls.h | 18 | ||||
-rw-r--r-- | linux-user/syscall_defs.h | 6 | ||||
-rw-r--r-- | linux-user/syscall_types.h | 3 |
3 files changed, 27 insertions, 0 deletions
diff --git a/linux-user/ioctls.h b/linux-user/ioctls.h index a77b72c38..4c6d2ee5b 100644 --- a/linux-user/ioctls.h +++ b/linux-user/ioctls.h @@ -71,6 +71,24 @@ #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 index bbcdec279..5aeb3dd00 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -889,6 +889,12 @@ struct target_pollfd { #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 index 7897e37a6..dd78619a2 100644 --- 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) |