Linuxのメモリページサイズ

メモリを使用する場合は、メモリが4KBのページサイズが想定されます。PAGE_SIZEバイトページは4キロバイトではありません覚えておくと、この値はハードコードされた逆に、PCのプログラマよくある間違いで、サポートされるプラットフォームは、へ4キロバイトからページサイズを表示します64キロバイト、同じプラットフォーム上で、時にはそれらの異なる実装が異なる。マクロはPAGE_SIZEとPAGE_SHITに関連付けられている。そのページ番号をシフトアドレスを取得するためのビット数を含む。4キロバイト以上ため現在のページ番号は、12個の以上のマクロが<ASM / page.h>で定義されている。彼らは、この情報が必要な場合、ユーザーは、スペースはgetpagesizeライブラリ関数を使用することができます。

 

ドライバーが一時的にデータを格納するための16キロバイトを必要とする場合、それは指定しないでください、非正常な状況を見てみましょう

あなたは、このような解決策へのポータブルソリューションを必要とするget_free_pagesへのインデックス2は、幸いにも、カーネル開発者によって書かれ、get_order呼ばれてきました..:

 

書式#include <ASM / page.h>

INT順序= get_order(×1024 16)。

BUF = get_free_pages(GFP_KERNEL、オーダー);

 

get_orderパラメータは2の累乗でなければならない、覚えておいてください。

おすすめ

転載: www.cnblogs.com/fanweisheng/p/11146090.html