From a05a7e893d54b1b55306b1aa700394426551b061 Mon Sep 17 00:00:00 2001 From: acevest Date: Tue, 30 Dec 2025 20:03:13 +0800 Subject: [PATCH] =?utf8?q?=E5=85=88=E5=88=92=E4=B8=80=E6=AE=B5=E5=86=85?= =?utf8?q?=E6=A0=B8=E5=9B=BA=E5=AE=9A=E6=98=A0=E5=B0=84=E5=9C=B0=E5=9D=80?= =?utf8?q?=E7=A9=BA=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- include/system.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/system.h b/include/system.h index 3a58745..439b6b3 100644 --- a/include/system.h +++ b/include/system.h @@ -80,6 +80,9 @@ extern char etext, edata, end; #define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1)) +// 固定映射区划分出16MB的空间 +#define FIXED_MAP_VADDR_SIZE (16 << 20) + // 定义最大显存为 16MB // 后续内核不映射显存了,以后可以提供映射到用户空间的功能,由用户态程序操作 #define VRAM_VADDR_SIZE (16 << 20) @@ -93,12 +96,16 @@ extern char etext, edata, end; // 把内核线性地址的最高部分留给显存 // 余下的部分为支持映射其它物理内存的空间 -#define MAX_SUPT_PHYMM_SIZE (MAX_SUPT_VADDR_SIZE - VRAM_VADDR_SIZE) +#define MAX_SUPT_PHYMM_SIZE (MAX_SUPT_VADDR_SIZE - VRAM_VADDR_SIZE - FIXED_MAP_VADDR_SIZE) // 算出显存的线性地址 // 之后要将这个地址映射到显存的物理地址 #define VRAM_VADDR_BASE (PAGE_OFFSET + MAX_SUPT_PHYMM_SIZE) + +// 算出固定映射区的线性地址 +#define FIXED_MAP_VADDR_BASE (VRAM_VADDR_BASE + VRAM_VADDR_SIZE) + #define INT_STACK_SIZE PAGE_SIZE enum GDTSelectorIndex { -- 2.47.0