From 9589b5984d23413b8de5c0973fabfffe78ff7ae0 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 2 Apr 2026 16:34:47 +0300 Subject: [PATCH] Kernel: Move USERSPACE_END to lower half This allows calculating distance to USERSPACE_END from lower half address --- kernel/arch/x86_64/PageTable.cpp | 4 ++-- kernel/include/kernel/Memory/Types.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/arch/x86_64/PageTable.cpp b/kernel/arch/x86_64/PageTable.cpp index 11ee3923..df499313 100644 --- a/kernel/arch/x86_64/PageTable.cpp +++ b/kernel/arch/x86_64/PageTable.cpp @@ -866,7 +866,7 @@ namespace Kernel last_address -= rem; ASSERT(is_canonical(first_address)); - ASSERT(is_canonical(last_address)); + ASSERT(is_canonical(last_address - 1)); const vaddr_t uc_vaddr_start = uncanonicalize(first_address); const vaddr_t uc_vaddr_end = uncanonicalize(last_address); @@ -948,7 +948,7 @@ namespace Kernel last_address -= rem; ASSERT(is_canonical(first_address)); - ASSERT(is_canonical(last_address)); + ASSERT(is_canonical(last_address - 1)); SpinLockGuard _(m_lock); diff --git a/kernel/include/kernel/Memory/Types.h b/kernel/include/kernel/Memory/Types.h index acc33320..6a1673d8 100644 --- a/kernel/include/kernel/Memory/Types.h +++ b/kernel/include/kernel/Memory/Types.h @@ -4,7 +4,7 @@ #if ARCH(x86_64) #define KERNEL_OFFSET 0xFFFFFFFF80000000 - #define USERSPACE_END 0xFFFF800000000000 + #define USERSPACE_END 0x800000000000 #elif ARCH(i686) #define KERNEL_OFFSET 0xC0000000 #define USERSPACE_END 0xC0000000