]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Handle some ALSA ioctls that don't have size or direction hints.
authorTom Hughes <tom@compton.nu>
Mon, 14 Nov 2005 17:03:54 +0000 (17:03 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 14 Nov 2005 17:03:54 +0000 (17:03 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5131

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

index 06121746e55eeb0499e70c1cef02f22cedcfdfd0..6bce26df33581e1ddf00b1e2eeb095178ce851c5 100644 (file)
@@ -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:
index f61152308c2fdbbc29962ff8714caf1c95a46773..dfeb35b2ebe1c01946223e1815d0827a109fdee7 100644 (file)
@@ -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
 
 /*--------------------------------------------------------------------*/