如何在内核模块中访问由用户空间进程创建的/ dev / shm下的tmpfs文件?

时间:2013-05-10 02:50:26

标签: linux linux-kernel mmap

我在用户空间的/ dev / shm(tmpfs)下创建了一个文件,我把这个文件映射到进程地址空间并推送内容。 现在,如何在内核虚拟地址空间下再次映射此文件以访问用户空间进程写入的内容。当然我知道如何使用filp_open()和vfs_read()来读取它,但我真的想使用类似于用户空间进程的mmap()的直接内存指针来访问内容。 我想做一些类似于mm / shmem.c中的内容,但不是在用户空间VMA和/ SYSVXXX文件之间进行映射,而是想用内核虚拟地址VMA来做。 任何人都可以帮忙吗?

谢谢..

1 个答案:

答案 0 :(得分:0)

只有实现tmpfs的代码知道其文件的内存在哪里。

您必须实施自己的FS,或使用允许您定义自己的mmap实施的FS(例如procfssysfs)。