kernel: remove implicit Proc* argument from procctl()

procctl() is always called with up and it would not
work correctly if passed a different process, so
remove the Proc* argument and use up directly.
This commit is contained in:
cinap_lenrek 2014-11-09 08:19:28 +01:00
parent 1ffcdbab88
commit b18a641397
14 changed files with 43 additions and 43 deletions

View file

@ -519,7 +519,7 @@ notify(Ureg *ur)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -679,7 +679,7 @@ notify(Ureg* ureg)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -104,7 +104,7 @@ notify(Ureg* ureg)
NFrame *nf; NFrame *nf;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;
@ -210,7 +210,7 @@ syscall(Ureg* ureg)
syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); syscallfmt(scallnr, ureg->pc, (va_list)up->s.args);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
startns = todget(nil); startns = todget(nil);
} }
@ -253,7 +253,7 @@ syscall(Ureg* ureg)
sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
} }

View file

@ -701,7 +701,7 @@ notify(Ureg* ur)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -104,7 +104,7 @@ notify(Ureg* ureg)
NFrame *nf; NFrame *nf;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;
@ -196,7 +196,7 @@ syscall(Ureg* ureg)
if(up->procctl == Proc_tracesyscall){ if(up->procctl == Proc_tracesyscall){
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
} }
scallnr = ureg->r0; scallnr = ureg->r0;
@ -247,9 +247,9 @@ syscall(Ureg* ureg)
ureg->r0 = ret; ureg->r0 = ret;
if(up->procctl == Proc_tracesyscall){ if(up->procctl == Proc_tracesyscall){
up->procctl = Proc_stopme;
s = splhi(); s = splhi();
procctl(up); up->procctl = Proc_stopme;
procctl();
splx(s); splx(s);
} }

View file

@ -140,7 +140,7 @@ notify(Ureg *ureg)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;
s = spllo(); s = spllo();
@ -337,7 +337,7 @@ syscall(Ureg *ureg)
syscallfmt(scall, ureg->pc, (va_list)up->s.args); syscallfmt(scall, ureg->pc, (va_list)up->s.args);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
startns = todget(nil); startns = todget(nil);
} }
@ -362,7 +362,7 @@ syscall(Ureg *ureg)
sysretfmt(scall, (va_list)up->s.args, ret, startns, stopns); sysretfmt(scall, (va_list)up->s.args, ret, startns, stopns);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
} }

View file

@ -743,7 +743,7 @@ syscall(Ureg* ureg)
syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); syscallfmt(scallnr, ureg->pc, (va_list)up->s.args);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
startns = todget(nil); startns = todget(nil);
} }
@ -786,7 +786,7 @@ syscall(Ureg* ureg)
sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
} }
@ -818,7 +818,7 @@ notify(Ureg* ureg)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -705,7 +705,7 @@ syscall(Ureg* ureg)
syscallfmt(scallnr, ureg->pc, (va_list)up->s.args); syscallfmt(scallnr, ureg->pc, (va_list)up->s.args);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
startns = todget(nil); startns = todget(nil);
} }
@ -745,7 +745,7 @@ syscall(Ureg* ureg)
sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns); sysretfmt(scallnr, (va_list)up->s.args, ret, startns, stopns);
s = splhi(); s = splhi();
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
splx(s); splx(s);
} }
@ -789,7 +789,7 @@ notify(Ureg* ureg)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -47,7 +47,7 @@ fault(uintptr addr, int read)
switch(up->procctl){ switch(up->procctl){
case Proc_exitme: case Proc_exitme:
case Proc_exitbig: case Proc_exitbig:
procctl(up); procctl();
} }
} }

View file

@ -222,7 +222,7 @@ int preempted(void);
void prflush(void); void prflush(void);
void printinit(void); void printinit(void);
ulong procalarm(ulong); ulong procalarm(ulong);
void procctl(Proc*); void procctl(void);
void procdump(void); void procdump(void);
int procfdprint(Chan*, int, int, char*, int); int procfdprint(Chan*, int, int, char*, int);
void procflushseg(Segment*); void procflushseg(Segment*);

View file

@ -1420,12 +1420,12 @@ kproc(char *name, void (*func)(void *), void *arg)
* reasoning. * reasoning.
*/ */
void void
procctl(Proc *p) procctl(void)
{ {
char *state; char *state;
ulong s; ulong s;
switch(p->procctl) { switch(up->procctl) {
case Proc_exitbig: case Proc_exitbig:
spllo(); spllo();
pprint("Killed: Insufficient physical memory\n"); pprint("Killed: Insufficient physical memory\n");
@ -1436,26 +1436,26 @@ procctl(Proc *p)
pexit("Killed", 1); pexit("Killed", 1);
case Proc_traceme: case Proc_traceme:
if(p->nnote == 0) if(up->nnote == 0)
return; return;
/* No break */ /* No break */
case Proc_stopme: case Proc_stopme:
p->procctl = 0; up->procctl = 0;
state = p->psstate; state = up->psstate;
p->psstate = "Stopped"; up->psstate = "Stopped";
/* free a waiting debugger */ /* free a waiting debugger */
s = spllo(); s = spllo();
qlock(&p->debug); qlock(&up->debug);
if(p->pdbg != nil) { if(up->pdbg != nil) {
wakeup(&p->pdbg->sleep); wakeup(&up->pdbg->sleep);
p->pdbg = nil; up->pdbg = nil;
} }
qunlock(&p->debug); qunlock(&up->debug);
splhi(); splhi();
p->state = Stopped; up->state = Stopped;
sched(); sched();
p->psstate = state; up->psstate = state;
splx(s); splx(s);
return; return;
} }

View file

@ -706,7 +706,7 @@ notify(Ureg* ur)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;

View file

@ -110,7 +110,7 @@ notify(Ureg* ureg)
NFrame *nf; NFrame *nf;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;
@ -221,7 +221,7 @@ syscall(Ureg* ureg)
syscallfmt(scallnr, ureg->pc, (va_list)(sp+BY2WD)); syscallfmt(scallnr, ureg->pc, (va_list)(sp+BY2WD));
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
if (up->syscalltrace) if (up->syscalltrace)
free(up->syscalltrace); free(up->syscalltrace);
up->syscalltrace = nil; up->syscalltrace = nil;
@ -274,10 +274,10 @@ syscall(Ureg* ureg)
if(up->procctl == Proc_tracesyscall){ if(up->procctl == Proc_tracesyscall){
stopns = todget(nil); stopns = todget(nil);
up->procctl = Proc_stopme;
sysretfmt(scallnr, (va_list)(sp+BY2WD), ret, startns, stopns); sysretfmt(scallnr, (va_list)(sp+BY2WD), ret, startns, stopns);
s = splhi(); s = splhi();
procctl(up); up->procctl = Proc_stopme;
procctl();
splx(s); splx(s);
if(up->syscalltrace) if(up->syscalltrace)
free(up->syscalltrace); free(up->syscalltrace);

View file

@ -690,7 +690,7 @@ syscall(Ureg* ureg)
if(up->procctl == Proc_tracesyscall){ if(up->procctl == Proc_tracesyscall){
up->procctl = Proc_stopme; up->procctl = Proc_stopme;
procctl(up); procctl();
} }
scallnr = ureg->ax; scallnr = ureg->ax;
@ -746,9 +746,9 @@ syscall(Ureg* ureg)
ureg->ax = ret; ureg->ax = ret;
if(up->procctl == Proc_tracesyscall){ if(up->procctl == Proc_tracesyscall){
up->procctl = Proc_stopme;
s = splhi(); s = splhi();
procctl(up); up->procctl = Proc_stopme;
procctl();
splx(s); splx(s);
} }
@ -781,7 +781,7 @@ notify(Ureg* ureg)
Note *n; Note *n;
if(up->procctl) if(up->procctl)
procctl(up); procctl();
if(up->nnote == 0) if(up->nnote == 0)
return 0; return 0;