gpt4 book ai didi

linux - 我在哪里可以得到 remap_pfn_range 的 vm_area_struct?

转载 作者:太空宇宙 更新时间:2023-11-04 12:46:05 26 4
gpt4 key购买 nike

我正在使用 ARM 上的内核 3.18。我正在从正在为其编写驱动程序的相机读取数据。我使用以下设置内存:

cpu_handle = dma_alloc_coherent(NULL, dma_size, &dma_handle, GFP_KERNEL | GFP_DMA);

这工作得很好。相机传完数据后,我用同一个内核模块读取内存,就可以看到图片了。

现在我想启动一个用户空间应用程序来读取相同的数据。我认为要走的路是remap_pfn_range

我一直在寻找示例,但他们从未描述过的一件事是我从哪里获得 vm_area_struct。我假设这必须来自用户应用程序,对吗?对于第一个参数,它说“要映射到的用户 vma”。那么如何获得指向该结构的指针呢?

最佳答案

看起来 vma 指针来自用户空间应用程序。

在驱动程序(内核空间)中,我必须创建一些方法以及/dev 文件。

然后在用户应用程序中,我打开/dev 文件并在其上调用 mmap。这反过来又在我的驱动程序中调用了我自己的 mmap 方法,并且 vma (vm_area_struct) 被神奇地发送了。

关于linux - 我在哪里可以得到 remap_pfn_range 的 vm_area_struct?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com