linux-4.4.1/iommu_dma_map_page()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#q1367170]
#backlinks
*説明 [#wd97fdd0]
-パス: [[linux-4.4.1/drivers/iommu/dma-iommu.c]]
-FIXME: これは何?
--説明
**引数 [#nd4311e2]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct page *page
--
--[[linux-4.4.1/page]]
-unsigned long offset
--
-size_t size
--
-int prot
--
**返り値 [#s39b3b33]
-dma_addr_t
--
--[[linux-4.4.1/dma_addr_t]]
**参考 [#bea4ca1e]
*実装 [#z8579f48]
dma_addr_t iommu_dma_map_page(struct device *dev, struct...
unsigned long offset, size_t size, int prot)
{
dma_addr_t dma_addr;
struct iommu_domain *domain = iommu_get_domain_for_dev(...
struct iova_domain *iovad = domain->iova_cookie;
phys_addr_t phys = page_to_phys(page) + offset;
size_t iova_off = iova_offset(iovad, phys);
size_t len = iova_align(iovad, size + iova_off);
struct iova *iova = __alloc_iova(iovad, len, dma_get_ma...
-
--[[linux-4.4.1/iommu_domain]]
--[[linux-4.4.1/iommu_get_domain_for_dev()]]
--[[linux-4.4.1/iova_domain]]
--[[linux-4.4.1/phys_addr_t]]
--[[linux-4.4.1/page_to_phys()]]
--[[linux-4.4.1/iova_align()]]
--[[linux-4.4.1/iova]]
--[[linux-4.4.1/__alloc_iova()]]
--[[linux-4.4.1/dma_get_mask()]]
if (!iova)
return DMA_ERROR_CODE;
dma_addr = iova_dma_addr(iovad, iova);
if (iommu_map(domain, dma_addr, phys - iova_off, len, p...
__free_iova(iovad, iova);
return DMA_ERROR_CODE;
}
-
--[[linux-4.4.1/iova_dma_addr()]]
--[[linux-4.4.1/iommu_map()]]
--[[linux-4.4.1/__free_iova()]]
return dma_addr + iova_off;
}
*コメント [#i8911c68]
終了行:
*参照元 [#q1367170]
#backlinks
*説明 [#wd97fdd0]
-パス: [[linux-4.4.1/drivers/iommu/dma-iommu.c]]
-FIXME: これは何?
--説明
**引数 [#nd4311e2]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct page *page
--
--[[linux-4.4.1/page]]
-unsigned long offset
--
-size_t size
--
-int prot
--
**返り値 [#s39b3b33]
-dma_addr_t
--
--[[linux-4.4.1/dma_addr_t]]
**参考 [#bea4ca1e]
*実装 [#z8579f48]
dma_addr_t iommu_dma_map_page(struct device *dev, struct...
unsigned long offset, size_t size, int prot)
{
dma_addr_t dma_addr;
struct iommu_domain *domain = iommu_get_domain_for_dev(...
struct iova_domain *iovad = domain->iova_cookie;
phys_addr_t phys = page_to_phys(page) + offset;
size_t iova_off = iova_offset(iovad, phys);
size_t len = iova_align(iovad, size + iova_off);
struct iova *iova = __alloc_iova(iovad, len, dma_get_ma...
-
--[[linux-4.4.1/iommu_domain]]
--[[linux-4.4.1/iommu_get_domain_for_dev()]]
--[[linux-4.4.1/iova_domain]]
--[[linux-4.4.1/phys_addr_t]]
--[[linux-4.4.1/page_to_phys()]]
--[[linux-4.4.1/iova_align()]]
--[[linux-4.4.1/iova]]
--[[linux-4.4.1/__alloc_iova()]]
--[[linux-4.4.1/dma_get_mask()]]
if (!iova)
return DMA_ERROR_CODE;
dma_addr = iova_dma_addr(iovad, iova);
if (iommu_map(domain, dma_addr, phys - iova_off, len, p...
__free_iova(iovad, iova);
return DMA_ERROR_CODE;
}
-
--[[linux-4.4.1/iova_dma_addr()]]
--[[linux-4.4.1/iommu_map()]]
--[[linux-4.4.1/__free_iova()]]
return dma_addr + iova_off;
}
*コメント [#i8911c68]
ページ名: