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