Kernel: Move stacks to the top of userspace address space

This commit is contained in:
Bananymous 2025-08-05 02:44:45 +03:00
parent 95cfac471a
commit f27823babe
1 changed files with 8 additions and 2 deletions

View File

@ -119,9 +119,15 @@ namespace Kernel
thread->m_is_userspace = true; thread->m_is_userspace = true;
#if ARCH(x86_64)
static constexpr vaddr_t stack_addr_start = 0x0000700000000000;
#elif ARCH(i686)
static constexpr vaddr_t stack_addr_start = 0xB0000000;
#endif
thread->m_kernel_stack = TRY(VirtualRange::create_to_vaddr_range( thread->m_kernel_stack = TRY(VirtualRange::create_to_vaddr_range(
page_table, page_table,
0x200000, USERSPACE_END, stack_addr_start, USERSPACE_END,
kernel_stack_size, kernel_stack_size,
PageTable::Flags::ReadWrite | PageTable::Flags::Present, PageTable::Flags::ReadWrite | PageTable::Flags::Present,
true, true true, true
@ -129,7 +135,7 @@ namespace Kernel
thread->m_userspace_stack = TRY(VirtualRange::create_to_vaddr_range( thread->m_userspace_stack = TRY(VirtualRange::create_to_vaddr_range(
page_table, page_table,
0x200000, USERSPACE_END, stack_addr_start, USERSPACE_END,
userspace_stack_size, userspace_stack_size,
PageTable::Flags::UserSupervisor | PageTable::Flags::ReadWrite | PageTable::Flags::Present, PageTable::Flags::UserSupervisor | PageTable::Flags::ReadWrite | PageTable::Flags::Present,
true, true true, true