- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#b2bd0c8d]
#backlinks
*説明 [#hd84564d]
-パス: [[linux-2.6.33/sound/core/pcm_lib.c]]
-FIXME: これは何?
--説明
**引数 [#u7ae7246]
-struct snd_pcm_substream *substream
--
--[[linux-2.6.33/snd_pcm_substream]]
-struct snd_pcm_runtime *runtime
--
--[[linux-2.6.33/snd_pcm_runtime]]
**返り値 [#r0becd3c]
-snd_pcm_uframes_t
--
**参考 [#l59fed48]
*実装 [#td469302]
static snd_pcm_uframes_t
snd_pcm_update_hw_ptr_pos(struct snd_pcm_substream *substream,
struct snd_pcm_runtime *runtime)
{
snd_pcm_uframes_t pos;
-
--[[linux-2.6.33/snd_pcm_uframes_t]]
pos = substream->ops->pointer(substream);
-substream->ops は snd_pcm_ops 型
--[[linux-2.6.33/snd_pcm_ops]]
if (pos == SNDRV_PCM_POS_XRUN)
return pos; /* XRUN */
-
--[[linux-2.6.33/SNDRV_PCM_POS_XRUN]]
if (pos >= runtime->buffer_size) {
if (printk_ratelimit()) {
-
--[[linux-2.6.33/printk_ratelimit()]]
char name[16];
pcm_debug_name(substream, name, sizeof(name));
snd_printd(KERN_ERR "BUG: %s, pos = 0x%lx, "
"buffer size = 0x%lx, period size = 0x%lx\n",
name, pos, runtime->buffer_size,
runtime->period_size);
-
--[[linux-2.6.33/pcm_debug_name()]]
-
--[[linux-2.6.33/snd_printd()]]
}
pos = 0;
}
pos -= pos % runtime->min_align;
return pos;
}
*コメント [#yfdd9dbe]