- 追加された行はこの色です。
- 削除された行はこの色です。
*参照元 [#rea4593d]
*参照元 [#h8db2f2a]
#backlinks
*説明 [#zcb5f4c6]
-パス: [[linux-4.4.1/]]
*説明 [#de5a0fba]
-パス: [[linux-4.4.1/arch/arm/mm/dma-mapping.c]]
-FIXME: これは何?
--説明
**引数 [#ob6accd5]
**引数 [#i0c359f4]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct scatterlist *sg
--
--[[linux-4.4.1/scatterlist]]
-int nents
--
-enum dma_data_direction dir
--
--[[linux-4.4.1/dma_data_direction]]
**返り値 [#n36e03f3]
**返り値 [#ae9fbbce]
-なし
**参考 [#x1a7eba5]
**参考 [#m6fdbecf]
*実装 [#o00a215a]
*実装 [#c1bcabc7]
/**
* arm_dma_sync_sg_for_device
* @dev: valid struct device pointer, or NULL for ISA and EISA-like devices
* @sg: list of buffers
* @nents: number of buffers to map (returned from dma_map_sg)
* @dir: DMA transfer direction (same as was passed to dma_map_sg)
*/
void arm_dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg,
int nents, enum dma_data_direction dir)
{
struct dma_map_ops *ops = get_dma_ops(dev);
struct scatterlist *s;
int i;
-
--[[linux-4.4.1/dma_map_ops]]
--[[linux-4.4.1/get_dma_ops()]]
for_each_sg(sg, s, nents, i)
ops->sync_single_for_device(dev, sg_dma_address(s), s->length,
dir);
-
--sync_single_for_device の実装については dma_map_ops から辿れます。
--[[linux-4.4.1/dma_map_ops]]
--[[linux-4.4.1/for_each_sg()]]
--[[linux-4.4.1/sg_dma_address()]]
-ここに来るということは、おそらく ops は arm_dma_ops のはず。従って sync_single_for_device は arm_dma_sync_single_for_device() を指していると思われる。
--[[linux-4.4.1/arm_dma_ops(global)]]
--[[linux-4.4.1/arm_dma_sync_single_for_device()]]
}
*コメント [#d6b61b79]
*コメント [#k948e4bc]