mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 10:48:11 +00:00
Kernel: Mark kernel stack regions as... stack regions
This commit is contained in:
parent
b557aab884
commit
0cb89f5927
1 changed files with 2 additions and 0 deletions
|
@ -85,6 +85,7 @@ Thread::Thread(Process& process)
|
|||
|
||||
if (m_process.is_ring0()) {
|
||||
m_kernel_stack_region = MM.allocate_kernel_region(default_kernel_stack_size, String::format("Kernel Stack (Thread %d; Ring0)", m_tid), false, true);
|
||||
m_kernel_stack_region->set_stack(true);
|
||||
m_kernel_stack_base = m_kernel_stack_region->vaddr().get();
|
||||
m_kernel_stack_top = m_kernel_stack_region->vaddr().offset(default_kernel_stack_size).get() & 0xfffffff8u;
|
||||
m_tss.esp = m_kernel_stack_top;
|
||||
|
@ -92,6 +93,7 @@ Thread::Thread(Process& process)
|
|||
} else {
|
||||
// Ring3 processes need a separate stack for Ring0.
|
||||
m_kernel_stack_region = MM.allocate_kernel_region(default_kernel_stack_size, String::format("Kernel Stack (Thread %d; Ring3)", m_tid), false, true);
|
||||
m_kernel_stack_region->set_stack(true);
|
||||
m_kernel_stack_base = m_kernel_stack_region->vaddr().get();
|
||||
m_kernel_stack_top = m_kernel_stack_region->vaddr().offset(default_kernel_stack_size).get() & 0xfffffff8u;
|
||||
m_tss.ss0 = 0x10;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue