ptos/amd64: ps: Add support for CPL 3 processes

Signed-off-by: Chloe M <chloe@mensia.org>
This commit is contained in:
2026-07-15 01:10:39 -04:00
parent bda2c510cd
commit 85927ce8c1
4 changed files with 30 additions and 7 deletions
+10
View File
@@ -20,8 +20,12 @@ HalContextSwitch(TRAP_FRAME *Frame)
PROCESS *NextParent;
TCB *ThisTcb, *NextTcb;
KPCR *Kpcr;
MCB *Mcb;
TSS_ENTRY *Tss;
UPTR KStackTop;
Kpcr = HalKpcrCurrent();
Mcb = &Kpcr->Mcb;
ThisThread = Kpcr->CurrentThread;
NextThread = NULL;
@@ -54,6 +58,12 @@ HalContextSwitch(TRAP_FRAME *Frame)
NextParent = NextThread->Parent;
HalMmuWriteVas(&NextParent->Vas);
/* Update the task state segment with kstack */
KStackTop = NextTcb->KStackBase + NextTcb->KStackLength;
Tss = Mcb->Tss;
Tss->Rsp0Low = KStackTop & 0xFFFFFFFF;
Tss->Rsp0High = (KStackTop >> 32) & 0xFFFFFFFF;
/* Context switch here */
Kpcr->CurrentThread = NextThread;
NextTcb = &NextThread->Tcb;