From: Tom Hughes Date: Mon, 8 May 2006 11:37:04 +0000 (+0000) Subject: Add support for CDROMREADRAW and fix CDROMREADTOCENTRY to mark the right X-Git-Tag: svn/VALGRIND_3_2_0~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=17b262ab87d6ae51f9f04d98ac624b7c6aa20087;p=thirdparty%2Fvalgrind.git Add support for CDROMREADRAW and fix CDROMREADTOCENTRY to mark the right number of bytes as defined in the post handler. Fixes bug #126696. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5885 --- diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index fc18c46732..3054738318 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -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; diff --git a/include/vki-linux.h b/include/vki-linux.h index 3dc701b050..1d6034261b 100644 --- a/include/vki-linux.h +++ b/include/vki-linux.h @@ -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. */