From 00a31dd3d1e7101b331c2c83fca6c666ba35d910 Mon Sep 17 00:00:00 2001 From: Christian Borntraeger Date: Tue, 5 Aug 2014 15:14:52 +0000 Subject: [PATCH] add support for VKI_BLKDISCARDZEROES this is used in some newer QEMU versions and other tools git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14235 --- NEWS | 1 + coregrind/m_syswrap/syswrap-linux.c | 6 ++++++ include/vki/vki-linux.h | 3 ++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index bdf4965d1b..01e985d369 100644 --- a/NEWS +++ b/NEWS @@ -209,6 +209,7 @@ n-i-bz internal error in Valgrind if vgdb transmit signals when ptrace invoked n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014) n-i-bz drd manual: Document how to C++11 programs that use class "std::thread" n-i-bz Add command-line option --default-suppressions +n-i-bz Add support for BLKDISCARDZEROES ioctl Release 3.9.0 (31 October 2013) diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 619a096104..4e5548f5d5 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -6087,6 +6087,9 @@ PRE(sys_ioctl) case VKI_BLKPBSZGET: PRE_MEM_WRITE( "ioctl(BLKPBSZGET)", ARG3, sizeof(int)); break; + case VKI_BLKDISCARDZEROES: + PRE_MEM_WRITE( "ioctl(BLKDISCARDZEROES)", ARG3, sizeof(vki_uint)); + break; /* Hard disks */ case VKI_HDIO_GETGEO: /* 0x0301 */ @@ -7694,6 +7697,9 @@ POST(sys_ioctl) case VKI_BLKPBSZGET: POST_MEM_WRITE(ARG3, sizeof(int)); break; + case VKI_BLKDISCARDZEROES: + POST_MEM_WRITE(ARG3, sizeof(vki_uint)); + break; /* Hard disks */ case VKI_HDIO_GETGEO: /* 0x0301 */ diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index f4e8669980..316959303b 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -1720,7 +1720,7 @@ struct vki_ppdev_frob_struct { #define VKI_PPSETFLAGS _VKI_IOW(VKI_PP_IOCTL, 0x9b, int) //---------------------------------------------------------------------- -// From linux-2.6.8.1/include/linux/fs.h +// From linux-3.16/include/uapi/linux/fs.h //---------------------------------------------------------------------- #define VKI_BLKROSET _VKI_IO(0x12,93) /* set device read-only (0 = read-write) */ @@ -1736,6 +1736,7 @@ struct vki_ppdev_frob_struct { #define VKI_BLKBSZSET _VKI_IOW(0x12,113,vki_size_t) #define VKI_BLKGETSIZE64 _VKI_IOR(0x12,114,vki_size_t) /* return device size in bytes (u64 *arg) */ #define VKI_BLKPBSZGET _VKI_IO(0x12,123) +#define VKI_BLKDISCARDZEROES _VKI_IO(0x12,124) #define VKI_FIBMAP _VKI_IO(0x00,1) /* bmap access */ #define VKI_FIGETBSZ _VKI_IO(0x00,2) /* get the block size used for bmap */ -- 2.47.2