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