linux-4.4.1/arch_setup_dma_ops()(arm64)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#d43e70e0]
#backlinks
*説明 [#e0b2606d]
-パス: [[linux-4.4.1/arch/arm64/mm/dma-mapping.c]]
-FIXME: これは何?
-優先順に書くと
--IOMMU が定義する DMA 処理
--デバイス独自の DMA 処理(dev->archdata.dma_ops)
--ARM64 デフォルトの DMA 処理(swiotlb_dma_ops)
**引数 [#yedae688]
-struct device *dev
--
--[[linux-4.4.1/device]]
-u64 dma_base
--
-u64 size
--
-struct iommu_ops *iommu
--
--[[linux-4.4.1/iommu_ops]]
-bool coherent
--
**返り値 [#b426795f]
-なし
**参考 [#w17639ff]
DMA 操作の取得
-[[linux-4.4.1/get_dma_ops()(arm64)]]
関係する DMA 操作
-ARM64 デフォルト: [[linux-4.4.1/swiotlb_dma_ops(global)]]
-ダミー: [[linux-4.4.1/dummy_dma_ops(global)]]
-ダミーは直接設定されるわけではなく、この関数を一度も呼ば...
DMA 操作が未定義の状態で DMA API を使った場合、下記経路で...
--[[linux-4.4.1/get_dma_ops()]]
--[[linux-4.4.1/__generic_dma_ops()]]
*実装 [#z2f67570]
void arch_setup_dma_ops(struct device *dev, u64 dma_base...
struct iommu_ops *iommu, bool co...
{
if (!dev->archdata.dma_ops)
dev->archdata.dma_ops = &swiotlb_dma_ops;
-デバイス独自の DMA 処理が定義されていなければ ARM64 デフ...
--[[linux-4.4.1/swiotlb_dma_ops(global)]]
dev->archdata.dma_coherent = coherent;
-
--参照するときは is_device_dma_coherent() を使う。
--[[linux-4.4.1/is_device_dma_coherent()]]
__iommu_setup_dma_ops(dev, dma_base, size, iommu);
-IOMMU の DMA 処理があれば、優先する
--[[linux-4.4.1/__iommu_setup_dma_ops()]]
}
*コメント [#o5dda86f]
終了行:
*参照元 [#d43e70e0]
#backlinks
*説明 [#e0b2606d]
-パス: [[linux-4.4.1/arch/arm64/mm/dma-mapping.c]]
-FIXME: これは何?
-優先順に書くと
--IOMMU が定義する DMA 処理
--デバイス独自の DMA 処理(dev->archdata.dma_ops)
--ARM64 デフォルトの DMA 処理(swiotlb_dma_ops)
**引数 [#yedae688]
-struct device *dev
--
--[[linux-4.4.1/device]]
-u64 dma_base
--
-u64 size
--
-struct iommu_ops *iommu
--
--[[linux-4.4.1/iommu_ops]]
-bool coherent
--
**返り値 [#b426795f]
-なし
**参考 [#w17639ff]
DMA 操作の取得
-[[linux-4.4.1/get_dma_ops()(arm64)]]
関係する DMA 操作
-ARM64 デフォルト: [[linux-4.4.1/swiotlb_dma_ops(global)]]
-ダミー: [[linux-4.4.1/dummy_dma_ops(global)]]
-ダミーは直接設定されるわけではなく、この関数を一度も呼ば...
DMA 操作が未定義の状態で DMA API を使った場合、下記経路で...
--[[linux-4.4.1/get_dma_ops()]]
--[[linux-4.4.1/__generic_dma_ops()]]
*実装 [#z2f67570]
void arch_setup_dma_ops(struct device *dev, u64 dma_base...
struct iommu_ops *iommu, bool co...
{
if (!dev->archdata.dma_ops)
dev->archdata.dma_ops = &swiotlb_dma_ops;
-デバイス独自の DMA 処理が定義されていなければ ARM64 デフ...
--[[linux-4.4.1/swiotlb_dma_ops(global)]]
dev->archdata.dma_coherent = coherent;
-
--参照するときは is_device_dma_coherent() を使う。
--[[linux-4.4.1/is_device_dma_coherent()]]
__iommu_setup_dma_ops(dev, dma_base, size, iommu);
-IOMMU の DMA 処理があれば、優先する
--[[linux-4.4.1/__iommu_setup_dma_ops()]]
}
*コメント [#o5dda86f]
ページ名: