确定PAGE_OFFSET的值?

时间:2013-10-15 01:13:31

标签: linux-kernel kernel

如何确定我正在构建的内核的PAGE_OFFSET值? 我正在为ARM平台构建内核。

谢谢, VJ

4 个答案:

答案 0 :(得分:1)

我终于找到了PAGE_OFFSET的值作为.config下定义的值,而不是CONFIG_PAGE_OFFSET = 0xC0000000。

答案 1 :(得分:1)

以X86_32拱门为例。

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)

arch / 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 自动添加的。

答案 2 :(得分:0)

查看内核源代码

grep -rn "#define PAGE_OFFSET" arch/arm/*

它发现它在arch/arm/include/asm/memory.h中定义,但它取决于您的内核配置。根据您的配置遵循符号,您将获得价值。

或者您可以使用Linux kernel web explorer

答案 3 :(得分:0)

您可以在编译期间使用C预处理器打印该值:

+#define STRING2(x) #x
+#define STRING(x) STRING2(x)
+#pragma message "PAGE_OFFSET = " STRING(PAGE_OFFSET)

这将在运行make的控制台中打印该值。