別のモジュールのLinuxカーネルモジュールとしてAPIを作成しています。初期開発では、APIに渡される物理メモリポインタのメモリ範囲チェックを行いたいと思います。そうすれば、私のモジュールはモジュールのバグを見つけるのに役立ち、私のモジュールは悪いポインタのせいにすることはできません。
カーネル内のユーザースペースポインタで有効なメモリをチェックする方法はたくさんあることを私は知っています。問題は、カーネルにアクセス可能な物理メモリの範囲チェックを行うためのパッケージ済みの方法が見つからないことです。
通常のカーネル線形アドレス範囲をチェックすることは確かに可能です(0x00000000から0xbfffffffおよび0xc0000000から0xffffffff [Linuxカーネル第3版を理解する])。これを行うためにカーネルですぐに利用でき、私の提案よりも優れている可能性のある関数またはマクロはありますか?