構築中のカーネルの PAGE_OFFSET の値を決定するにはどうすればよいですか? ARM プラットフォーム用のカーネルを構築しています。
ありがとう、vj
構築中のカーネルの PAGE_OFFSET の値を決定するにはどうすればよいですか? ARM プラットフォーム用のカーネルを構築しています。
ありがとう、vj
最終的に、CONFIG_PAGE_OFFSET=0xC0000000 に対して、.config で定義された値として PAGE_OFFSET の値を見つけました。
X86_32 arch を例に取ります。
arch/x86/include/asm/page_types.h:
#define PAGE_OFFSET ((unsigned long)__PAGE_OFFSET)
arch/x86/include/asm/page_32_types.h:
#define __PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)
アーチ/x86/Kconfig:
config PAGE_OFFSET
hex
default 0xB0000000 if VMSPLIT_3G_OPT
default 0x80000000 if VMSPLIT_2G
default 0x78000000 if VMSPLIT_2G_OPT
default 0x40000000 if VMSPLIT_1G
default 0xC0000000
depends on X86_32
arch/x86/Kconfig の PAGE_OFFSET は、page_32_types.h の CONFIG_PAGE_OFFSET です。プレフィックス 'CONFIG_' はmake systemによって自動的に追加されるためです。
コンパイル中に C プリプロセッサを使用して値を出力できます。
+#define STRING2(x) #x
+#define STRING(x) STRING2(x)
+#pragma message "PAGE_OFFSET = " STRING(PAGE_OFFSET)
これにより、make を実行しているコンソールに値が出力されます。