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