summaryrefslogtreecommitdiff
path: root/sys/src/9/xen
diff options
context:
space:
mode:
authorglenda <glenda@9front.local>2025-05-14 01:33:55 +0000
committerglenda <glenda@9front.local>2025-05-14 01:33:55 +0000
commita7081490dbeda19788e6374a080ee38606aa3cd3 (patch)
tree8c440e3611573ee60322e7e84e5204e3e326028a /sys/src/9/xen
parent635cb9e7425577dae44eb415ad42e8d3892850b5 (diff)
kernel: get rid of Proc.kstack
The kernel stack is now above the Proc structure, so the explicit kstack pointer can be eliminated.
Diffstat (limited to 'sys/src/9/xen')
-rw-r--r--sys/src/9/xen/mmu.c4
-rw-r--r--sys/src/9/xen/trap.c10
2 files changed, 7 insertions, 7 deletions
diff --git a/sys/src/9/xen/mmu.c b/sys/src/9/xen/mmu.c
index 250d08371..03017e88d 100644
--- a/sys/src/9/xen/mmu.c
+++ b/sys/src/9/xen/mmu.c
@@ -237,10 +237,10 @@ mmuswitch(Proc* proc)
//XXX doesn't work for some reason, but it's not needed for uniprocessor
//pdb = (ulong*)proc->mmupdb->va;
//xenupdate(&pdb[PDX(MACHADDR)], m->pdb[PDX(MACHADDR)]);
- taskswitch(proc->mmupdb, (ulong)(proc->kstack+KSTACK));
+ taskswitch(proc->mmupdb, (ulong)proc);
}
else
- taskswitch(0, (ulong)(proc->kstack+KSTACK));
+ taskswitch(0, (ulong)proc);
}
void
diff --git a/sys/src/9/xen/trap.c b/sys/src/9/xen/trap.c
index 72f7e98eb..7527461fc 100644
--- a/sys/src/9/xen/trap.c
+++ b/sys/src/9/xen/trap.c
@@ -263,9 +263,9 @@ _dumpstack(Ureg *ureg)
x += print("ktrace /kernel/path %.8lux %.8lux <<EOF\n", ureg->pc, ureg->sp);
i = 0;
if(up
- && (ulong)&l >= (ulong)up->kstack
- && (ulong)&l <= (ulong)up->kstack+KSTACK)
- estack = (ulong)up->kstack+KSTACK;
+ && (ulong)&l >= (ulong)up - KSTACK
+ && (ulong)&l <= (ulong)up)
+ estack = (ulong)up;
else if((ulong)&l >= (ulong)m->stack
&& (ulong)&l <= (ulong)m+BY2PG)
estack = (ulong)m+MACHSIZE;
@@ -710,7 +710,7 @@ kprocchild(Proc *p, void (*entry)(void))
* to linkproc().
*/
p->sched.pc = (ulong)entry;
- p->sched.sp = (ulong)p->kstack+KSTACK-BY2WD;
+ p->sched.sp = (ulong)p - BY2WD;
}
void
@@ -723,7 +723,7 @@ forkchild(Proc *p, Ureg *ureg)
* - the return PC
* - trap's argument (ur)
*/
- p->sched.sp = (ulong)p->kstack+KSTACK-(sizeof(Ureg)+2*BY2WD);
+ p->sched.sp = (ulong)p - (sizeof(Ureg)+2*BY2WD);
p->sched.pc = (ulong)forkret;
cureg = (Ureg*)(p->sched.sp+2*BY2WD);