*参照元 [#qe35b35f]
#backlinks
*説明 [#n6a5114b]
-パス: [[linux-4.4.1/arch/arm64/mm/dma-mapping.c]]
-FIXME: これは何?
--説明
**引数 [#s77c8ab9]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct page *page
--
--[[linux-4.4.1/page]]
-unsigned long offset
--
-size_t size
--
-enum dma_data_direction dir
--
--[[linux-4.4.1/dma_data_direction]]
-struct dma_attrs *attrs
--
--[[linux-4.4.1/dma_attrs]]
**返り値 [#y97d0cf9]
-dma_addr_t
--
--[[linux-4.4.1/dma_addr_t]]
**参考 [#ra39de51]
*実装 [#bc7e3c5f]
static dma_addr_t __swiotlb_map_page(struct device *dev, struct page *page,
unsigned long offset, size_t size,
enum dma_data_direction dir,
struct dma_attrs *attrs)
{
dma_addr_t dev_addr;
-
--[[linux-4.4.1/dma_addr_t]]
dev_addr = swiotlb_map_page(dev, page, offset, size, dir, attrs);
-
--[[linux-4.4.1/swiotlb_map_page()]]
if (!is_device_dma_coherent(dev))
__dma_map_area(phys_to_virt(dma_to_phys(dev, dev_addr)), size, dir);
-
--[[linux-4.4.1/is_device_dma_coherent()]]
--[[linux-4.4.1/__dma_map_area()]]
--[[linux-4.4.1/phys_to_virt()]]
--[[linux-4.4.1/dma_to_phys()]]
return dev_addr;
}
*コメント [#ga808226]