*参照元 [#lbeff09d] #backlinks *説明 [#t128c080] -パス: [[linux-4.4.1/arch/arm/mm/dma.h]] -FIXME: これは何? --この API を直接呼んではならない。 **引数 [#cd58537b] -const void *start -- -size_t size -- -int dir -- **返り値 [#rd55213f] -なし **参考 [#c91a5d18] 併記されているコメント。 /* * 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. */ *実装 [#h0f3e021] **MULTI_CACHE 無効 [#w0ac8928] -単一の CPU 向けにビルドしていて、キャッシュの操作が 1種類しか無い場合。 --[[linux-4.4.1/MULTI_CACHE]] #define dmac_unmap_area __glue(_CACHE,_dma_unmap_area) -__glue() は名前を結合して一つのトークンにするマクロ。 -_CACHE は ARM アーキテクチャ名(v4, fa, arm926 など)を持つトークンで、関数名の接頭辞となる。 -例えば _CACHE が v4 であれば __glue(_CACHE,_dma_unmap_area) は v4_dma_unmap_area となる。 --[[linux-4.4.1/_CACHE]] --[[linux-4.4.1/__glue()]] -たとえば ARMv7 なら v7_dma_unmap_area() になる。 --[[linux-4.4.1/v7_dma_unmap_area()]] **MULTI_CACHE 有効 [#q9b84d21] -複数の CPU 向けにビルドしていて、キャッシュの操作が複数ある場合。 #define dmac_unmap_area cpu_cache.dma_unmap_area - --[[linux-4.4.1/cpu_cache(global)]] *コメント [#w390113a]