*参照元 [#la39e38d] #backlinks *説明 [#g7c63d2a] -パス: [[linux-2.6.33/sound/core/pcm_lib.c]] -FIXME: これは何? --説明 **引数 [#sfafa272] -struct snd_pcm_substream *substream -- **返り値 [#k1e539b4] -なし **参考 [#g380701c] *実装 [#gb4e68db] /** * snd_pcm_period_elapsed - update the pcm status for the next period * @substream: the pcm substream instance * * This function is called from the interrupt handler when the * PCM has processed the period size. It will update the current * pointer, wake up sleepers, etc. * * Even if more than one periods have elapsed since the last call, you * have to call this only once. */ void snd_pcm_period_elapsed(struct snd_pcm_substream *substream) { struct snd_pcm_runtime *runtime; unsigned long flags; - --[[linux-2.6.33/]] if (PCM_RUNTIME_CHECK(substream)) return; runtime = substream->runtime; - --[[linux-2.6.33/PCM_RUNTIME_CHECK()]] if (runtime->transfer_ack_begin) runtime->transfer_ack_begin(substream); snd_pcm_stream_lock_irqsave(substream, flags); if (!snd_pcm_running(substream) || snd_pcm_update_hw_ptr_interrupt(substream) < 0) goto _end; - --[[linux-2.6.33/snd_pcm_stream_lock_irqsave()]] - --[[linux-2.6.33/snd_pcm_running()]] - --[[linux-2.6.33/snd_pcm_update_hw_ptr_interrupt()]] if (substream->timer_running) snd_timer_interrupt(substream->timer, 1); - --[[linux-2.6.33/snd_timer_interrupt()]] _end: snd_pcm_stream_unlock_irqrestore(substream, flags); if (runtime->transfer_ack_end) runtime->transfer_ack_end(substream); - --[[linux-2.6.33/snd_pcm_stream_unlock_irqrestore()]] kill_fasync(&runtime->fasync, SIGIO, POLL_IN); - --[[linux-2.6.33/kill_fasync()]] } EXPORT_SYMBOL(snd_pcm_period_elapsed); -ライセンスに関係なくシンボルを公開する。 --[[linux-2.6.33/EXPORT_SYMBOL()]] *コメント [#aec298f0]