linux-4.4.1/dma_common_mmap()
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*参照元 [#adbf5100]
#backlinks
*説明 [#yc141f7a]
-パス: [[linux-4.4.1/drivers/base/dma-mapping.c]]
-FIXME: これは何?
--説明
**引数 [#h734cdc0]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct vm_area_struct *vma
--
--[[linux-4.4.1/vm_area_struct]]
-void *cpu_addr
--
-dma_addr_t dma_addr
--
--[[linux-4.4.1/dma_addr_t]]
-size_t size
--
**返り値 [#q272019c]
-int
--
**参考 [#oa4ba104]
*実装 [#k2e3a08f]
/*
* Create userspace mapping for the DMA-coherent memory.
*/
int dma_common_mmap(struct device *dev, struct vm_area_s...
void *cpu_addr, dma_addr_t dma_addr,...
{
int ret = -ENXIO;
#ifdef CONFIG_MMU
-
--[[linux-4.4.1/CONFIG_MMU]]
unsigned long user_count = (vma->vm_end - vma->v...
unsigned long count = PAGE_ALIGN(size) >> PAGE_S...
unsigned long pfn = page_to_pfn(virt_to_page(cpu...
unsigned long off = vma->vm_pgoff;
-
--[[linux-4.4.1/PAGE_ALIGN()]]
--[[linux-4.4.1/page_to_pfn()]]
--[[linux-4.4.1/virt_to_page()]]
vma->vm_page_prot = pgprot_noncached(vma->vm_pag...
-
--[[linux-4.4.1/pgprot_noncached()]]
if (dma_mmap_from_coherent(dev, vma, cpu_addr, s...
return ret;
-
--[[linux-4.4.1/dma_mmap_from_coherent()]]
if (off < count && user_count <= (count - off)) {
ret = remap_pfn_range(vma, vma->vm_start,
pfn + off,
user_count << PAGE...
vma->vm_page_prot);
}
-
--[[linux-4.4.1/remap_pfn_range()]]
#endif /* CONFIG_MMU */
return ret;
}
EXPORT_SYMBOL(dma_common_mmap);
-
--[[linux-4.4.1/EXPORT_SYMBOL()]]
*コメント [#p563c9e7]
終了行:
*参照元 [#adbf5100]
#backlinks
*説明 [#yc141f7a]
-パス: [[linux-4.4.1/drivers/base/dma-mapping.c]]
-FIXME: これは何?
--説明
**引数 [#h734cdc0]
-struct device *dev
--
--[[linux-4.4.1/device]]
-struct vm_area_struct *vma
--
--[[linux-4.4.1/vm_area_struct]]
-void *cpu_addr
--
-dma_addr_t dma_addr
--
--[[linux-4.4.1/dma_addr_t]]
-size_t size
--
**返り値 [#q272019c]
-int
--
**参考 [#oa4ba104]
*実装 [#k2e3a08f]
/*
* Create userspace mapping for the DMA-coherent memory.
*/
int dma_common_mmap(struct device *dev, struct vm_area_s...
void *cpu_addr, dma_addr_t dma_addr,...
{
int ret = -ENXIO;
#ifdef CONFIG_MMU
-
--[[linux-4.4.1/CONFIG_MMU]]
unsigned long user_count = (vma->vm_end - vma->v...
unsigned long count = PAGE_ALIGN(size) >> PAGE_S...
unsigned long pfn = page_to_pfn(virt_to_page(cpu...
unsigned long off = vma->vm_pgoff;
-
--[[linux-4.4.1/PAGE_ALIGN()]]
--[[linux-4.4.1/page_to_pfn()]]
--[[linux-4.4.1/virt_to_page()]]
vma->vm_page_prot = pgprot_noncached(vma->vm_pag...
-
--[[linux-4.4.1/pgprot_noncached()]]
if (dma_mmap_from_coherent(dev, vma, cpu_addr, s...
return ret;
-
--[[linux-4.4.1/dma_mmap_from_coherent()]]
if (off < count && user_count <= (count - off)) {
ret = remap_pfn_range(vma, vma->vm_start,
pfn + off,
user_count << PAGE...
vma->vm_page_prot);
}
-
--[[linux-4.4.1/remap_pfn_range()]]
#endif /* CONFIG_MMU */
return ret;
}
EXPORT_SYMBOL(dma_common_mmap);
-
--[[linux-4.4.1/EXPORT_SYMBOL()]]
*コメント [#p563c9e7]
ページ名: