3

我希望能够将单个用户空间地址映射到多个低内核内存块。我有一个驱动程序,我使用 pci_alloc_consistent() 分配多个 4MB 块。理想情况下,我希望用户空间进程将 8MB(即 2 个 4MB 块)视为映射到其虚拟地址空间的单个缓冲区。这在 mmmap() 中可能吗?或者,有没有办法使用 pci_alloc_consistent() 分配一块大于 4MB 的内核内存(或其他 api,只要内存是 dma 兼容的)?

我会很感激任何指示。谢谢。

4

1 回答 1

1

查看函数vm_insert_page()或mm / memory.cremap_pfn_range()。您可以在以下位置找到示例:drivers/media/v4l2-core/videobuf2-dma-sg.c,函数vb2_dma_sg_mmap()

于 2013-05-13T12:35:34.143 回答