*参照元 [#sa612aea] #backlinks *説明 [#b27686c0] -パス: [[linux-2.6.33/sound/core/pcm_native.c]] -FIXME: これは何? --説明 **引数 [#db4e67cf] -struct file *file -- --[[linux-2.6.33/file]] -struct snd_pcm_substream *substream -- --[[linux-2.6.33/snd_pcm_substream]] -unsigned int cmd -- -void __user *arg -- **返り値 [#v3d40947] -int -- **参考 [#s5a31d19] *実装 [#kbf7b21b] static int snd_pcm_common_ioctl1(struct file *file, struct snd_pcm_substream *substream, unsigned int cmd, void __user *arg) { switch (cmd) { case SNDRV_PCM_IOCTL_PVERSION: return put_user(SNDRV_PCM_VERSION, (int __user *)arg) ? -EFAULT : 0; - --[[linux-2.6.33/SNDRV_PCM_IOCTL_PVERSION]] - --[[linux-2.6.33/SNDRV_PCM_VERSION]] - --[[linux-2.6.33/put_user()]] case SNDRV_PCM_IOCTL_INFO: return snd_pcm_info_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_INFO]] - --[[linux-2.6.33/snd_pcm_info_user()]] case SNDRV_PCM_IOCTL_TSTAMP: /* just for compatibility */ return 0; - --[[linux-2.6.33/SNDRV_PCM_IOCTL_TSTAMP]] case SNDRV_PCM_IOCTL_TTSTAMP: return snd_pcm_tstamp(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_TTSTAMP]] - --[[linux-2.6.33/snd_pcm_tstamp()]] case SNDRV_PCM_IOCTL_HW_REFINE: return snd_pcm_hw_refine_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HW_REFINE]] - --[[linux-2.6.33/snd_pcm_hw_refine_user()]] case SNDRV_PCM_IOCTL_HW_PARAMS: return snd_pcm_hw_params_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HW_PARAMS]] - --[[linux-2.6.33/snd_pcm_hw_params_user()]] case SNDRV_PCM_IOCTL_HW_FREE: return snd_pcm_hw_free(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HW_FREE]] - --[[linux-2.6.33/snd_pcm_hw_free()]] case SNDRV_PCM_IOCTL_SW_PARAMS: return snd_pcm_sw_params_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_SW_PARAMS]] - --[[linux-2.6.33/snd_pcm_sw_params_user()]] case SNDRV_PCM_IOCTL_STATUS: return snd_pcm_status_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_STATUS]] - --[[linux-2.6.33/snd_pcm_status_user()]] case SNDRV_PCM_IOCTL_CHANNEL_INFO: return snd_pcm_channel_info_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_CHANNEL_INFO]] - --[[linux-2.6.33/snd_pcm_channel_info_user()]] case SNDRV_PCM_IOCTL_PREPARE: return snd_pcm_prepare(substream, file); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_PREPARE]] - --[[linux-2.6.33/snd_pcm_prepare()]] case SNDRV_PCM_IOCTL_RESET: return snd_pcm_reset(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_RESET]] - --[[linux-2.6.33/snd_pcm_reset()]] case SNDRV_PCM_IOCTL_START: return snd_pcm_action_lock_irq(&snd_pcm_action_start, substream, SNDRV_PCM_STATE_RUNNING); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_START]] - --[[linux-2.6.33/snd_pcm_action_lock_irq()]] - --[[linux-2.6.33/snd_pcm_action_start(global)]] - --[[linux-2.6.33/SNDRV_PCM_STATE_RUNNING]] case SNDRV_PCM_IOCTL_LINK: return snd_pcm_link(substream, (int)(unsigned long) arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_LINK]] - --[[linux-2.6.33/snd_pcm_link()]] case SNDRV_PCM_IOCTL_UNLINK: return snd_pcm_unlink(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_UNLINK]] - --[[linux-2.6.33/snd_pcm_unlink()]] case SNDRV_PCM_IOCTL_RESUME: return snd_pcm_resume(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_RESUME]] - --[[linux-2.6.33/snd_pcm_resume()]] case SNDRV_PCM_IOCTL_XRUN: return snd_pcm_xrun(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_XRUN]] - --[[linux-2.6.33/snd_pcm_xrun()]] case SNDRV_PCM_IOCTL_HWSYNC: return snd_pcm_hwsync(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HWSYNC]] - --[[linux-2.6.33/snd_pcm_hwsync()]] case SNDRV_PCM_IOCTL_DELAY: return snd_pcm_delay(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_DELAY]] - --[[linux-2.6.33/snd_pcm_delay()]] case SNDRV_PCM_IOCTL_SYNC_PTR: return snd_pcm_sync_ptr(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_SYNC_PTR]] - --[[linux-2.6.33/snd_pcm_sync_ptr()]] #ifdef CONFIG_SND_SUPPORT_OLD_API - --[[linux-2.6.33/CONFIG_SND_SUPPORT_OLD_API]] case SNDRV_PCM_IOCTL_HW_REFINE_OLD: return snd_pcm_hw_refine_old_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HW_REFINE_OLD]] - --[[linux-2.6.33/snd_pcm_hw_refine_old_user()]] case SNDRV_PCM_IOCTL_HW_PARAMS_OLD: return snd_pcm_hw_params_old_user(substream, arg); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_HW_PARAMS_OLD]] - --[[linux-2.6.33/snd_pcm_hw_params_old_user()]] #endif case SNDRV_PCM_IOCTL_DRAIN: return snd_pcm_drain(substream, file); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_DRAIN]] - --[[linux-2.6.33/snd_pcm_drain()]] case SNDRV_PCM_IOCTL_DROP: return snd_pcm_drop(substream); - --[[linux-2.6.33/SNDRV_PCM_IOCTL_DROP]] - --[[linux-2.6.33/snd_pcm_drop()]] case SNDRV_PCM_IOCTL_PAUSE: { int res; - --[[linux-2.6.33/SNDRV_PCM_IOCTL_PAUSE]] snd_pcm_stream_lock_irq(substream); res = snd_pcm_pause(substream, (int)(unsigned long)arg); snd_pcm_stream_unlock_irq(substream); - --[[linux-2.6.33/snd_pcm_stream_lock_irq()]] - --[[linux-2.6.33/snd_pcm_pause()]] - --[[linux-2.6.33/snd_pcm_stream_unlock_irq()]] return res; } } snd_printd("unknown ioctl = 0x%x\n", cmd); - --[[linux-2.6.33/snd_printd()]] return -ENOTTY; } *コメント [#jab4220f]