*参照元 [#sf9497e9] #backlinks *説明 [#b33b7fb5] -パス: [[linux-4.4.1/sound/core/pcm_memory.c]] -FIXME: これは何? --指定した substream のために、バッファを確保する。 **引数 [#u3b32dfe] -struct snd_pcm_substream *substream --PCM サブストリーム --[[linux-4.4.1/snd_pcm_substream]] -int type --バッファのタイプ --SNDRV_DMA_TYPE_CONTINUOUS --SNDRV_DMA_TYPE_DEV --など -struct device *data --type によって何を渡せば良いか変わる --SNDRV_DMA_TYPE_CONTINUOUS なら GFP_XXXX --SNDRV_DMA_TYPE_DEV なら struct device * --[[linux-4.4.1/device]] -size_t size --バッファサイズ -size_t max --最大バッファサイズ、何に使われているのか良くわからない… **返り値 [#wd6d8028] -int -- --0 なら成功、負のエラー値なら失敗。 **参考 [#ye7fbef8] *実装 [#u2f51bed] /** * snd_pcm_lib_preallocate_pages - pre-allocation for the given DMA type * @substream: the pcm substream instance * @type: DMA type (SNDRV_DMA_TYPE_*) * @data: DMA type dependent data * @size: the requested pre-allocation size in bytes * @max: the max. allowed pre-allocation size * * Do pre-allocation for the given DMA buffer type. * * Return: Zero if successful, or a negative error code on failure. */ int snd_pcm_lib_preallocate_pages(struct snd_pcm_substream *substream, int type, struct device *data, size_t size, size_t max) { substream->dma_buffer.dev.type = type; substream->dma_buffer.dev.dev = data; return snd_pcm_lib_preallocate_pages1(substream, size, max); - -substream->dma_buffer は struct snd_dma_buffer 型 -substream->dma_buffer.dev は struct snd_dma_device 型 --[[linux-4.4.1/snd_dma_buffer]] --[[linux-4.4.1/snd_dma_device]] --[[linux-4.4.1/snd_pcm_lib_preallocate_pages1()]] } EXPORT_SYMBOL(snd_pcm_lib_preallocate_pages); -ライセンスに関係なくシンボルを公開する。 --[[linux-4.4.1/EXPORT_SYMBOL()]] *コメント [#g92da1af]