summaryrefslogtreecommitdiff
path: root/proc.c
diff options
context:
space:
mode:
authorrtm <rtm>2006-08-29 21:35:30 +0000
committerrtm <rtm>2006-08-29 21:35:30 +0000
commit18432ed5edaeb2a6ffd91f557880c277d96784c1 (patch)
tree92c408330eaf6f4d9febb70270894a5c6caa6db0 /proc.c
parent7a37578e9efcba67d82fbfee7d03cba830a41106 (diff)
downloadxv6-labs-18432ed5edaeb2a6ffd91f557880c277d96784c1.tar.gz
xv6-labs-18432ed5edaeb2a6ffd91f557880c277d96784c1.tar.bz2
xv6-labs-18432ed5edaeb2a6ffd91f557880c277d96784c1.zip
nits
Diffstat (limited to 'proc.c')
-rw-r--r--proc.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/proc.c b/proc.c
index eca5e97..401188e 100644
--- a/proc.c
+++ b/proc.c
@@ -38,8 +38,6 @@ setupsegs(struct proc *p)
c->ts.esp0 = 0xffffffff;
}
- // XXX it may be wrong to modify the current segment table!
-
c->gdt[0] = SEG_NULL;
c->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0x100000 + 64*1024, 0); // xxx
c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0);
@@ -96,7 +94,7 @@ copyproc(struct proc* p)
np->ppid = p->pid;
release(&proc_table_lock);
- // Copy process image memory.
+ // Copy user memory.
np->sz = p->sz;
np->mem = kalloc(np->sz);
if(np->mem == 0){
@@ -214,18 +212,16 @@ sched(void)
void
yield(void)
{
- struct proc *p;
+ struct proc *p = curproc[cpu()];
- if((p=curproc[cpu()]) == 0 || curproc[cpu()]->state != RUNNING)
- panic("yield");
acquire(&proc_table_lock);
p->state = RUNNABLE;
sched();
release(&proc_table_lock);
}
-// A process's very first scheduling by scheduler()
-// will longjmp here to do the first jump into user space.
+// A fork child's very first scheduling by scheduler()
+// will longjmp here. "return" to user space.
void
forkret(void)
{
@@ -371,7 +367,7 @@ proc_wait(void)
acquire(&proc_table_lock);
for(;;){
- // Scan through table looking zombie children.
+ // Scan through table looking for zombie children.
havekids = 0;
for(i = 0; i < NPROC; i++){
p = &proc[i];