*参照元 [#o04a95ef] #backlinks *説明 [#r3efd328] -パス: [[linux-4.4.1/include/linux/dma-contiguous.h]] -デバイス固有の CMA 領域を返す。 --デバイス固有の CMA 領域を持っていないときは、システムデフォルトの CMA 領域を返す。 --コンフィグで CMA が無効のときは失敗する。 -システムデフォルトの CMA 領域は dma_contiguous_reserve() にて初期化される。 --[[linux-4.4.1/dma_contiguous_reserve()]] **引数 [#o035a4ed] -struct device *dev --デバイス。 --NULL を渡すとシステムデフォルトの CMA 領域を返す。 --[[linux-4.4.1/device]] **返り値 [#z8c547d5] -struct cma * --CMA 領域。失敗した場合は NULL を返す。 --[[linux-4.4.1/cma]] **参考 [#v104e071] *実装 [#i58a8086] **CONFIG_DMA_CMA 有効 [#n01c3ab9] - --[[linux-4.4.1/CONFIG_DMA_CMA]] static inline struct cma *dev_get_cma_area(struct device *dev) { if (dev && dev->cma_area) return dev->cma_area; return dma_contiguous_default_area; -デバイス固有の領域(dev->cma_area)があれば、それを返す。 -デバイスを指定しない(dev が NULL)、または、デバイス固有の領域がない(dev->cma_area が NULL)場合は、システムデフォルトの CMA 領域を返す。 --[[linux-4.4.1/dma_contiguous_default_area(global)]] } **CONFIG_DMA_CMA 無効 [#tc981db8] static inline struct cma *dev_get_cma_area(struct device *dev) { return NULL; } -常に失敗する。 *コメント [#xbe6d23a]