*参照元 [#pc104083]
#backlinks

*説明 [#s17fd633]
-パス: [[linux-4.4.1/arch/arm64/mm/cache.S]]

-FIXME: これは何?
--DMA_FROM_DEVICE: invalidate のみ
--DMA_TO_DEVICE: clean のみ


**引数 [#ief56294]
-void *start
--仮想アドレス
-size_t size
--
-enum dma_data_direction dir
--DMA_FROM_DEVICE: invalidate, clean
--DMA_FROM_DEVICE: invalidate のみ
--それ以外(DMA_TO_DEVICE など): clean のみ
--[[linux-4.4.1/dma_data_direction]]


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


**参考 [#ke6efe8a]


*実装 [#ief57b87]
 /*
  *      __dma_map_area(start, size, dir)
  *      - start - kernel virtual start address
  *      - size  - size of region
  *      - dir   - DMA direction
  */
 ENTRY(__dma_map_area)
         add     x1, x1, x0
         cmp     w2, #DMA_FROM_DEVICE
         b.eq    __dma_inv_range
-
-invalidate
--分岐先で ret しているのでここには返ってこない
--[[linux-4.4.1/__dma_inv_range()]]

         b       __dma_clean_range
-
-clean
--分岐先で ret しているのでここには返ってこない
--[[linux-4.4.1/__dma_clean_range()]]

 ENDPIPROC(__dma_map_area)


*コメント [#z7ccbebc]

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