0

我正在编写一个 API 作为另一个模块的 linux 内核模块。对于初始开发,我想对传递给我的 API 的物理内存指针进行一些内存范围检查。这样我的模块可以帮助捕获他们模块中的错误,并且我的模块不能因为错误的指针而受到指责。

我知道有很多方法可以检查内核中的用户空间指针是否有有效内存。问题是我还没有找到一种预先打包的方法来检查内核可访问的物理内存的范围。

检查正常的内核线性地址范围肯定是可能的(0x00000000 到 0xbfffffff 和 0xc0000000 到 0xffffffff [了解 Linux 内核第三版])。内核中是否有任何可用的函数或宏来执行此操作并且可能比我的建议更好?

4

1 回答 1

1

如果它们真的是您可以使用的物理地址page_is_ram()

不过,您可能正在获取内核虚拟地址,在这种情况下,您必须先转换它们。

于 2012-08-15T13:30:00.447 回答