]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Add support for CDROMREADRAW and fix CDROMREADTOCENTRY to mark the right
authorTom Hughes <tom@compton.nu>
Mon, 8 May 2006 11:37:04 +0000 (11:37 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 8 May 2006 11:37:04 +0000 (11:37 +0000)
number of bytes as defined in the post handler. Fixes bug #126696.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5885

coregrind/m_syswrap/syswrap-generic.c
include/vki-linux.h

index fc18c467321b10c53ffc1758ddbcdf6d6b3a85e8..3054738318d7ee52b3cebe89eac16f31e58b69cc 100644 (file)
@@ -3624,6 +3624,10 @@ PRE(sys_ioctl)
       PRE_MEM_WRITE( "ioctl(CDROMVOLREAD)", ARG3,
                     sizeof(struct vki_cdrom_volctrl));
       break;
+   case VKI_CDROMREADRAW: /* 0x5314 */
+      PRE_MEM_READ( "ioctl(CDROMREADRAW)", ARG3, sizeof(struct vki_cdrom_msf));
+      PRE_MEM_WRITE( "ioctl(CDROMREADRAW)", ARG3, VKI_CD_FRAMESIZE_RAW);
+      break;
    case VKI_CDROMREADAUDIO: /* 0x530e */
       PRE_MEM_READ( "ioctl(CDROMREADAUDIO)", ARG3,
                     sizeof (struct vki_cdrom_read_audio));
@@ -4295,7 +4299,7 @@ POST(sys_ioctl)
       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tochdr));
       break;
    case VKI_CDROMREADTOCENTRY:
-      POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tochdr));
+      POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_tocentry));
       break;
    case VKI_CDROMMULTISESSION:
       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_multisession));
@@ -4303,6 +4307,9 @@ POST(sys_ioctl)
    case VKI_CDROMVOLREAD:
       POST_MEM_WRITE(ARG3, sizeof(struct vki_cdrom_volctrl));
       break;
+   case VKI_CDROMREADRAW:
+      POST_MEM_WRITE(ARG3, VKI_CD_FRAMESIZE_RAW);
+      break;
    case VKI_CDROMREADAUDIO:
    {
       struct vki_cdrom_read_audio *cra = (struct vki_cdrom_read_audio *) ARG3;
index 3dc701b050a03dc0ce7a733d2b7a264307c8f60f..1d6034261b08e8725f29fc1367efa2dcd9124980 100644 (file)
@@ -1620,6 +1620,8 @@ typedef struct vki_sg_scsi_id { /* used by SG_GET_SCSI_ID ioctl() */
                                            if available (struct cdrom_mcn) */
 #define VKI_CDROMVOLREAD       0x5313 /* Get the drive's volume setting
                                           (struct cdrom_volctrl) */
+#define VKI_CDROMREADRAW       0x5314  /* read data in raw mode (2352 Bytes)
+                                           (struct cdrom_read) */
 #define VKI_CDROM_CLEAR_OPTIONS        0x5321  /* Clear behavior options */
 #define VKI_CDROM_DRIVE_STATUS 0x5326  /* Get tray position, etc. */