簡體   English   中英

如何在Linux內核中執行非用戶空間內存的內存范圍檢查?

[英]How to perform a memory range check within the Linux kernel for non-userspace memory?

我正在將API編寫為另一個模塊的Linux內核模塊。 對於初始開發,我想對傳遞給我的API的物理內存指針進行一些內存范圍檢查。 這樣,我的模塊可以幫助捕獲其模塊中的錯誤,並且不能責怪我的模塊指針不正確。

我知道有很多方法可以檢查內核中的用戶空間指針以獲取有效內存。 問題是我還沒有找到一種預打包的方法來對內核可訪問的物理內存進行范圍檢查。

檢查正常的內核線性地址范圍肯定是可能的(0x00000000到0xbfffffff和0xc0000000到0xffffffff [了解Linux內核第三版])。 內核中是否有任何可用的函數或宏可以做到這一點,並且可能比我的建議更好?

如果它們確實是物理地址,則可以使用page_is_ram()

但是,您可能會獲得內核虛擬地址,在這種情況下,您必須先將其轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM