Linux kernel 确定页偏移量的值?

Linux kernel 确定页偏移量的值?,linux-kernel,kernel,Linux Kernel,Kernel,如何确定我正在构建的内核的PAGE_OFFSET的值? 我正在为ARM平台构建内核 谢谢, vj查看内核源代码 grep -rn "#define PAGE_OFFSET" arch/arm/* 它发现它是在arch/arm/include/asm/memory.h中定义的,但它取决于您的内核配置。根据您的条件跟随符号,您将获得值 或者,您可以使用一个我最终发现PAGE\u OFFSET的值是在.config下定义的值,而config\u PAGE\u OFFSET=0xC0000000。您可

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

谢谢,
vj

查看内核源代码

grep -rn "#define PAGE_OFFSET" arch/arm/*
它发现它是在
arch/arm/include/asm/memory.h中定义的,但它取决于您的内核配置。根据您的条件跟随符号,您将获得值


或者,您可以使用一个

我最终发现PAGE\u OFFSET的值是在.config下定义的值,而config\u PAGE\u OFFSET=0xC0000000。

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

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

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

以X86_32 arch为例

arch/x86/include/asm/page_types.h:

#define PAGE_OFFSET     ((unsigned long)__PAGE_OFFSET)
#define __PAGE_OFFSET       _AC(CONFIG_PAGE_OFFSET, UL)
arch/x86/include/asm/page_32_types.h:

#define PAGE_OFFSET     ((unsigned long)__PAGE_OFFSET)
#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\u 32\u types.h中的配置页面偏移量。因为前缀“CONFIG_389;”是由make系统自动添加的