*参照元 [#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]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS