Kernel: Support 64-bit addresses for kernel thread stacks

This commit is contained in:
Gunnar Beutner 2021-07-17 02:09:45 +02:00 committed by Andreas Kling
parent c878054682
commit 6c6b778e2e
Notes: sideshowbarker 2024-07-18 08:48:44 +09:00
2 changed files with 5 additions and 5 deletions

View file

@ -122,7 +122,7 @@ Thread::Thread(NonnullRefPtr<Process> process, NonnullOwnPtr<Region> kernel_stac
m_regs.cr3 = m_process->space().page_directory().cr3();
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_kernel_stack_top = m_kernel_stack_region->vaddr().offset(default_kernel_stack_size).get() & ~(FlatPtr)0x7u;
if (m_process->is_kernel_process()) {
#if ARCH(I386)

View file

@ -991,8 +991,8 @@ public:
void set_ticks_left(u32 t) { m_ticks_left = t; }
u32 ticks_left() const { return m_ticks_left; }
u32 kernel_stack_base() const { return m_kernel_stack_base; }
u32 kernel_stack_top() const { return m_kernel_stack_top; }
FlatPtr kernel_stack_base() const { return m_kernel_stack_base; }
FlatPtr kernel_stack_top() const { return m_kernel_stack_top; }
void set_state(State, u8 = 0);
@ -1276,8 +1276,8 @@ private:
u32 m_ticks_in_kernel { 0 };
u32 m_pending_signals { 0 };
u32 m_signal_mask { 0 };
u32 m_kernel_stack_base { 0 };
u32 m_kernel_stack_top { 0 };
FlatPtr m_kernel_stack_base { 0 };
FlatPtr m_kernel_stack_top { 0 };
OwnPtr<Region> m_kernel_stack_region;
VirtualAddress m_thread_specific_data;
Optional<Range> m_thread_specific_range;