summaryrefslogtreecommitdiff
path: root/sys/src/9/teg2
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/teg2
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/teg2')
-rw-r--r--sys/src/9/teg2/arch.c2
-rw-r--r--sys/src/9/teg2/syscall.c2
-rw-r--r--sys/src/9/teg2/trap.c8
3 files changed, 6 insertions, 6 deletions
diff --git a/sys/src/9/teg2/arch.c b/sys/src/9/teg2/arch.c
index d60944a50..565884608 100644
--- a/sys/src/9/teg2/arch.c
+++ b/sys/src/9/teg2/arch.c
@@ -68,7 +68,7 @@ void
kprocchild(Proc *p, void (*entry)(void))
{
p->sched.pc = (uintptr)entry;
- p->sched.sp = (uintptr)p->kstack+KSTACK;
+ p->sched.sp = (uintptr)p;
}
/*
diff --git a/sys/src/9/teg2/syscall.c b/sys/src/9/teg2/syscall.c
index d444e7971..6d5c6ba1f 100644
--- a/sys/src/9/teg2/syscall.c
+++ b/sys/src/9/teg2/syscall.c
@@ -342,7 +342,7 @@ forkchild(Proc *p, Ureg *ureg)
{
Ureg *cureg;
- p->sched.sp = (ulong)p->kstack+KSTACK-sizeof(Ureg);
+ p->sched.sp = (ulong)p - sizeof(Ureg);
p->sched.pc = (ulong)forkret;
cureg = (Ureg*)(p->sched.sp);
diff --git a/sys/src/9/teg2/trap.c b/sys/src/9/teg2/trap.c
index 697a5ae3a..af134f8ce 100644
--- a/sys/src/9/teg2/trap.c
+++ b/sys/src/9/teg2/trap.c
@@ -819,7 +819,7 @@ trap(Ureg *ureg)
splhi(); /* paranoia */
if(up != nil)
- rem = ((char*)ureg)-up->kstack;
+ rem = ((char*)ureg)-((char*)up-KSTACK);
else
rem = ((char*)ureg)-((char*)m+sizeof(Mach));
if(rem < 1024) {
@@ -957,9 +957,9 @@ dumpstackwithureg(Ureg *ureg)
delay(20);
i = 0;
if(up
- && (uintptr)&l >= (uintptr)up->kstack
- && (uintptr)&l <= (uintptr)up->kstack+KSTACK)
- estack = (uintptr)up->kstack+KSTACK;
+ && (uintptr)&l >= (uintptr)up - KSTACK
+ && (uintptr)&l <= (uintptr)up)
+ estack = (uintptr)up;
else if((uintptr)&l >= (uintptr)m->stack
&& (uintptr)&l <= (uintptr)m+MACHSIZE)
estack = (uintptr)m+MACHSIZE;