From a6c3924b567f2890df5ddf93164e2b8564674741 Mon Sep 17 00:00:00 2001 From: belliash Date: Fri, 3 Nov 2023 15:29:01 +0100 Subject: [PATCH] Initialize Idle thread for i686 architecture --- xtoskrnl/ke/i686/krnlinit.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xtoskrnl/ke/i686/krnlinit.c b/xtoskrnl/ke/i686/krnlinit.c index 654f80c0..4a3b69d9 100644 --- a/xtoskrnl/ke/i686/krnlinit.c +++ b/xtoskrnl/ke/i686/krnlinit.c @@ -37,6 +37,15 @@ KepInitializeKernel(VOID) PageDirectory[1] = 0; KeInitializeProcess(CurrentThread->ApcState.Process, 0, 0xFFFFFFFF, PageDirectory, FALSE); CurrentThread->ApcState.Process->Quantum = MAXCHAR; + + /* Initialize Idle thread */ + KeInitializeThread(CurrentThread->ApcState.Process, CurrentThread, NULL, NULL, NULL, NULL, NULL, Prcb->DpcStack); + CurrentThread->NextProcessor = Prcb->Number; + CurrentThread->Priority = THREAD_HIGH_PRIORITY; + CurrentThread->State = Running; + CurrentThread->Affinity = (ULONG_PTR)1 << Prcb->Number; + CurrentThread->WaitIrql = DISPATCH_LEVEL; + CurrentThread->ApcState.Process->ActiveProcessors |= (ULONG_PTR)1 << Prcb->Number; } /**