linux-2.6.33/snd_pcm_action_lock_irq()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#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]
終了行:
*参照元 [#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]
ページ名: