【发布时间】:2016-02-29 12:58:02
【问题描述】:
我正在使用devm_kzalloc(.., .., GFP_KERNEL) 在我的驱动程序中分配一个缓冲区,然后我将此缓冲区注册为帧缓冲区驱动程序,以便它在/dev/fb0 下显示为一个文件。然后我可以打开这个文件并写入它。当我这样做时,一切正常,我的数据到达驱动程序内存缓冲区。
但是,如果我在用户进程中 mmap 它是这样的:mmap(NULL, size, PROT_WRITE, MAP_SHARED, fd, 0),使用相同的文件 fd 并尝试写入返回的内存空间,则不会将任何内容写入驱动程序内存。
我在这里忘记了什么吗?
【问题讨论】:
-
man7.org/linux/man-pages/man2/mmap.2.html - 仔细阅读 MAP_SHARED 段落,那里可能有线索。
标签: c linux linux-kernel