From fd2217006c54aa2bda8ac3c437faec25ff4bbaa7 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Thu, 28 Jul 2005 16:08:09 +0000 Subject: [PATCH] Handle a number of additional block device ioctls. Fixes bug #109780. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4288 --- coregrind/m_syswrap/syswrap-generic.c | 56 +++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index a6a4ba873b..7984f30039 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -3458,9 +3458,38 @@ PRE(sys_ioctl) PRE_MEM_WRITE( "ioctl(RTC_IRQP_READ)", ARG3, sizeof(unsigned long)); break; + /* Block devices */ + case VKI_BLKROSET: + PRE_MEM_READ( "ioctl(BLKROSET)", ARG3, sizeof(int)); + break; + case VKI_BLKROGET: + PRE_MEM_WRITE( "ioctl(BLKROGET)", ARG3, sizeof(int)); + break; case VKI_BLKGETSIZE: PRE_MEM_WRITE( "ioctl(BLKGETSIZE)", ARG3, sizeof(unsigned long)); break; + case VKI_BLKRASET: + break; + case VKI_BLKRAGET: + PRE_MEM_WRITE( "ioctl(BLKRAGET)", ARG3, sizeof(long)); + break; + case VKI_BLKFRASET: + break; + case VKI_BLKFRAGET: + PRE_MEM_WRITE( "ioctl(BLKFRAGET)", ARG3, sizeof(long)); + break; + case VKI_BLKSECTGET: + PRE_MEM_WRITE( "ioctl(BLKSECTGET)", ARG3, sizeof(unsigned short)); + break; + case VKI_BLKSSZGET: + PRE_MEM_WRITE( "ioctl(BLKSSZGET)", ARG3, sizeof(int)); + break; + case VKI_BLKBSZGET: + PRE_MEM_WRITE( "ioctl(BLKBSZGET)", ARG3, sizeof(int)); + break; + case VKI_BLKBSZSET: + PRE_MEM_READ( "ioctl(BLKBSZSET)", ARG3, sizeof(int)); + break; case VKI_BLKGETSIZE64: PRE_MEM_WRITE( "ioctl(BLKGETSIZE64)", ARG3, sizeof(unsigned long long)); break; @@ -4103,9 +4132,36 @@ POST(sys_ioctl) POST_MEM_WRITE(ARG3, sizeof(unsigned long)); break; + /* Block devices */ + case VKI_BLKROSET: + break; + case VKI_BLKROGET: + POST_MEM_WRITE(ARG3, sizeof(int)); + break; case VKI_BLKGETSIZE: POST_MEM_WRITE(ARG3, sizeof(unsigned long)); break; + case VKI_BLKRASET: + break; + case VKI_BLKRAGET: + POST_MEM_WRITE(ARG3, sizeof(long)); + break; + case VKI_BLKFRASET: + break; + case VKI_BLKFRAGET: + POST_MEM_WRITE(ARG3, sizeof(long)); + break; + case VKI_BLKSECTGET: + POST_MEM_WRITE(ARG3, sizeof(unsigned short)); + break; + case VKI_BLKSSZGET: + POST_MEM_WRITE(ARG3, sizeof(int)); + break; + case VKI_BLKBSZGET: + POST_MEM_WRITE(ARG3, sizeof(int)); + break; + case VKI_BLKBSZSET: + break; case VKI_BLKGETSIZE64: POST_MEM_WRITE(ARG3, sizeof(unsigned long long)); break; -- 2.47.3