*参照元 [#v57632e9]
#backlinks

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

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


**引数 [#e36ffd81]
-struct device *dev
-
--[[linux-4.4.1/device]]
--u64 dma_base
--u64 size
--const struct iommu_ops *ops
-
--[[linux-4.4.1/iommu_ops]]


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


**参考 [#g9e2e5b1]


*実装 [#pe62def9]
 #ifdef CONFIG_IOMMU_DMA
 
-
--[[linux-4.4.1/CONFIG_IOMMU_DMA]]

 ...
 
 static void __iommu_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
 				  const struct iommu_ops *ops)
 {
 	struct iommu_group *group;
 
-
--[[linux-4.4.1/iommu_group]]

 	if (!ops)
 		return;
 	/*
 	 * TODO: As a concession to the future, we're ready to handle being
 	 * called both early and late (i.e. after bus_add_device). Once all
 	 * the platform bus code is reworked to call us late and the notifier
 	 * junk above goes away, move the body of do_iommu_attach here.
 	 */
 	group = iommu_group_get(dev);
 	if (group) {
 		do_iommu_attach(dev, ops, dma_base, size);
 		iommu_group_put(group);
 	} else {
 		queue_iommu_attach(dev, ops, dma_base, size);
 	}
-
--[[linux-4.4.1/iommu_group_get()]]
--[[linux-4.4.1/do_iommu_attach()]]
--[[linux-4.4.1/iommu_group_put()]]
--[[linux-4.4.1/queue_iommu_attach()]]

 }
 
 ...
 
 #else
 
 static void __iommu_setup_dma_ops(struct device *dev, u64 dma_base, u64 size,
 				  struct iommu_ops *iommu)
 { }
 
 #endif  /* CONFIG_IOMMU_DMA */


*コメント [#eea103d9]


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