*参照元 [#kbe1ff41]
#backlinks

*説明 [#t00bb5e9]
-パス: [[linux-2.6.33/arch/arm/mm/dma-mapping.c]]

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


**引数 [#f1e0040c]
-const void *start
--
-size_t size
--
-int direction
--


**返り値 [#g38856b9]
-なし


**参考 [#se1cdf37]


*実装 [#y167ee8d]
 /*
  * Make an area consistent for devices.
  * Note: Drivers should NOT use this function directly, as it will break
  * platforms with CONFIG_DMABOUNCE.
  * Use the driver DMA support - see dma-mapping.h (dma_sync_*)
  */
 void dma_cache_maint(const void *start, size_t size, int direction)
 {
 	void (*inner_op)(const void *, const void *);
 	void (*outer_op)(unsigned long, unsigned long);
 
 	BUG_ON(!virt_addr_valid(start) || !virt_addr_valid(start + size - 1));
 
-
--[[linux-2.6.33/virt_addr_valid()]]
-
--[[linux-2.6.33/BUG_ON()]]

 	switch (direction) {
 	case DMA_FROM_DEVICE:		/* invalidate only */
 		inner_op = dmac_inv_range;
 		outer_op = outer_inv_range;
-
--[[linux-2.6.33/DMA_FROM_DEVICE]]
--[[linux-2.6.33/dmac_inv_range]]
--[[linux-2.6.33/outer_inv_range]]

 		break;
 	case DMA_TO_DEVICE:		/* writeback only */
 		inner_op = dmac_clean_range;
 		outer_op = outer_clean_range;
-
--[[linux-2.6.33/DMA_TO_DEVICE]]
--[[linux-2.6.33/dmac_clean_range]]
--[[linux-2.6.33/outer_clean_range]]

 		break;
 	case DMA_BIDIRECTIONAL:		/* writeback and invalidate */
 		inner_op = dmac_flush_range;
 		outer_op = outer_flush_range;
-
--[[linux-2.6.33/DMA_BIDIRECTIONAL]]
--[[linux-2.6.33/dmac_flush_range]]
--[[linux-2.6.33/outer_flush_range]]

 		break;
 	default:
 		BUG();
-
--[[linux-2.6.33/BUG()]]

 	}
 
 	inner_op(start, start + size);
 	outer_op(__pa(start), __pa(start) + size);
 }
 EXPORT_SYMBOL(dma_cache_maint);
-ライセンスに関係なくシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL()]]


*コメント [#xbfddf8e]


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