Jakub Jelinek 81c97a
--- valgrind-3.7.0/include/vki/vki-linux.h.jj	2011-10-26 23:24:31.000000000 +0200
Jakub Jelinek 81c97a
+++ valgrind-3.7.0/include/vki/vki-linux.h	2012-01-27 16:11:53.373379491 +0100
Jakub Jelinek 81c97a
@@ -1730,6 +1730,15 @@ typedef struct vki_sg_scsi_id { /* used
Jakub Jelinek 81c97a
 #define VKI_SG_SET_COMMAND_Q 0x2271   /* Change queuing state with 0 or 1 */
Jakub Jelinek 81c97a
 
Jakub Jelinek 81c97a
 //----------------------------------------------------------------------
Jakub Jelinek 81c97a
+// From linux-2.6.34/include/scsi/scsi.h and scsi/scsi_ioctl.h
Jakub Jelinek 81c97a
+//----------------------------------------------------------------------
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
+#define VKI_SCSI_IOCTL_DOORLOCK		0x5380 /* Lock the eject mechanism.  */
Jakub Jelinek 81c97a
+#define VKI_SCSI_IOCTL_DOORUNLOCK	0x5381 /* Unlock the mechanism.  */
Jakub Jelinek 81c97a
+#define VKI_SCSI_IOCTL_GET_IDLUN	0x5382
Jakub Jelinek 81c97a
+#define VKI_SCSI_IOCTL_GET_BUS_NUMBER	0x5386
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
+//----------------------------------------------------------------------
Jakub Jelinek 81c97a
 // From linux-2.6.8.1/include/linux/cdrom.h
Jakub Jelinek 81c97a
 //----------------------------------------------------------------------
Jakub Jelinek 81c97a
 
Jakub Jelinek 81c97a
--- valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c.jj	2012-01-27 13:27:26.000000000 +0100
Jakub Jelinek 81c97a
+++ valgrind-3.7.0/coregrind/m_syswrap/syswrap-linux.c	2012-01-27 16:18:05.377177786 +0100
Jakub Jelinek 81c97a
@@ -3935,6 +3935,10 @@ PRE(sys_ioctl)
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_STOP:
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_CONTINUE:
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_PAUSE:
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
+      /* SCSI no operand */
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_DOORLOCK:
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_DOORUNLOCK:
Jakub Jelinek 81c97a
       PRINT("sys_ioctl ( %ld, 0x%lx )",ARG1,ARG2);
Jakub Jelinek 81c97a
       PRE_REG_READ2(long, "ioctl",
Jakub Jelinek 81c97a
                     unsigned int, fd, unsigned int, request);
Jakub Jelinek 81c97a
@@ -4420,6 +4424,14 @@ PRE(sys_ioctl)
Jakub Jelinek 81c97a
                      VKI_SIZEOF_STRUCT_HD_DRIVEID );
Jakub Jelinek 81c97a
       break;
Jakub Jelinek 81c97a
 
Jakub Jelinek 81c97a
+      /* SCSI */
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_GET_IDLUN: /* 0x5382 */
Jakub Jelinek 81c97a
+      PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_IDLUN)", ARG3, 2*sizeof(int));
Jakub Jelinek 81c97a
+      break;
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_GET_BUS_NUMBER: /* 0x5386 */
Jakub Jelinek 81c97a
+      PRE_MEM_WRITE( "ioctl(SCSI_IOCTL_GET_BUS_NUMBER)", ARG3, sizeof(int));
Jakub Jelinek 81c97a
+      break;
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
       /* CD ROM stuff (??)  */
Jakub Jelinek 81c97a
    case VKI_CDROM_GET_MCN:
Jakub Jelinek 81c97a
       PRE_MEM_READ( "ioctl(CDROM_GET_MCN)", ARG3,
Jakub Jelinek 81c97a
@@ -5521,6 +5533,10 @@ POST(sys_ioctl)
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_STOP:
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_CONTINUE:
Jakub Jelinek 81c97a
    case VKI_SNDRV_TIMER_IOCTL_PAUSE:
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
+      /* SCSI no operand */
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_DOORLOCK:
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_DOORUNLOCK:
Jakub Jelinek 81c97a
       break;
Jakub Jelinek 81c97a
 
Jakub Jelinek 81c97a
       /* Real Time Clock (/dev/rtc) ioctls */
Jakub Jelinek 81c97a
@@ -5587,6 +5603,14 @@ POST(sys_ioctl)
Jakub Jelinek 81c97a
       POST_MEM_WRITE(ARG3, VKI_SIZEOF_STRUCT_HD_DRIVEID );
Jakub Jelinek 81c97a
       break;
Jakub Jelinek 81c97a
 
Jakub Jelinek 81c97a
+      /* SCSI */
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_GET_IDLUN: /* 0x5382 */
Jakub Jelinek 81c97a
+      POST_MEM_WRITE(ARG3, 2*sizeof(int));
Jakub Jelinek 81c97a
+      break;
Jakub Jelinek 81c97a
+   case VKI_SCSI_IOCTL_GET_BUS_NUMBER: /* 0x5386 */
Jakub Jelinek 81c97a
+      POST_MEM_WRITE(ARG3, sizeof(int));
Jakub Jelinek 81c97a
+      break;
Jakub Jelinek 81c97a
+
Jakub Jelinek 81c97a
       /* CD ROM stuff (??)  */
Jakub Jelinek 81c97a
    case VKI_CDROMSUBCHNL:
Jakub Jelinek 81c97a
       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_subchnl));