Linux kernel 确定页偏移量的值?
如何确定我正在构建的内核的PAGE_OFFSET的值? 我正在为ARM平台构建内核 谢谢,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。您可
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系统自动添加的