]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix up a few issues with OSS ioctls. Fixes #227325.
authorTom Hughes <tom@compton.nu>
Thu, 18 Feb 2010 15:54:45 +0000 (15:54 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 18 Feb 2010 15:54:45 +0000 (15:54 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11050

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

index 1bff8bbadc000c7c106d415f7753fa53d7f78201..38c0ca4802fb7a9519d1b5051ae7103ade70300a 100644 (file)
@@ -4035,6 +4035,7 @@ PRE(sys_ioctl)
    case VKI_SNDCTL_SEQ_NRSYNTHS:
    case VKI_SNDCTL_SEQ_NRMIDIS:
    case VKI_SNDCTL_SEQ_GETTIME:
+   case VKI_SNDCTL_DSP_GETBLKSIZE:
    case VKI_SNDCTL_DSP_GETFMTS:
    case VKI_SNDCTL_DSP_GETTRIGGER:
    case VKI_SNDCTL_DSP_GETODELAY:
@@ -4043,9 +4044,6 @@ PRE(sys_ioctl)
    case VKI_SOUND_PCM_READ_RATE:
    case VKI_SOUND_PCM_READ_CHANNELS:
    case VKI_SOUND_PCM_READ_BITS:
-#if !defined(VGA_ppc32) && !defined(VGA_ppc64)
-   case (VKI_SOUND_PCM_READ_BITS|0x40000000): /* what the fuck ? */
-#endif
    case VKI_SOUND_PCM_READ_FILTER:
       PRE_MEM_WRITE( "ioctl(SNDCTL_XXX|SOUND_XXX (SIOR, int))", 
                     ARG3, sizeof(int));
@@ -4053,11 +4051,11 @@ PRE(sys_ioctl)
    case VKI_SNDCTL_SEQ_CTRLRATE:
    case VKI_SNDCTL_DSP_SPEED:
    case VKI_SNDCTL_DSP_STEREO:
-   case VKI_SNDCTL_DSP_GETBLKSIZE: 
    case VKI_SNDCTL_DSP_CHANNELS:
    case VKI_SOUND_PCM_WRITE_FILTER:
    case VKI_SNDCTL_DSP_SUBDIVIDE:
    case VKI_SNDCTL_DSP_SETFRAGMENT:
+   case VKI_SNDCTL_DSP_SETFMT:
    case VKI_SNDCTL_DSP_GETCHANNELMASK:
    case VKI_SNDCTL_DSP_BIND_CHANNEL:
    case VKI_SNDCTL_TMR_TIMEBASE:
@@ -5006,7 +5004,9 @@ POST(sys_ioctl)
    case VKI_SNDCTL_SEQ_NRSYNTHS:
    case VKI_SNDCTL_SEQ_NRMIDIS:
    case VKI_SNDCTL_SEQ_GETTIME:
+   case VKI_SNDCTL_DSP_GETBLKSIZE:
    case VKI_SNDCTL_DSP_GETFMTS:
+   case VKI_SNDCTL_DSP_SETFMT:
    case VKI_SNDCTL_DSP_GETTRIGGER:
    case VKI_SNDCTL_DSP_GETODELAY:
    case VKI_SNDCTL_DSP_GETSPDIF:
@@ -5014,16 +5014,12 @@ POST(sys_ioctl)
    case VKI_SOUND_PCM_READ_RATE:
    case VKI_SOUND_PCM_READ_CHANNELS:
    case VKI_SOUND_PCM_READ_BITS:
-#if !defined(VGA_ppc32) && !defined(VGA_ppc64)
-   case (VKI_SOUND_PCM_READ_BITS|0x40000000): /* what the fuck ? */
-#endif
    case VKI_SOUND_PCM_READ_FILTER:
       POST_MEM_WRITE(ARG3, sizeof(int));
       break;
    case VKI_SNDCTL_SEQ_CTRLRATE:
    case VKI_SNDCTL_DSP_SPEED:
    case VKI_SNDCTL_DSP_STEREO:
-   case VKI_SNDCTL_DSP_GETBLKSIZE: 
    case VKI_SNDCTL_DSP_CHANNELS:
    case VKI_SOUND_PCM_WRITE_FILTER:
    case VKI_SNDCTL_DSP_SUBDIVIDE:
index db566f4aa55309611a9ee2af2100cfa9ada5721f..214d7ca600fcabaf4efaca5b5c36c8d4b8f68602 100644 (file)
@@ -1868,6 +1868,7 @@ struct vki_cdrom_generic_command
 #define VKI_SNDCTL_DSP_SETFRAGMENT     _VKI_SIOWR('P',10, int)
 
 #define VKI_SNDCTL_DSP_GETFMTS         _VKI_SIOR ('P',11, int) /* Returns a mask */
+#define VKI_SNDCTL_DSP_SETFMT          _VKI_SIOWR('P', 5, int) /* Selects ONE fmt */
 
 typedef struct vki_audio_buf_info {
                        int fragments;  /* # of available fragments (partially usend ones not counted) */