diff options
author | rsc <rsc> | 2007-08-10 16:37:27 +0000 |
---|---|---|
committer | rsc <rsc> | 2007-08-10 16:37:27 +0000 |
commit | b6095304b7ee2b69d2ee4a9a7265999d1a2b9675 (patch) | |
tree | 3193df85e9fc228f512010d4bddf3aeb31e9993e /proc.c | |
parent | 3bbbaca14db70c6f255139c66a62b4cd5191462c (diff) | |
download | xv6-labs-b6095304b7ee2b69d2ee4a9a7265999d1a2b9675.tar.gz xv6-labs-b6095304b7ee2b69d2ee4a9a7265999d1a2b9675.tar.bz2 xv6-labs-b6095304b7ee2b69d2ee4a9a7265999d1a2b9675.zip |
Make cp a magic symbol.
Diffstat (limited to 'proc.c')
-rw-r--r-- | proc.c | 14 |
1 files changed, 4 insertions, 10 deletions
@@ -59,7 +59,6 @@ setupsegs(struct proc *p) int growproc(int n) { - struct proc *cp = curproc[cpu()]; char *newmem, *oldmem; newmem = kalloc(cp->sz + n); @@ -183,14 +182,14 @@ scheduler(void) // before jumping back to us. setupsegs(p); - curproc[cpu()] = p; + cp = p; p->state = RUNNING; if(setjmp(&cpus[cpu()].jmpbuf) == 0) longjmp(&p->jmpbuf); // Process is done running for now. // It should have changed its p->state before coming back. - curproc[cpu()] = 0; + cp = 0; setupsegs(0); } @@ -204,7 +203,6 @@ scheduler(void) void sched(void) { - struct proc *cp = curproc[cpu()]; if(cp->state == RUNNING) panic("sched running"); @@ -213,7 +211,7 @@ sched(void) if(cpus[cpu()].nlock != 1) panic("sched locks"); - if(setjmp(&p->jmpbuf) == 0) + if(setjmp(&cp->jmpbuf) == 0) longjmp(&cpus[cpu()].jmpbuf); } @@ -221,7 +219,6 @@ sched(void) void yield(void) { - struct proc *cp = curproc[cpu()]; acquire(&proc_table_lock); cp->state = RUNNABLE; @@ -238,7 +235,7 @@ forkret(void) release(&proc_table_lock); // Jump into assembly, never to return. - forkret1(curproc[cpu()]->tf); + forkret1(cp->tf); } // Atomically release lock and sleep on chan. @@ -246,7 +243,6 @@ forkret(void) void sleep(void *chan, struct spinlock *lk) { - struct proc *cp = curproc[cpu()]; if(cp == 0) panic("sleep"); @@ -332,7 +328,6 @@ void proc_exit(void) { struct proc *p; - struct proc *cp = curproc[cpu()]; int fd; if(cp->pid == 1) @@ -376,7 +371,6 @@ int proc_wait(void) { struct proc *p; - struct proc *cp = curproc[cpu()]; int i, havekids, pid; acquire(&proc_table_lock); |