remap_pfn_range
函数(在驱动程序中使用的mmap
调用中)可用于将内核内存映射到用户空间。它是如何完成的?有人可以解释具体步骤吗?内核模式是特权模式(PM),而用户空间是非特权模式(NPM)。在 PM 中,CPU 可以访问所有内存,而在 NPM 中,一些内存受限制-不能被 CPU 访问。当调用 remap_pfn_range
时,之前仅限于 PM 的内存范围如何变得可访问用户空间呢?
从 remap_pfn_range
代码中可以看出,有一个pgprot_t结构
。这是与保护映射相关的 struct。什么是保护映射?它是上述问题的答案吗?