From: Tom Hughes Date: Thu, 18 Feb 2010 15:54:45 +0000 (+0000) Subject: Fix up a few issues with OSS ioctls. Fixes #227325. X-Git-Tag: svn/VALGRIND_3_6_0~374 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3985923259a46a251894c1079ab5823f4e0bed0d;p=thirdparty%2Fvalgrind.git Fix up a few issues with OSS ioctls. Fixes #227325. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11050 --- diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index 1bff8bbadc..38c0ca4802 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -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: diff --git a/include/vki/vki-linux.h b/include/vki/vki-linux.h index db566f4aa5..214d7ca600 100644 --- a/include/vki/vki-linux.h +++ b/include/vki/vki-linux.h @@ -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) */