*参照元 [#k1c01b47] #backlinks *説明 [#hf8f9aad] -パス: [[linux-2.6.33/sound/core/pcm_lib.c]] -FIXME: これは何? --説明 **引数 [#raf4bf42] -struct snd_pcm_substream *substream -- --[[linux-2.6.33/snd_pcm_substream]] -void __user **bufs -- -snd_pcm_uframes_t frame -- --[[linux-2.6.33/snd_pcm_uframes_t]] **返り値 [#o807bef6] -snd_pcm_sframes_t -- **参考 [#p528f00e] *実装 [#xb450d3b] snd_pcm_sframes_t snd_pcm_lib_readv(struct snd_pcm_substream *substream, void __user **bufs, snd_pcm_uframes_t frames) { struct snd_pcm_runtime *runtime; int nonblock; int err; - --[[linux-2.6.33/snd_pcm_runtime]] err = pcm_sanity_check(substream); if (err < 0) return err; - --[[linux-2.6.33/pcm_sanity_check()]] runtime = substream->runtime; if (runtime->status->state == SNDRV_PCM_STATE_OPEN) return -EBADFD; - --[[linux-2.6.33/SNDRV_PCM_STATE_OPEN]] nonblock = !!(substream->f_flags & O_NONBLOCK); if (runtime->access != SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) return -EINVAL; - -- --[[linux-2.6.33/SNDRV_PCM_ACCESS_RW_NONINTERLEAVED]] return snd_pcm_lib_read1(substream, (unsigned long)bufs, frames, nonblock, snd_pcm_lib_readv_transfer); - --[[linux-2.6.33/snd_pcm_lib_read1()]] - --[[linux-2.6.33/snd_pcm_lib_ready_transfer()]] } EXPORT_SYMBOL(snd_pcm_lib_readv); -ライセンスに関係なくシンボルを公開する。 --[[linux-2.6.33/EXPORT_SYMBOL()]] *コメント [#y9d1bf2d]