*参照元 [#h46a5bcb]
#backlinks

*説明 [#kcc24e1b]
-パス: [[linux-4.4.1/arch/arm/mm/dma.h]]

-FIXME: これは何?
--この API を直接呼んではならない。


**引数 [#zd8e6d53]
-const void *start
--
-size_t size
--
-int dir
--


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


**参考 [#ebacfbf5]

併記されているコメント。

 /*
  * These are private to the dma-mapping API.  Do not use directly.
  * Their sole purpose is to ensure that data held in the cache
  * is visible to DMA, or data written by DMA to system memory is
  * visible to the CPU.
  */


*実装 [#w0592d5b]

**MULTI_CACHE 無効 [#fa49b7e1]

-
-単一の CPU 向けにビルドしていて、キャッシュの操作が 1種類しか無い場合。
--[[linux-4.4.1/MULTI_CACHE]]

 #define dmac_map_area                   __glue(_CACHE,_dma_map_area)
-(CPU名)_dma_map_area() という関数名になる。
-__glue() は名前を結合して一つのトークンにするマクロ。
-_CACHE は ARM アーキテクチャ名(v4, fa, arm926 など)を持つトークンで、関数名の接頭辞となる。
-例えば _CACHE が v4 であれば __glue(_CACHE,_dma_map_area) は v4_dma_map_area となる。
--[[linux-4.4.1/__glue()]]
--[[linux-4.4.1/_CACHE()]]
-たとえば ARMv7 なら v7_dma_map_area() になる。
--[[linux-4.4.1/v7_dma_map_area()]]


**MULTI_CACHE 有効 [#rbe4779c]

-複数の CPU 向けにビルドしていて、キャッシュの操作が複数ある場合。

 #define dmac_map_area                   cpu_cache.dma_map_area
-
--[[linux-4.4.1/cpu_cache(global)]]


*コメント [#dcb30275]

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