*参照元 [#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]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS