*参照元 [#tec6e90a]
#backlinks

*説明 [#v9ac00b3]
-パス: [[linux-2.6.33/arch/x86/include/asm/dma-mapping.h]]

-FIXME: これは何?
--説明


**引数 [#ec9b7cc2]
-struct device *dev
--
--[[linux-2.6.33/device]]
-size_t size
--
-dma_addr_t *dma_handle
--
--[[linux-2.6.33/dma_addr_t]]
-gfp_t gfp
--
--[[linux-2.6.33/gfp_t]]


**返り値 [#tcda83ca]
-void *
--


**参考 [#xdbecee3]


*実装 [#c21aed38]
 static inline void *
 dma_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
 		gfp_t gfp)
 {
 	struct dma_map_ops *ops = get_dma_ops(dev);
 	void *memory;
 
-
--[[linux-2.6.33/dma_map_ops]]
-
--[[linux-2.6.33/get_dma_ops()]]

 	gfp &= ~(__GFP_DMA | __GFP_HIGHMEM | __GFP_DMA32);
 
-
--[[linux-2.6.33/__GFP_DMA]]
-
--[[linux-2.6.33/__GFP_HIGHMEM]]
-
--[[linux-2.6.33/__GFP_DMA32]]

 	if (dma_alloc_from_coherent(dev, size, dma_handle, &memory))
 		return memory;
 
-
--[[linux-2.6.33/dma_alloc_from_coherent()]]

 	if (!dev)
 		dev = &x86_dma_fallback_dev;
 
-
--[[linux-2.6.33/x86_dma_fallback_dev(global)]]

 	if (!is_device_dma_capable(dev))
 		return NULL;
 
-
--[[linux-2.6.33/is_device_dma_capable()]]

 	if (!ops->alloc_coherent)
 		return NULL;
 
 	memory = ops->alloc_coherent(dev, size, dma_handle,
 				     dma_alloc_coherent_gfp_flags(dev, gfp));
 	debug_dma_alloc_coherent(dev, size, *dma_handle, memory);
 
-
--[[linux-2.6.33/debug_dma_alloc_coherent()]]

 	return memory;
 }


*コメント [#e8161aa8]


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