我的问题是我们如何将 mmap'd 区域传回给模块,以便它可以操纵该内存。
我正在寻找的是:
- 我的用户空间应用程序使用数百个线程运行(因此很难跟踪内核已将哪个缓冲区分配给哪个用户空间线程)。
- 用户线程调用模块的 mmap 函数,得到它后,它用数据填充缓冲区。
- 然后它必须使用 ioctl() 将此缓冲区传递给模块,以便模块进行一些处理并修改缓冲区。
- 用户空间线程读取新数据
我不确定如何实施“步骤 3”。无论如何要将此用户缓冲区传递给模块,以便它知道它在内核空间中的哪个地址?
(我不能使用 malloc 或 copy_from_user)