diff options
author | glenda <glenda@9front.local> | 2025-05-14 01:33:55 +0000 |
---|---|---|
committer | glenda <glenda@9front.local> | 2025-05-14 01:33:55 +0000 |
commit | a7081490dbeda19788e6374a080ee38606aa3cd3 (patch) | |
tree | 8c440e3611573ee60322e7e84e5204e3e326028a /sys/src/9/sgi | |
parent | 635cb9e7425577dae44eb415ad42e8d3892850b5 (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/sgi')
-rw-r--r-- | sys/src/9/sgi/l.s | 2 | ||||
-rw-r--r-- | sys/src/9/sgi/main.c | 2 | ||||
-rw-r--r-- | sys/src/9/sgi/trap.c | 8 |
3 files changed, 5 insertions, 7 deletions
diff --git a/sys/src/9/sgi/l.s b/sys/src/9/sgi/l.s index d3fe25d2b..f52276d6f 100644 --- a/sys/src/9/sgi/l.s +++ b/sys/src/9/sgi/l.s @@ -442,8 +442,6 @@ waskernel: wasuser: /* get kernel stack for this user process */ GETMACH (SP) MOVW 8(SP), SP /* m->proc */ - MOVW 8(SP), SP /* m->proc->kstack */ - ADDU $(KSTACK-UREGSIZE), SP dosave: MOVW R31, 0x28(SP) diff --git a/sys/src/9/sgi/main.c b/sys/src/9/sgi/main.c index 31d120068..4e0aa75ba 100644 --- a/sys/src/9/sgi/main.c +++ b/sys/src/9/sgi/main.c @@ -321,7 +321,7 @@ procsave(Proc *p) } void -procrestore(Proc *p) +procrestore(Proc *) { } diff --git a/sys/src/9/sgi/trap.c b/sys/src/9/sgi/trap.c index 2bea55c34..c97ee7d08 100644 --- a/sys/src/9/sgi/trap.c +++ b/sys/src/9/sgi/trap.c @@ -160,7 +160,7 @@ trap(Ureg *ur) char buf[2*ERRMAX], buf1[ERRMAX], *fpexcep; static int dumps; - if (up && (char *)(ur) - up->kstack < 1024 && dumps++ == 0) { + if (up && (char *)(ur) - ((char *)up - KSTACK) < 1024 && dumps++ == 0) { iprint("trap: proc %ld kernel stack getting full\n", up->pid); dumpregs(ur); dumpstack(); @@ -421,7 +421,7 @@ _dumpstack(Ureg *ureg) if(up == nil) top = (ulong)MACHADDR + MACHSIZE; else - top = (ulong)up->kstack + KSTACK; + top = (ulong)up; i = 0; for(l=ureg->sp; l < top; l += BY2WD) { v = *(ulong*)l; @@ -764,7 +764,7 @@ forkchild(Proc *p, Ureg *ur) { Ureg *cur; - p->sched.sp = (ulong)p->kstack+KSTACK-UREGSIZE; + p->sched.sp = (ulong)p - UREGSIZE; p->sched.pc = (ulong)forkret; cur = (Ureg*)(p->sched.sp+2*BY2WD); @@ -780,7 +780,7 @@ void kprocchild(Proc *p, void (*entry)(void)) { p->sched.pc = (ulong)entry; - p->sched.sp = (ulong)p->kstack+KSTACK; + p->sched.sp = (ulong)p; } /* set up user registers before return from exec() */ |