*参照元 [#x6c92335] #backlinks *説明 [#zaa990ab] -パス: [[linux-2.6.33/sound/core/pcm_native.c]] -FIXME: これは何? --説明 **引数 [#z4ec54ba] -struct action_ops *ops -- --[[linux-2.6.33/action_ops]] -struct snd_pcm_substream *substream -- --[[linux-2.6.33/snd_pcm_substream]] -int state -- **返り値 [#yc47932e] -int -- **参考 [#mba5ee25] *実装 [#da59b91d] /* * Note: don't use any locks before */ static int snd_pcm_action_lock_irq(struct action_ops *ops, struct snd_pcm_substream *substream, int state) { int res; read_lock_irq(&snd_pcm_link_rwlock); - --[[linux-2.6.33/read_lock_irq()]] if (snd_pcm_stream_linked(substream)) { - --[[linux-2.6.33/snd_pcm_stream_linked()]] spin_lock(&substream->group->lock); spin_lock(&substream->self_group.lock); - --[[linux-2.6.33/spin_lock()]] res = snd_pcm_action_group(ops, substream, state, 1); - --[[linux-2.6.33/snd_pcm_action_group()]] spin_unlock(&substream->self_group.lock); spin_unlock(&substream->group->lock); - --[[linux-2.6.33/spin_unlock()]] } else { spin_lock(&substream->self_group.lock); res = snd_pcm_action_single(ops, substream, state); spin_unlock(&substream->self_group.lock); - --[[linux-2.6.33/snd_pcm_action_single()]] } read_unlock_irq(&snd_pcm_link_rwlock); - --[[linux-2.6.33/read_unlock_irq()]] return res; } *コメント [#xb66bcbf]