From: Tom Hughes Date: Mon, 14 Nov 2005 17:03:54 +0000 (+0000) Subject: Handle some ALSA ioctls that don't have size or direction hints. X-Git-Tag: svn/VALGRIND_3_1_0~101 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=39e6ec034f5cafc1d22f826f70e4b3a46e9daf3c;p=thirdparty%2Fvalgrind.git Handle some ALSA ioctls that don't have size or direction hints. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5131 --- diff --git a/coregrind/m_syswrap/syswrap-generic.c b/coregrind/m_syswrap/syswrap-generic.c index 06121746e5..6bce26df33 100644 --- a/coregrind/m_syswrap/syswrap-generic.c +++ b/coregrind/m_syswrap/syswrap-generic.c @@ -3472,6 +3472,23 @@ PRE(sys_ioctl) case VKI_SNDCTL_DSP_SETDUPLEX: break; + /* linux/soundcard interface (ALSA) */ + case VKI_SNDRV_PCM_IOCTL_HW_FREE: + case VKI_SNDRV_PCM_IOCTL_HWSYNC: + case VKI_SNDRV_PCM_IOCTL_PREPARE: + case VKI_SNDRV_PCM_IOCTL_RESET: + case VKI_SNDRV_PCM_IOCTL_START: + case VKI_SNDRV_PCM_IOCTL_DROP: + case VKI_SNDRV_PCM_IOCTL_DRAIN: + case VKI_SNDRV_PCM_IOCTL_RESUME: + case VKI_SNDRV_PCM_IOCTL_XRUN: + case VKI_SNDRV_PCM_IOCTL_UNLINK: + case VKI_SNDRV_TIMER_IOCTL_START: + case VKI_SNDRV_TIMER_IOCTL_STOP: + case VKI_SNDRV_TIMER_IOCTL_CONTINUE: + case VKI_SNDRV_TIMER_IOCTL_PAUSE: + break; + /* Real Time Clock (/dev/rtc) ioctls */ case VKI_RTC_UIE_ON: case VKI_RTC_UIE_OFF: @@ -4154,6 +4171,23 @@ POST(sys_ioctl) case VKI_SNDCTL_DSP_SETDUPLEX: break; + /* linux/soundcard interface (ALSA) */ + case VKI_SNDRV_PCM_IOCTL_HW_FREE: + case VKI_SNDRV_PCM_IOCTL_HWSYNC: + case VKI_SNDRV_PCM_IOCTL_PREPARE: + case VKI_SNDRV_PCM_IOCTL_RESET: + case VKI_SNDRV_PCM_IOCTL_START: + case VKI_SNDRV_PCM_IOCTL_DROP: + case VKI_SNDRV_PCM_IOCTL_DRAIN: + case VKI_SNDRV_PCM_IOCTL_RESUME: + case VKI_SNDRV_PCM_IOCTL_XRUN: + case VKI_SNDRV_PCM_IOCTL_UNLINK: + case VKI_SNDRV_TIMER_IOCTL_START: + case VKI_SNDRV_TIMER_IOCTL_STOP: + case VKI_SNDRV_TIMER_IOCTL_CONTINUE: + case VKI_SNDRV_TIMER_IOCTL_PAUSE: + break; + /* Real Time Clock (/dev/rtc) ioctls */ case VKI_RTC_UIE_ON: case VKI_RTC_UIE_OFF: diff --git a/include/vki-linux.h b/include/vki-linux.h index f61152308c..dfeb35b2eb 100644 --- a/include/vki-linux.h +++ b/include/vki-linux.h @@ -2066,6 +2066,30 @@ typedef __vki_kernel_uid32_t vki_qid_t; /* Type in which we store ids in memory #define VKI_PTRACE_DETACH 0x11 +//---------------------------------------------------------------------- +// From linux-2.6.14/include/sound/asound.h +//---------------------------------------------------------------------- + +enum { + VKI_SNDRV_PCM_IOCTL_HW_FREE = _VKI_IO('A', 0x12), + VKI_SNDRV_PCM_IOCTL_HWSYNC = _VKI_IO('A', 0x22), + VKI_SNDRV_PCM_IOCTL_PREPARE = _VKI_IO('A', 0x40), + VKI_SNDRV_PCM_IOCTL_RESET = _VKI_IO('A', 0x41), + VKI_SNDRV_PCM_IOCTL_START = _VKI_IO('A', 0x42), + VKI_SNDRV_PCM_IOCTL_DROP = _VKI_IO('A', 0x43), + VKI_SNDRV_PCM_IOCTL_DRAIN = _VKI_IO('A', 0x44), + VKI_SNDRV_PCM_IOCTL_RESUME = _VKI_IO('A', 0x47), + VKI_SNDRV_PCM_IOCTL_XRUN = _VKI_IO('A', 0x48), + VKI_SNDRV_PCM_IOCTL_UNLINK = _VKI_IO('A', 0x61), +}; + +enum { + VKI_SNDRV_TIMER_IOCTL_START = _VKI_IO('T', 0xa0), + VKI_SNDRV_TIMER_IOCTL_STOP = _VKI_IO('T', 0xa1), + VKI_SNDRV_TIMER_IOCTL_CONTINUE = _VKI_IO('T', 0xa2), + VKI_SNDRV_TIMER_IOCTL_PAUSE = _VKI_IO('T', 0xa3), +}; + #endif // __VKI_LINUX_H /*--------------------------------------------------------------------*/