*参照元 [#la66960a]
#backlinks

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

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


**引数 [#ba7a7d34]
-struct page *page
--
--[[linux-4.4.1/page]]
-unsigned long off
--
-size_t size
--
-enum dma_data_direction dir
-
--[[linux-4.4.1/dma_data_direction]]


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


**参考 [#o66fc3e2]


*実装 [#h5f0ebac]
 /*
  * 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_*)
  */
 static void __dma_page_cpu_to_dev(struct page *page, unsigned long off,
         size_t size, enum dma_data_direction dir)
 {
         phys_addr_t paddr;
 
-
--[[linux-4.4.1/phys_addr_t]]

         dma_cache_maint_page(page, off, size, dir, dmac_map_area);
 
-
--[[linux-4.4.1/dma_cache_maint_page()]]
--[[linux-4.4.1/dmac_map_area()]]

         paddr = page_to_phys(page) + off;
-
--[[linux-4.4.1/page_to_phys()]]

         if (dir == DMA_FROM_DEVICE) {
                 outer_inv_range(paddr, paddr + size);
-
--[[linux-4.4.1/outer_inv_range()]]

         } else {
                 outer_clean_range(paddr, paddr + size);
         }
         /* FIXME: non-speculating: flush on bidirectional mappings? */
-
--[[linux-4.4.1/outer_clean_range()]]

 }


*コメント [#c4497a5a]


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