|
From: <sv...@va...> - 2005-07-28 16:08:14
|
Author: tom
Date: 2005-07-28 17:08:09 +0100 (Thu, 28 Jul 2005)
New Revision: 4288
Log:
Handle a number of additional block device ioctls. Fixes bug #109780.
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-27 23:04:28 UTC (=
rev 4287)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-07-28 16:08:09 UTC (=
rev 4288)
@@ -3458,9 +3458,38 @@
PRE_MEM_WRITE( "ioctl(RTC_IRQP_READ)", ARG3, sizeof(unsigned long)=
);
break;
=20
+ /* 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 l=
ong));
break;
@@ -4103,9 +4132,36 @@
POST_MEM_WRITE(ARG3, sizeof(unsigned long));
break;
=20
+ /* 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;
|