diff --git a/Makefile b/Makefile index fe091db..84c5cd0 100644 --- a/Makefile +++ b/Makefile @@ -37,7 +37,7 @@ AS = $(TOOLPREFIX)gas LD = $(TOOLPREFIX)ld OBJCOPY = $(TOOLPREFIX)objcopy OBJDUMP = $(TOOLPREFIX)objdump -CFLAGS = -fno-builtin -O2 -Wall -MD -ggdb -m32 +CFLAGS = -fno-builtin -fno-strict-aliasing -O2 -Wall -MD -ggdb -m32 CFLAGS += $(shell $(CC) -fno-stack-protector -E -x c /dev/null >/dev/null 2>&1 && echo -fno-stack-protector) ASFLAGS = -m32 # FreeBSD ld wants ``elf_i386_fbsd'' diff --git a/console.c b/console.c index 9d2ef60..0613a47 100644 --- a/console.c +++ b/console.c @@ -59,7 +59,7 @@ cprintf(char *fmt, ...) if(locking) acquire(&cons.lock); - argp = (uint*)(void*)&fmt + 1; + argp = (uint*)(void*)(&fmt + 1); state = 0; for(i = 0; (c = fmt[i] & 0xff) != 0; i++){ if(c != '%'){ @@ -106,7 +106,7 @@ panic(char *s) cli(); cons.locking = 0; - cprintf("cpu%d: panic: ", cpu()); + cprintf("cpu%d: panic: ", cpu->id); cprintf(s); cprintf("\n"); getcallerpcs(&s, pcs); @@ -229,7 +229,7 @@ consoleread(struct inode *ip, char *dst, int n) acquire(&input.lock); while(n > 0){ while(input.r == input.w){ - if(cp->killed){ + if(proc->killed){ release(&input.lock); ilock(ip); return -1; diff --git a/defs.h b/defs.h index 12d04aa..bcfab55 100644 --- a/defs.h +++ b/defs.h @@ -68,7 +68,7 @@ void kinit(void); void kbdintr(void); // lapic.c -int cpu(void); +int cpunum(void); extern volatile uint* lapic; void lapiceoi(void); void lapicinit(int); diff --git a/exec.c b/exec.c index bee960e..17fab01 100644 --- a/exec.c +++ b/exec.c @@ -11,7 +11,7 @@ exec(char *path, char **argv) { char *mem, *s, *last; int i, argc, arglen, len, off; - uint sz, sp, argp, x; + uint sz, sp, argp; struct elfhdr elf; struct inode *ip; struct proghdr ph; @@ -103,14 +103,14 @@ exec(char *path, char **argv) for(last=s=path; *s; s++) if(*s == '/') last = s+1; - safestrcpy(cp->name, last, sizeof(cp->name)); + safestrcpy(proc->name, last, sizeof(proc->name)); // Commit to the new image. - kfree(cp->mem, cp->sz); - cp->mem = mem; - cp->sz = sz; - cp->tf->eip = elf.entry; // main - cp->tf->esp = sp; + kfree(proc->mem, proc->sz); + proc->mem = mem; + proc->sz = sz; + proc->tf->eip = elf.entry; // main + proc->tf->esp = sp; usegment(); return 0; diff --git a/fs.c b/fs.c index 15b0bfe..19843e6 100644 --- a/fs.c +++ b/fs.c @@ -109,7 +109,7 @@ bfree(int dev, uint b) // to inodes shared between multiple processes. // // ip->ref counts the number of pointer references to this cached -// inode; references are typically kept in struct file and in cp->cwd. +// inode; references are typically kept in struct file and in proc->cwd. // When ip->ref falls to zero, the inode is no longer cached. // It is an error to use an inode without holding a reference to it. // @@ -578,7 +578,7 @@ namex(char *path, int nameiparent, char *name) if(*path == '/') ip = iget(ROOTDEV, ROOTINO); else - ip = idup(cp->cwd); + ip = idup(proc->cwd); while((path = skipelem(path, name)) != 0){ ilock(ip); diff --git a/ide.c b/ide.c index 1f19833..c0eb80a 100644 --- a/ide.c +++ b/ide.c @@ -146,7 +146,7 @@ iderw(struct buf *b) idestart(b); // Wait for request to finish. - // Assuming will not sleep too long: ignore cp->killed. + // Assuming will not sleep too long: ignore proc->killed. while((b->flags & (B_VALID|B_DIRTY)) != B_VALID) sleep(b, &idelock); diff --git a/lapic.c b/lapic.c index 500844a..d143e80 100644 --- a/lapic.c +++ b/lapic.c @@ -92,7 +92,7 @@ lapicinit(int c) } int -cpu(void) +cpunum(void) { // Cannot call cpu when interrupts are enabled: // result not guaranteed to last long enough to be used! diff --git a/main.c b/main.c index 18e1790..57af27c 100644 --- a/main.c +++ b/main.c @@ -5,8 +5,8 @@ #include "proc.h" #include "x86.h" -__thread struct cpu *c; -__thread struct proc *cp; +__thread struct cpu *cpu; +__thread struct proc *proc; static void bootothers(void); static void mpmain(void) __attribute__((noreturn)); @@ -22,7 +22,7 @@ main(void) ioapicinit(); // another interrupt controller consoleinit(); // I/O devices & their interrupts uartinit(); // serial port - cprintf("\ncpu%d: starting xv6\n\n", cpu()); + cprintf("\ncpu%d: starting xv6\n\n", cpu->id); kinit(); // physical memory allocator pinit(); // process table @@ -45,14 +45,14 @@ main(void) static void mpmain(void) { - if(cpu() != mpbcpu()) - lapicinit(cpu()); + if(cpunum() != mpbcpu()) + lapicinit(cpunum()); ksegment(); - cprintf("cpu%d: mpmain\n", cpu()); + cprintf("cpu%d: mpmain\n", cpu->id); idtinit(); - xchg(&c->booted, 1); + xchg(&cpu->booted, 1); - cprintf("cpu%d: scheduling\n", cpu()); + cprintf("cpu%d: scheduling\n", cpu->id); scheduler(); } @@ -69,14 +69,14 @@ bootothers(void) memmove(code, _binary_bootother_start, (uint)_binary_bootother_size); for(c = cpus; c < cpus+ncpu; c++){ - if(c == cpus+cpu()) // We've started already. + if(c == cpus+cpunum()) // We've started already. continue; // Fill in %esp, %eip and start code on cpu. stack = kalloc(KSTACKSIZE); *(void**)(code-4) = stack + KSTACKSIZE; *(void**)(code-8) = mpmain; - lapicstartap(c->apicid, (uint)code); + lapicstartap(c->id, (uint)code); // Wait for cpu to get through bootstrap. while(c->booted == 0) diff --git a/mmu.h b/mmu.h index 923ffde..364d05b 100644 --- a/mmu.h +++ b/mmu.h @@ -42,15 +42,15 @@ struct segdesc { }; // Normal segment -#define SEG(type, base, lim, dpl) (struct segdesc) \ -{ ((lim) >> 12) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff, \ - type, 1, dpl, 1, (uint) (lim) >> 28, 0, 0, 1, 1, \ - (uint) (base) >> 24 } +#define SEG(type, base, lim, dpl) (struct segdesc) \ +{ ((lim) >> 12) & 0xffff, (uint)(base) & 0xffff, \ + ((uint)(base) >> 16) & 0xff, type, 1, dpl, 1, \ + (uint)(lim) >> 28, 0, 0, 1, 1, (uint)(base) >> 24 } -#define SEG16(type, base, lim, dpl) (struct segdesc) \ -{ (lim) & 0xffff, (base) & 0xffff, ((base) >> 16) & 0xff, \ - type, 1, dpl, 1, (uint) (lim) >> 16, 0, 0, 1, 0, \ - (uint) (base) >> 24 } +#define SEG16(type, base, lim, dpl) (struct segdesc) \ +{ (lim) & 0xffff, (uint)(base) & 0xffff, \ + ((uint)(base) >> 16) & 0xff, type, 1, dpl, 1, \ + (uint)(lim) >> 16, 0, 0, 1, 0, (uint)(base) >> 24 } #define DPL_USER 0x3 // User DPL diff --git a/mp.c b/mp.c index 393119d..e1edf24 100644 --- a/mp.c +++ b/mp.c @@ -103,20 +103,22 @@ mpinit(void) struct mpproc *proc; struct mpioapic *ioapic; - bcpu = &cpus[ncpu]; + bcpu = &cpus[0]; if((conf = mpconfig(&mp)) == 0) return; - ismp = 1; lapic = (uint*)conf->lapicaddr; - for(p=(uchar*)(conf+1), e=(uchar*)conf+conf->length; papicid; + if(ncpu != proc->apicid) { + cprintf("mpinit: ncpu=%d apicpid=%d", ncpu, proc->apicid); + panic("mpinit"); + } if(proc->flags & MPBOOT) bcpu = &cpus[ncpu]; + cpus[ncpu].id = ncpu; ncpu++; p += sizeof(struct mpproc); continue; @@ -135,7 +137,6 @@ mpinit(void) panic("mpinit"); } } - if(mp->imcrp){ // Bochs doesn't support IMCR, so this doesn't run on Bochs. // But it would on real hardware. diff --git a/pipe.c b/pipe.c index 29c01b2..4a1857c 100644 --- a/pipe.c +++ b/pipe.c @@ -82,7 +82,7 @@ pipewrite(struct pipe *p, char *addr, int n) acquire(&p->lock); for(i = 0; i < n; i++){ while(p->nwrite == p->nread + PIPESIZE) { //DOC: pipewrite-full - if(p->readopen == 0 || cp->killed){ + if(p->readopen == 0 || proc->killed){ release(&p->lock); return -1; } @@ -103,7 +103,7 @@ piperead(struct pipe *p, char *addr, int n) acquire(&p->lock); while(p->nread == p->nwrite && p->writeopen){ //DOC: pipe-empty - if(cp->killed){ + if(proc->killed){ release(&p->lock); return -1; } diff --git a/proc.c b/proc.c index d111008..6829b46 100644 --- a/proc.c +++ b/proc.c @@ -65,32 +65,31 @@ procdump(void) void ksegment(void) { - struct cpu *c1; + struct cpu *c; - c1 = &cpus[cpu()]; - c1->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0x100000 + 64*1024-1, 0); - c1->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0); - c1->gdt[SEG_KCPU] = SEG(STA_W, (uint)(&c1->tls+1), 0xffffffff, 0); - lgdt(c1->gdt, sizeof(c1->gdt)); + c = &cpus[cpunum()]; + c->gdt[SEG_KCODE] = SEG(STA_X|STA_R, 0, 0x100000 + 64*1024-1, 0); + c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0); + c->gdt[SEG_KCPU] = SEG(STA_W, (uint)(&c->tls+1), 0xffffffff, 0); + lgdt(c->gdt, sizeof(c->gdt)); loadfsgs(SEG_KCPU << 3); // Initialize cpu-local variables. - c = c1; - cp = 0; + cpu = c; + proc = 0; } // Set up CPU's segment descriptors and current process task state. -// If cp==0, set up for "idle" state for when scheduler() is running. void usegment(void) { pushcli(); - c->gdt[SEG_UCODE] = SEG(STA_X|STA_R, (uint)cp->mem, cp->sz-1, DPL_USER); - c->gdt[SEG_UDATA] = SEG(STA_W, (uint)cp->mem, cp->sz-1, DPL_USER); - c->gdt[SEG_TSS] = SEG16(STS_T32A, (uint)&c->ts, sizeof(c->ts)-1, 0); - c->gdt[SEG_TSS].s = 0; - c->ts.ss0 = SEG_KDATA << 3; - c->ts.esp0 = (uint)cp->kstack + KSTACKSIZE; + cpu->gdt[SEG_UCODE] = SEG(STA_X|STA_R, proc->mem, proc->sz-1, DPL_USER); + cpu->gdt[SEG_UDATA] = SEG(STA_W, proc->mem, proc->sz-1, DPL_USER); + cpu->gdt[SEG_TSS] = SEG16(STS_T32A, &cpu->ts, sizeof(cpu->ts)-1, 0); + cpu->gdt[SEG_TSS].s = 0; + cpu->ts.ss0 = SEG_KDATA << 3; + cpu->ts.esp0 = (uint)proc->kstack + KSTACKSIZE; ltr(SEG_TSS << 3); popcli(); } @@ -178,14 +177,14 @@ growproc(int n) { char *newmem; - newmem = kalloc(cp->sz + n); + newmem = kalloc(proc->sz + n); if(newmem == 0) return -1; - memmove(newmem, cp->mem, cp->sz); - memset(newmem + cp->sz, 0, n); - kfree(cp->mem, cp->sz); - cp->mem = newmem; - cp->sz += n; + memmove(newmem, proc->mem, proc->sz); + memset(newmem + proc->sz, 0, n); + kfree(proc->mem, proc->sz); + proc->mem = newmem; + proc->sz += n; usegment(); return 0; } @@ -204,24 +203,24 @@ fork(void) return -1; // Copy process state from p. - np->sz = cp->sz; + np->sz = proc->sz; if((np->mem = kalloc(np->sz)) == 0){ kfree(np->kstack, KSTACKSIZE); np->kstack = 0; np->state = UNUSED; return -1; } - memmove(np->mem, cp->mem, np->sz); - np->parent = cp; - *np->tf = *cp->tf; + memmove(np->mem, proc->mem, np->sz); + np->parent = proc; + *np->tf = *proc->tf; // Clear %eax so that fork returns 0 in the child. np->tf->eax = 0; for(i = 0; i < NOFILE; i++) - if(cp->ofile[i]) - np->ofile[i] = filedup(cp->ofile[i]); - np->cwd = idup(cp->cwd); + if(proc->ofile[i]) + np->ofile[i] = filedup(proc->ofile[i]); + np->cwd = idup(proc->cwd); pid = np->pid; np->state = RUNNABLE; @@ -255,14 +254,14 @@ scheduler(void) // Switch to chosen process. It is the process's job // to release ptable.lock and then reacquire it // before jumping back to us. - cp = p; + proc = p; usegment(); p->state = RUNNING; - swtch(&c->context, p->context); + swtch(&cpu->scheduler, proc->context); // Process is done running for now. // It should have changed its p->state before coming back. - cp = 0; + proc = 0; } release(&ptable.lock); @@ -270,7 +269,7 @@ scheduler(void) } // Enter scheduler. Must hold only ptable.lock -// and have changed cp->state. +// and have changed proc->state. void sched(void) { @@ -278,16 +277,16 @@ sched(void) if(!holding(&ptable.lock)) panic("sched ptable.lock"); - if(c->ncli != 1) + if(cpu->ncli != 1) panic("sched locks"); - if(cp->state == RUNNING) + if(proc->state == RUNNING) panic("sched running"); if(readeflags()&FL_IF) panic("sched interruptible"); - intena = c->intena; - swtch(&cp->context, c->context); - c->intena = intena; + intena = cpu->intena; + swtch(&proc->context, cpu->scheduler); + cpu->intena = intena; } // Give up the CPU for one scheduling round. @@ -295,7 +294,7 @@ void yield(void) { acquire(&ptable.lock); //DOC: yieldlock - cp->state = RUNNABLE; + proc->state = RUNNABLE; sched(); release(&ptable.lock); } @@ -312,11 +311,11 @@ forkret(void) } // Atomically release lock and sleep on chan. -// Reacquires lock when reawakened. +// Reacquires lock when awakened. void sleep(void *chan, struct spinlock *lk) { - if(cp == 0) + if(proc == 0) panic("sleep"); if(lk == 0) @@ -334,12 +333,12 @@ sleep(void *chan, struct spinlock *lk) } // Go to sleep. - cp->chan = chan; - cp->state = SLEEPING; + proc->chan = chan; + proc->state = SLEEPING; sched(); // Tidy up. - cp->chan = 0; + proc->chan = 0; // Reacquire original lock. if(lk != &ptable.lock){ //DOC: sleeplock2 @@ -371,7 +370,7 @@ wakeup(void *chan) } // Kill the process with the given pid. -// Process won't actually exit until it returns +// Process won't exit until it returns // to user space (see trap in trap.c). int kill(int pid) @@ -394,36 +393,36 @@ kill(int pid) } // Exit the current process. Does not return. -// Exited processes remain in the zombie state -// until their parent calls wait() to find out they exited. +// An exited process remains in the zombie state +// until its parent calls wait() to find out it exited. void exit(void) { struct proc *p; int fd; - if(cp == initproc) + if(proc == initproc) panic("init exiting"); // Close all open files. for(fd = 0; fd < NOFILE; fd++){ - if(cp->ofile[fd]){ - fileclose(cp->ofile[fd]); - cp->ofile[fd] = 0; + if(proc->ofile[fd]){ + fileclose(proc->ofile[fd]); + proc->ofile[fd] = 0; } } - iput(cp->cwd); - cp->cwd = 0; + iput(proc->cwd); + proc->cwd = 0; acquire(&ptable.lock); // Parent might be sleeping in wait(). - wakeup1(cp->parent); + wakeup1(proc->parent); // Pass abandoned children to init. for(p = ptable.proc; p < &ptable.proc[NPROC]; p++){ - if(p->parent == cp){ + if(p->parent == proc){ p->parent = initproc; if(p->state == ZOMBIE) wakeup1(initproc); @@ -431,7 +430,7 @@ exit(void) } // Jump into the scheduler, never to return. - cp->state = ZOMBIE; + proc->state = ZOMBIE; sched(); panic("zombie exit"); } @@ -449,7 +448,7 @@ wait(void) // Scan through table looking for zombie children. havekids = 0; for(p = ptable.proc; p < &ptable.proc[NPROC]; p++){ - if(p->parent != cp) + if(p->parent != proc) continue; havekids = 1; if(p->state == ZOMBIE){ @@ -468,13 +467,13 @@ wait(void) } // No point waiting if we don't have any children. - if(!havekids || cp->killed){ + if(!havekids || proc->killed){ release(&ptable.lock); return -1; } // Wait for children to exit. (See wakeup1 call in proc_exit.) - sleep(cp, &ptable.lock); //DOC: wait-sleep + sleep(proc, &ptable.lock); //DOC: wait-sleep } } diff --git a/proc.h b/proc.h index 2c7fade..c099dbf 100644 --- a/proc.h +++ b/proc.h @@ -31,7 +31,7 @@ struct proc { char *mem; // Start of process memory (kernel address) uint sz; // Size of process memory (bytes) char *kstack; // Bottom of kernel stack for this process - enum procstate state; // Process state + enum procstate state; // Process state volatile int pid; // Process ID struct proc *parent; // Parent process struct trapframe *tf; // Trap frame for current syscall @@ -51,8 +51,8 @@ struct proc { // Per-CPU state struct cpu { - uchar apicid; // Local APIC ID - struct context *context; // Switch here to enter scheduler + uchar id; // Local APIC ID; index into cpus[] below + struct context *scheduler; // Switch here to enter scheduler struct taskstate ts; // Used by x86 to find stack for interrupt struct segdesc gdt[NSEGS]; // x86 global descriptor table volatile uint booted; // Has the CPU started? @@ -70,5 +70,5 @@ extern int ncpu; // pointed at by gs; the name __thread derives from the use // of the same mechanism to provide per-thread storage in // multithreaded user programs. -extern __thread struct cpu *c; // This cpu. -extern __thread struct proc *cp; // Current process on this cpu. +extern __thread struct cpu *cpu; // This cpu. +extern __thread struct proc *proc; // Current process on this cpu. diff --git a/runoff.list b/runoff.list index 3bf6c87..76a6449 100644 --- a/runoff.list +++ b/runoff.list @@ -45,6 +45,8 @@ file.c sysfile.c exec.c + + # pipes pipe.c diff --git a/spinlock.c b/spinlock.c index a48e395..c3ea730 100644 --- a/spinlock.c +++ b/spinlock.c @@ -13,7 +13,7 @@ initlock(struct spinlock *lk, char *name) { lk->name = name; lk->locked = 0; - lk->cpu = 0xffffffff; + lk->cpu = 0; } // Acquire the lock. @@ -34,10 +34,7 @@ acquire(struct spinlock *lk) ; // Record info about lock acquisition for debugging. - // The +10 is only so that we can tell the difference - // between forgetting to initialize lock->cpu - // and holding a lock on cpu 0. - lk->cpu = cpu() + 10; + lk->cpu = cpu; getcallerpcs(&lk, lk->pcs); } @@ -49,7 +46,7 @@ release(struct spinlock *lk) panic("release"); lk->pcs[0] = 0; - lk->cpu = 0xffffffff; + lk->cpu = 0; // The xchg serializes, so that reads before release are // not reordered after it. The 1996 PentiumPro manual (Volume 3, @@ -87,7 +84,7 @@ getcallerpcs(void *v, uint pcs[]) int holding(struct spinlock *lock) { - return lock->locked && lock->cpu == cpu() + 10; + return lock->locked && lock->cpu == cpu; } @@ -102,8 +99,8 @@ pushcli(void) eflags = readeflags(); cli(); - if(c->ncli++ == 0) - c->intena = eflags & FL_IF; + if(cpu->ncli++ == 0) + cpu->intena = eflags & FL_IF; } void @@ -111,9 +108,9 @@ popcli(void) { if(readeflags()&FL_IF) panic("popcli - interruptible"); - if(--c->ncli < 0) + if(--cpu->ncli < 0) panic("popcli"); - if(c->ncli == 0 && c->intena) + if(cpu->ncli == 0 && cpu->intena) sti(); } diff --git a/spinlock.h b/spinlock.h index a9242b6..fdda016 100644 --- a/spinlock.h +++ b/spinlock.h @@ -1,11 +1,11 @@ // Mutual exclusion lock. struct spinlock { - uint locked; // Is the lock held? + uint locked; // Is the lock held? // For debugging: - char *name; // Name of lock. - int cpu; // The number of the cpu holding the lock. - uint pcs[10]; // The call stack (an array of program counters) - // that locked the lock. + char *name; // Name of lock. + struct cpu *cpu; // The cpu holding the lock. + uint pcs[10]; // The call stack (an array of program counters) + // that locked the lock. }; diff --git a/syscall.c b/syscall.c index 2a037d1..110a872 100644 --- a/syscall.c +++ b/syscall.c @@ -44,7 +44,7 @@ fetchstr(struct proc *p, uint addr, char **pp) int argint(int n, int *ip) { - return fetchint(cp, cp->tf->esp + 4 + 4*n, ip); + return fetchint(proc, proc->tf->esp + 4 + 4*n, ip); } // Fetch the nth word-sized system call argument as a pointer @@ -57,9 +57,9 @@ argptr(int n, char **pp, int size) if(argint(n, &i) < 0) return -1; - if((uint)i >= cp->sz || (uint)i+size >= cp->sz) + if((uint)i >= proc->sz || (uint)i+size >= proc->sz) return -1; - *pp = cp->mem + i; + *pp = proc->mem + i; return 0; } @@ -73,7 +73,7 @@ argstr(int n, char **pp) int addr; if(argint(n, &addr) < 0) return -1; - return fetchstr(cp, addr, pp); + return fetchstr(proc, addr, pp); } extern int sys_chdir(void); @@ -125,12 +125,12 @@ syscall(void) { int num; - num = cp->tf->eax; + num = proc->tf->eax; if(num >= 0 && num < NELEM(syscalls) && syscalls[num]) - cp->tf->eax = syscalls[num](); + proc->tf->eax = syscalls[num](); else { cprintf("%d %s: unknown sys call %d\n", - cp->pid, cp->name, num); - cp->tf->eax = -1; + proc->pid, proc->name, num); + proc->tf->eax = -1; } } diff --git a/sysfile.c b/sysfile.c index ae7d07c..3eec766 100644 --- a/sysfile.c +++ b/sysfile.c @@ -18,7 +18,7 @@ argfd(int n, int *pfd, struct file **pf) if(argint(n, &fd) < 0) return -1; - if(fd < 0 || fd >= NOFILE || (f=cp->ofile[fd]) == 0) + if(fd < 0 || fd >= NOFILE || (f=proc->ofile[fd]) == 0) return -1; if(pfd) *pfd = fd; @@ -35,8 +35,8 @@ fdalloc(struct file *f) int fd; for(fd = 0; fd < NOFILE; fd++){ - if(cp->ofile[fd] == 0){ - cp->ofile[fd] = f; + if(proc->ofile[fd] == 0){ + proc->ofile[fd] = f; return fd; } } @@ -89,7 +89,7 @@ sys_close(void) if(argfd(0, &fd, &f) < 0) return -1; - cp->ofile[fd] = 0; + proc->ofile[fd] = 0; fileclose(f); return 0; } @@ -338,8 +338,8 @@ sys_chdir(void) return -1; } iunlock(ip); - iput(cp->cwd); - cp->cwd = ip; + iput(proc->cwd); + proc->cwd = ip; return 0; } @@ -356,13 +356,13 @@ sys_exec(void) for(i=0;; i++){ if(i >= NELEM(argv)) return -1; - if(fetchint(cp, uargv+4*i, (int*)&uarg) < 0) + if(fetchint(proc, uargv+4*i, (int*)&uarg) < 0) return -1; if(uarg == 0){ argv[i] = 0; break; } - if(fetchstr(cp, uarg, &argv[i]) < 0) + if(fetchstr(proc, uarg, &argv[i]) < 0) return -1; } return exec(path, argv); @@ -382,7 +382,7 @@ sys_pipe(void) fd0 = -1; if((fd0 = fdalloc(rf)) < 0 || (fd1 = fdalloc(wf)) < 0){ if(fd0 >= 0) - cp->ofile[fd0] = 0; + proc->ofile[fd0] = 0; fileclose(rf); fileclose(wf); return -1; diff --git a/sysproc.c b/sysproc.c index 5ecbf2b..11770ff 100644 --- a/sysproc.c +++ b/sysproc.c @@ -37,7 +37,7 @@ sys_kill(void) int sys_getpid(void) { - return cp->pid; + return proc->pid; } int @@ -48,7 +48,7 @@ sys_sbrk(void) if(argint(0, &n) < 0) return -1; - addr = cp->sz; + addr = proc->sz; if(growproc(n) < 0) return -1; return addr; @@ -64,7 +64,7 @@ sys_sleep(void) acquire(&tickslock); ticks0 = ticks; while(ticks - ticks0 < n){ - if(cp->killed){ + if(proc->killed){ release(&tickslock); return -1; } diff --git a/toc.ftr b/toc.ftr index 466e028..6ed7fe0 100644 --- a/toc.ftr +++ b/toc.ftr @@ -6,9 +6,9 @@ on the same line as the name, the line number (or, in a few cases, numbers) where the name is defined. Successive lines in an entry list the line numbers where the name is used. For example, this entry: - swtch 2256 - 0311 1928 1962 2255 - 2256 + swtch 2208 + 0318 1928 1967 2207 + 2208 -indicates that swtch is defined on line 2256 and is mentioned on five lines +indicates that swtch is defined on line 2208 and is mentioned on five lines on sheets 03, 19, and 22. diff --git a/trap.c b/trap.c index 651a9d6..446ebaa 100644 --- a/trap.c +++ b/trap.c @@ -36,18 +36,18 @@ void trap(struct trapframe *tf) { if(tf->trapno == T_SYSCALL){ - if(cp->killed) + if(proc->killed) exit(); - cp->tf = tf; + proc->tf = tf; syscall(); - if(cp->killed) + if(proc->killed) exit(); return; } switch(tf->trapno){ case T_IRQ0 + IRQ_TIMER: - if(cpu() == 0){ + if(cpu->id == 0){ acquire(&tickslock); ticks++; wakeup(&ticks); @@ -70,35 +70,35 @@ trap(struct trapframe *tf) case T_IRQ0 + 7: case T_IRQ0 + IRQ_SPURIOUS: cprintf("cpu%d: spurious interrupt at %x:%x\n", - cpu(), tf->cs, tf->eip); + cpu->id, tf->cs, tf->eip); lapiceoi(); break; default: - if(cp == 0 || (tf->cs&3) == 0){ + if(proc == 0 || (tf->cs&3) == 0){ // In kernel, it must be our mistake. cprintf("unexpected trap %d from cpu %d eip %x\n", - tf->trapno, cpu(), tf->eip); + tf->trapno, cpu->id, tf->eip); panic("trap"); } // In user space, assume process misbehaved. cprintf("pid %d %s: trap %d err %d on cpu %d eip %x -- kill proc\n", - cp->pid, cp->name, tf->trapno, tf->err, cpu(), tf->eip); - cp->killed = 1; + proc->pid, proc->name, tf->trapno, tf->err, cpu->id, tf->eip); + proc->killed = 1; } // Force process exit if it has been killed and is in user space. // (If it is still executing in the kernel, let it keep running // until it gets to the regular system call return.) - if(cp && cp->killed && (tf->cs&3) == DPL_USER) + if(proc && proc->killed && (tf->cs&3) == DPL_USER) exit(); // Force process to give up CPU on clock tick. // If interrupts were on while locks held, would need to check nlock. - if(cp && cp->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) + if(proc && proc->state == RUNNING && tf->trapno == T_IRQ0+IRQ_TIMER) yield(); // Check if the process has been killed since we yielded - if(cp && cp->killed && (tf->cs&3) == DPL_USER) + if(proc && proc->killed && (tf->cs&3) == DPL_USER) exit(); } diff --git a/xv6.pdf b/xv6.pdf index fd4efde..bcf7b16 100644 Binary files a/xv6.pdf and b/xv6.pdf differ diff --git a/xv6.ps b/xv6.ps index 8a4868e..46268e4 100644 --- a/xv6.ps +++ b/xv6.ps @@ -1,6 +1,6 @@ %!PS-Adobe-3.0 % Produced by xpdf/pdftops 3.02 -%%Creator: mpage 2.5.6 Januari 2008 +%%Creator: mpage 2.5.5 November 2006 %%Title: (mpage) %%LanguageLevel: 2 %%DocumentSuppliedResources: (atend) @@ -413,8 +413,8 @@ end %%EndProlog %%BeginSetup xpdf begin -%%BeginResource: font YLWBJI+LucidaSans-Typewriter83 -%!FontType1-1.0: YLWBJI+LucidaSans-Typewriter83 +%%BeginResource: font APYGPQ+LucidaSans-Typewriter83 +%!FontType1-1.0: APYGPQ+LucidaSans-Typewriter83 12 dict begin /FontInfo 10 dict dup begin /Notice (Copyright (c) 1991 Bigelow & Holmes Inc. and Y&Y, Inc. (508) 371-3286. All Rights Reserved.) readonly def @@ -425,11 +425,11 @@ xpdf begin /UnderlinePosition 0 def /UnderlineThickness 0 def end readonly def -/FontName /YLWBJI+LucidaSans-Typewriter83 def +/FontName /APYGPQ+LucidaSans-Typewriter83 def /PaintType 0 def /FontType 1 def /FontMatrix [0.00083333 0 0 0.00083333 0 0] readonly def -/FontBBox [0 -205 602 783] readonly def +/FontBBox [0 -170 501 652] readonly def /StrokeWidth 0 def /Encoding 256 array 0 1 255 {1 index exch /.notdef put} for @@ -446,7 +446,7 @@ dup 41 /parenright put dup 42 /asterisk put dup 43 /plus put dup 44 /comma put -dup 45 /minus put +dup 45 /hyphen put dup 46 /period put dup 47 /slash put dup 48 /zero put @@ -716,159 +716,159 @@ FBF7023F2C0B36348145F92EF66D292BE48545C5555E670B5EFB973B29FFE465 8C8BB6F6742B14CD5F3E837A636DB41DD9C109E9771A2F8C7D7A7D12BBCF650A BB131F547A894CC90508A936EA97154E81443C052AD474592314BE31FBAB4A79 4C1992A35BAAE07F6816D542463726930BF25F75AD69AA44E90F55EC8A1AB06B -232EE37734835402F80EBD4E69C375D3E704B272CC7E2E6C812092E964D2A78D -A0CF906468847818EFD8E672B97CC730EB2436FF83DAD46F833D95A0EABC3AFE -7951E829846CB4CB8B2A64A31B86A1E8CF37AC69DC3E43914D73F3559AD19ED5 -5DE7A9BBE5372B8D7F6C06E28FE1363B1B77174F7E97497E98E495EE2F86CED7 -A22F0865DCEAC76FD32BD07072F6636C889A39B646AE1641CF717C70BE57EDB8 -24DB4F1D9C6B4453EF20711E2C33D6D51D7603D9E27999EBEE31BBBB96099D35 -1ED28E3D77B5028CB8245F9F1F085BD495985F61B6CE8CED485AB27FC2D794FC -5EECBE80BD5052927A9C7BB0E22741016FD77C05161A42984226ACE328CD7491 -878CE3F6D6134629AE55F1F8AAF5E8EC88B121D2F1850103485FFBD67C1F125B -60EBA8FAF5F8F6BCD056A2050EBC8A9BE882E51A12BA0EB984DDA5F036C74D9C -46BFE98DFD5AE9DF43DC7D2E6034F977B02D913B54B1F8CB7FA8EF3CB50FC5EC -4CED60F5F3A3424A0FBE73DFD2ACBA8BAE6EA148B2FEBE28FF278CD323C07AC9 -A2B110E495B78830DD0AB7DF1F59F2625F152434C463082FC4A8024A3EA832EF -CCDC136026BE3535624BF9388F6DAA69211BA803D28DD7F682316BE640B5DC60 -4F1C17CB2BED14D0E2D976BA9AD98D4A4BB32A5F4E0A4608F779D322AB69C0E0 -D3D946BC374AB7E58129F3C8F4139F41864A6F6B028489EECC5CF08B48B64AC8 -CDA15F607C46D0C84C338301118A1909C41EF10FDE679A3FF3BD43EAE0266C52 -55B90327121EAA3BFC28718549B69464C2A327B412B11A6A6226B4E71067F2E9 -D9AEBE4EE4197BCF55D79E09767680934D4E91F59007698152E26E47CD595996 -FA0C868118EB44D0EDFE8FDE630E0A7EAA32728840543C884A6CEC7CFED9A4FA -B438669A347B7E8F33CA026BE9D7DE3214DD7A8A9C2B721E6F8074A778294EE2 -D26BBF18385183D9BA7935BDC4920B39DB2A62377E236BB83A0937919F2EC120 -FEE0835B708352C7DED25FA895E667253C32335DED00EC040D75A28ED6B50076 -E4FC37CB853DD6A988348B0E9ECE5EBAA941647B11E99D449C4B367305B25E5F -875808BB6FA323998593B76EC7596969BA37E9CD0017B9FDBBDD1CAB935B6896 -423D6BAAC8110C443EF8BBC71F839CF4077C2B816B81940A04B07FA1A86021A2 -9D97745C980651014B2D879612549744F8F60C975B0AEA4F58DB91AEDABF590D -F3565AEE2A42881D52EAAF61A1E0258E529F7192B00005BA29E8DCABAF23CE64 -85B43F3EE8ED421A430295022518E77C7876B9398FC9228A53C5332AC36D7576 -4DEF2E02509C00A50CAEA4B2C22B4F316E85DC0F3B6B1BE11568005E8DC6B4F5 -CD4A74ED1A740B0B79873B6294B3053CC3B4588CD338F3BA38181DA87D50ED1E -8AE949573B74E2831223FC295196A0AFF9E374ADD0AB7C740AE433E22D5259CF -D42FC59A1AC0B9B807BAE8B4B5B85178F5DB5B5FA55F15E78F968DBAABEDA411 -815CB3299D75837957E10A294FB8755CF1639F25459242E9D9959549AE6FF26C -E7D0F8C9D157DE5567F74545FBBDDA11C66C308E823522CA56889D77DFF786D4 -8FA6EF10FCABB728E5EA13518E3738CC5D401253E62EA343D4C263D6C0E140EE -8069D3786BCD1282699A819FC230F4DD9AD1B7F6583456ED9BB16B27AF6C6BF5 -7533C843529343EB6AAE897F72AC8AD3AC2B86861F184DBA5954287DC6BDD479 -D609146AC26EA9CD5E6FA2D31AAB09E86BC096DC387C5113D372B0E229E59862 -D6E2C4CDF2CFD3493D615F554E3FCCB2D380B807A84285C79E824E8B01115B68 -90A7AD75B40659CF1E00C5C89DDE723311DB89F20582CC9488FE05753E4C0AF8 -F967AC02AED325221AFC0ADF26031746ED14017D1CCAA7876623B24B5574E821 -EBDB7D28D01E41207AE960B7074180257020E4DFE6E154C6CBCF4B0F76D4527D -F9AEE2796870D0CAD98E1C4C8E1812819CBD41DC23AFBB05590D99960F6A1FE4 -158C92ADE602291F10711FFDA3096574BEA51746F1912B3168BB8487C0D56AA7 -2E29F56BC39ADE17BB04FB5EDBADD1B1FDA28D94A25B6591868279CAD0EC57DC -EE6D87F27BE4CC137636F020CB67BB3FD49E81FF7A1BC743C34552A2225CAAD4 -F24DCCC5937AB1088F5971C626BEDD244187C6E502DBCF9AF99A8E94D70BFF34 -8DF971DD3D588095607654A4C68E294765B0ABF60CAF606C5820C15ABC981948 -0DEAF345D9512BED22C680297524FEF661F7631F411F49F7CBB1438CD638BAC9 -3DFD95364CF6B5A86866B71DB469BCBE84F4B18C58B83F3DB42F6DE0CDBE79AD -51B67782C26D2AA1EEDE9298B06B3DB501D69EA70ED1BBD458D56304D4977A90 -537C09A1315CDD3F05CD533C25BEBFA2C3A24120438259A1E6C852696D32B546 -0E5FC8730038DE7261DC9B68BF3B52420FE09212AC0F403992D3476F6B7EF59D -CD643F03DF57DEF1CEF074F9E2591753EE143ED8F8F0B2E42C7000855F7F06CA -8AC95D2985028298134EF9ED6035D9E300F78637A0C905000C6E1B7F0F1F681B -6B5EA55E69C078DF37BB9819B6E1807D241D167D6C2086D4367879E552416576 -6DB68C501F1C9DFFA32640B8DCA7CD767C3BD1703532428B7400BC8C38D5BC4D -7EF7F908220CCB7C67255AF40B184059175275B8F0FE08D28D82B32B99865863 -D2866C688C927FA70B00878DD16F529DB491D1D6456434BA54883D2EA1C81931 -7C4D71C8A29DC490307C2D9FC709BDAA0B1C07D096AB99B37ED474E510922002 -C0A1EDC4D0F790918E36929A23C2D47AE922520F844122220F0A25743E91CA91 -33933D5041151AA61D1ECCCA11CDA91861AB793A171B7F4F76D913626DCEC3A2 -A1F4F9D8B83D80B0BA340D7DEE1BDCB03291724468B4B6D2037791DC0ADD2090 -0A68AA2EFA4BA42C4F4C6E5FDA61981B12964259ACD12C6FD61B0FB34A5B1A53 -166CA665B5E11D1DC3F0C256B2A59C1E968825144DD00E6A635C26C8EFDC1C57 -D8A6A0D7EA6D94159DC424CDF940B98969F61A5B8D06FF6C0B5369FF0219DEEB -BB4AB771858F5201D7E1E1F3C2B029A6D4914718212CF04F9F9A8B5D64A39C50 -CFEB0683AA4B13EC31CFE436B07E3942DFCE3FF9D79A403B2B1CA5500D87302F -3F7320A9E3E584FA56DBB5E1BFAE1A5A8E46874EDD30F815670A8932B3A713F8 -750922840D0384FEBD43826CA3C4A907333E672DF7A83E56209BA1B29A792A0D -8FD3802E1865A520CD01412513CD3DB48B520BF6EF96619DB2EBDAB56E0C747D -54028E8D82838CA10605A47AA07512802E28E9474CAD997ED0F5073568F8FECB -52FEB3794DAED679953A1E09066783C3DB54BFB90615583E298E2BE6C789FE07 -6DD80318DD40D3EDD5D63CFD5E945380760572E5D05BA60538CFA1C824E67B62 -2A52ED82DEF28FD2C15BA114629652C549C371C6CDD4AC9744DEE55CFACC79D6 -FB4AEEDEF908689F10FB78BBF26AFF4C30F016D6EE7F12D93A99C5ABE16B5BFB -ED7E99BD8824CCE90EE8D79060FA838002DC4BDE312EB540805055294F581E02 -17EA11C2FEFFBF924842805C007060C5F8BDAA97986ADC70A1C2C767B8F8AA3D -513DE9316C366CC20FCC147DC28A9A4431378995456FEA61BCBAC8F4814EF566 -A09C20A97B44DC85FF402F6356FF4D41FBBC4B9E281F2558BC876E880F1D6E00 -EEBFE74389BD8DDA4DEB3EBABC1134B3A33084AE278F5A0958A94A9885184021 -C1687D37A0EE6D609E1C6F599237AFE90C0B662A26F7B77A49FC006669D147B2 -3E15E8168AEC8FC613A8AA4905C08049556B324EE55DABFDFAD2750C087752EE -4CEA95F9037DCFED7E65181A40FFC34E578235D6BFD6CFBBA7DB07C42FCF5A70 -4CC0AB4267076DF7C26FFF943856C47C181FECE3C71242FF486E90AAD89838B2 -5FD811C488BE6F554697C09F7A3689C4B70D34F659B6E83B3CFC4FC310C00D22 -E07ECCC0C2313AF5E00E0F905B943D241BA1804D89AA2359A1B69D765F99A475 -78B435E7E97542347D6088CB2E254E2B504D7A238D4E943E5656E0D07AA42D96 -B2AAAA498859DAA8FDDD2E466C43A86CA892EEA228DCFB9620E8B38C6DBC9090 -0C12A9B74005570FE9B3BABCC90E937F08783CA81177ABDFD50B26C7546B760D -70D725D0E6E84A4076DE94679D13FAA5E0A59048D9445C6E5C880E89BB629811 -7995A190396E414A191AE14796E0DD37E5F55DF3EEA519357E55126C0AB57F65 -AC1541A44701986EFC037029846B0908BCF35E50C8CE64150D39F6F9E766B244 -068625F647C3A821828623458BF1CC290D59409DDBC7F14497F3234119725A34 -E338EE9AF8F1D6367EAC19CFF7D0C9FF9D26222F3680DF6E5FE11683B099152D -1CE55AC55E8A5C66F9616B09835451595DA23F0B5685D56DCAAE57A91FEDBBD3 -32A021048E7B5F27B33E01C296E8376EACC74D544777205361165F04B9AC80E8 -A3842D72E54A2E3DCCE846DF8852B22F3F6D635E91EE25FF4BE11FC732BCEC3F -E512C9CEA9827CC632964ECFB6159E736D5F483D58F1380A6D6B5B69DA06957C -7C6050F7E9FCED0676749563321CC8B024059230018A038765C1C42E665B168C -850A919D5BFD33D25DE9097F073D0D20B41352D6A173DA87D3F14F622E856ECC -951CC137475D537A04BF0573DF6E7A4BE31B6936A22AB1CA29408EBAF1818333 -62D68005DD3C96BA2514CC0D7FF7CE7DC70E46E37FC4342999CBF2DBB3AFF11E -31BD273D3AD3C6CB2FEA548A412505B6B57C3A01D86DE68B4A6B38D8FA9D7257 -6AA9BB5F6928F5FC2170A92C029F270BFF0465E163FA9567A01B0343A6A26DCD -C572A7CAB93627D42053EC752209F724F249974C10DB889E56FE84CAD479758A -1877543B4BDA880D90A0D39CC1D681C87F3E2350EF7C088226E680E59DAC2C7C -70C67AD1584221C01444C6986A7C5D17C8FA8B941151957335DF4F3487A7C935 -E657A16D9C7FCBAF80FA2D18950E9B8EEF27B19F3CA257E5E45DC20EB505A5C5 -47904A5A11BFCDE407DC80B8E7465856F771945A4C131C1891CAED172711E435 -B2D4CD03AEEBFA6CD512DB3410F1762CAF16211CF33A63DEAEC9C5BC55EC0360 -C1B06C072EA39AAC802501E1A30BF2CFC7472A24A59FBA0215A2310101E3D950 -1EA78E3A2CA04F75D08CFA838A5A9C793EDECEBEBAF36F8B5ECBE66B4E47DFBD -7632C94EFE94689135735A05E1009EDA2C4EEAAD08673A98EEC613F9EE587150 -81AF6FC123FF11CDDCC075897DEB65DB03A2DE5615D456B4222864285C2046DD -3A06A64BDC38F1802E9AB386A1DCA85F69F82FBDC30854BD69748E1C948CC905 -DDF341CBBCD21E17F15028EDE13BE832A95DFD19E8B006B363B2C8F889395FBA -4E4ED0D676243ED8C5F26A94A56B6500668BA9D4DB4FC121F28ABF71A3D392D5 -CC5D51845ADA136BAEF21E3E7E02174E93C01816261A5410F874362DE48E4B32 -F74BB7C970D652694253CD5DDC1A060A0D29E555C2A3F29314D298834EDF8C2E -CE1035AF37E649349AE8BC6C1B5D0B19DCAD2603D66FE3AB30CBC811B66B9E56 -04B6FBB323D3DA968630C2662E3B137A0B693E684ED42BE64BBEB455349ABE08 -B3B7556E0D90E0ADE7A1FD0F0D895CF57CB54F4598D15DD9C2F75BF9FD6433D6 -FB2E4C9393E3D8CF42FEC2C252F0CDC7123187C8F66122E0AC10728BF126BE2B -21B195C31A4B6B0A3EBE4036253D256890A1FA7FEB8BDDF8F0BC9B37FF609D45 -5F8F1BA00182478950C72F5DA14772494BD08E238BB4B628F4493DFF40DEF43E -5CC7F61FBA102574E20FEEFB1850889888CCEC3FFF0FD03A6E4FEC28C79C91CA -C8E0B9EEB8DA1A9C39B58409E809BBD1F6B626072BA54AA0642F01E562BE8231 -94958F8D428C1719C8C6163172BCE32D608E93492F54E40CFFCC3C7582F62E54 -43D580BC1AB42DC235278A2E6F9E8E281D2AEABC2888E879F733B1AC8D466E40 -8CED3A3C8D73E07877EC615DE2FBC6BC2B332EA52AF1E509F93CA26EF5CAD8D4 -359C1CAA4A9270115F0BCCE07C86B0CFA6F55FE621B5949051149D8FF0583584 -ABD5008F5180BE8422A81DAF2D7226FCD1CA3BAE922669229680935F87D0F7B4 -E501C33178090AD11471DBC0B960760315DB6B312147C3157B20741AED4106C6 -A1642AAE9990CEE3E3BB497C0D23E647CA537AA40E9C5C880883E50A48346CCA -B032C7B217C4709CF7C26FFF94337E9A749558838CFD111E7B2E9FA34907BC32 -038B356AA9388B9641D5DEB451F7E957A2CD4A3F1230CAECF936CE32349D0844 -EF57831E02A4BE13B27F987F975B4952E2E5CC5FAAFC2C623CFDDD60FFEC32B4 -9E57654FA5B0F31B8728B8115A7702115D7B0BF53737D571F991B20FE46CA502 -B9323E2DD21F2389015052FB877A4043247B705E2FA82BEED78F7B52E14F50C2 -4254828740FED6168308368917434BF7DA33839246111EAD470C8ECB2C9E7501 -CAD9F27832AA2004697C5593C6DAF3A359EDD270F843360BA5C670D084B3E5DB -39CDD47C32D657B2AF8214CCEA7E6DF470DC95A394D66CCDB446F007DC234BAD -71164B048DCAA6C3E1FEA76177709E661008771D292F9A102D0B0848A7870AC1 -95D65AC6B097EDE74A2487D1A55609530E113F79DD25FEAB12A9789F6789FB5F -DBA76F13498A1B07E8209BEA2AF45682794A413C6A60096B84E7F3CBE8E13E18 -29A55F67CE95CB76E44FECCEC65A0D801EAB734480209EF74FA4833CF53EB82F -93D2C94C4BA8AFE4D52890BAFB5435EEC131BE98FB9149E0D9915E18BB8D74A3 -6F7EAEF4392F8546D9630016379AFE4287CA5FBBB48639C114E01D32C4967A53 -CE8F219B1EB0419128EEF2611866A956F9884A5C8334856848443AD43BD5A2DB -8309558159385D73B973F1094972A03E81B830420832ECAC15CC3DB3200BEC0D -7AF3A9FB61FCBCAB6B8C5F20065BC6F0 +232EE37734835402F80EBD4E69C375D3E704A38A6DCC903119A7E23217250899 +FA9F1F37773894E24C7054D4B736742FBB054CA11BA2D3F4C3BADC74A84C904D +6A83ED9B0BEA6694C35AE8CCB0D36B92DDFC9962D2C110D99C53CD82B57C855A +B7DB749998FF87F09C6DE41CC2302131B0876A2559E4C24FB292BB477839BD18 +05028C9D217AEFF5FA65147FE25C45E9AB9503C0C90DE3F6FB98284B41192882 +21572BD89F5E970D9ECFAC501145CD0FD0ABC38DA574C0E634B14149F3A80995 +2F6CEBA40F796D7765E629C7020A5F2E5F50ECA761629A52507344F027284E93 +97F9361949AE79D2F7D911AB1F4BA65168A682D09BBDB02979B71223175EC6DD +3FFD963B5D061B59181FCFA92434BA11A578CB8442AFCBA65580C69849A6EADD +8F1D2613362869F8E16D26770C001C1F55B93EA982B6C5CAC6BA6E92A95C03B3 +A8276A01E6FBDCADF623A538CEA34178B6690DF25563B350C18B816A724E2F7D +EB84ECDABF1C2D8AA75437368AA7041E02BFA94446AFD657B423AC4DAD19B2A1 +BDEE4F3A4BBCCE651986FC707BD35922488EC1F354A05EF6497B51277E75FCEE +92177CF4CEC6FCDAF8F899B9B9A71719493D537B7DC78B384487F6D4B898D2EF +99B796B4BED49575CBE63FE809B385FC6CC84AF3AA9F87121CF7D8BEA3C6E986 +A0781F7C920943F43C3F01981C13688F7904CA925A57C527149975371BE9AB45 +FBDB098AA2C62BDA5F44BB282D022DD64CB3FE1568AB770058E372A132456331 +71FDE3E5EA752F47931DD50BD2DC54E52C69EB63E21095DC53C056CBCC05A162 +B4950FFD705C1CE37BFB3E7426260469A80204CE9B68D1C127433ACE8C3FDB27 +FD6F9C6AD71662DA823259BC1B073F829750CB8C2A50E69799F1D58DA0CCBAA8 +EC92AF28104003E13AAEEA0BEEE540696613808D91319FB12E7812FBB2CAAEB3 +A2D3EC0E6D78E720176FD3938D4C62AE1678681E98B6F82F2772356DA8FB9D82 +EB298D383F7D0C3BE5D219DD0AC897B8A2E705F15B2F9AC9306BF39AB6F50BB1 +DADA17AB813BA25513DCA43E685D04D0B44CFC212366D3A1AFC58B4B18D3D4A9 +ECD8D864890F8C03A37E4BEA20866DEF9877065A2C3F666C2862922DC4A021AD +A75DB963BF97B8AFF3D63B89707C86B4E0E5B93BFCA9407021848444ED229F16 +0B2E8889AE97BD4AC2194546FF3555245087A98FEE7B2A38401C8BE18E9D7224 +5437ED0E4E2A8876E0C8633323A2E9A7CD8C704C858FD25311262EFC6534D7A8 +9E0857B5C6282E98938B5D8E216923B0A0A75D84B1807CDFEF19D33A15C47D2A +6DF303E5A179C1752489A9A5FBAF7F00077047551702CD0C08C30E79BAB4BBCA +10AD85AA96D1EC193E05C68B9D46E44B844CA8216A9F535B737606703F07EDEE +B3825E3473244C3F2C5EA13AFD2927C769E48B6A90B41A77D57ED5D1DE504461 +C6D373489B465F0F70F107EE46D5DCABDA14BEFDAA37CE0AF78D5F416AA1456E +3DA7E189860395CFF6236CEDBBC2E0189D3BB92FC5C958A63A641CBD415D2EAF +BC219AD89CA3A17DD335495FF452FBAF85BE0293D9E5E9927196192FE3CD25C2 +C461C62B001A3723A322AF77250B8AB1D83C16858E3FC30EFE7E338663AD9F84 +EC41DCC80171C45D187E8D5C2E7E431E899C4E0644E66958EBADA5F0F6E64D21 +B2539F89570D2C1F17CDBCF5F6CB16A9787C9A4834B2F2A516D909A141F2C614 +B4B7698315DEA7CF292A85578A127BD7E0CFC5D92C57B7EBB10111BA4165E32D +162A740EE2D921BD28B8A7300B198297A58C947919A8A64722764632D9390804 +EB5CB88B984E29A580AB26B544965E3143BCDD2EF47C2738364B3F896E76C1A9 +010B624DCB2EF607984D7657ACB93E87A4E5A280745975644ED00326C559570F +C5CF308F470074A121BDCF2CFB73E0B2A872EDDD0CE746B9DA409DEFC535EB20 +5EB9D59C076EBF6F94D31EBA64ED9BF53B69ECEF4AC19B4F9CFC0BC991581179 +94C3190C95E4F261468E0AB12BFC9C20E7B1C522959E7E761F6C5229EBCF3A86 +FCE964B1371DA44FD114FBF539608B82C6B40AF191818F8B9270530914021CCF +A9F233CF6431C7D23AED734BA58A3C5959E5A2F14FCBAEED5866BB194D8CE6CA +39ABC81C4961FAF1F6C8D66998A2861F0C42B5F95D21DE751130274176C6D363 +E832D3F711916611F6F409AA859A323183B4444EA38E79062F77F30C723A3FD9 +EC9D4D27C8C25555769B2226B66601F7DA8A94A02463E541D8352FCBDDBF1297 +BB482169E9C831640C7BA586DCF00125BC2A7448C384BA5EA898F91152FE0848 +70C084B63689E76B656231CE960D4CA628E1C070AD9A1CE3467DC83453D92E34 +2123676178D378B7D234A7280E83DBA97551467C9457BABEE8835FBB594D03F3 +0C7FF2FA6E308FE763C7C894259FA5D3C66814F6A4C3EFA30A7A4C3E081373EE +3C2EA9F831EA2A7BDDB473401CEFE0DF0EA110ECB4DDC952C05F74461BD3D9C6 +80E3BB0E6E1B6D0AAFBD5A524A3732940CB4854CDEFEC572FEEE79120D436E84 +4186D94ED3B9854450097DB09C514BFBF558BCE425003F6CEF7A5417C8960126 +BC49E6FE3CE87834CC68D540D8E12F502BD63972C802D9715ED49C7B52DE87DA +AA4710B679718F9A71C0A39085D972BE32596C509D27CE809F02960FA7560D66 +678BA0AF4D0A19CA679033B1217D852DB0B6768A6821C72321FA7194E5A62D99 +AF7AE2958947C9965A1838DB932444D886247EE953A1C8A7ED765BF1DE6CD137 +7C749F346437471DD0F0DCCE249D368608BDE06D1FBC1C0236AE40135687A8EC +6D084CDC52FB99D2963FCEF40DC6E0D23AD138F38813DB0AE9B7F731312B7831 +D84A6BA2AA09637C743F686AC572B97D8D72F825E522AD2E3B943476F664A8E9 +63313AE3DAF935EC8CA6B4FC9D396270D24D5705AD16564CBF21A9AA234B6C01 +C5B6C8CDAFF4E3462B74369FB0A63B1EB1DF9696EC7860B3F6E573E34D5E953A +0B25044729B9B19854EF5A3CABAA30D2A62F60588D7171A7732171EAF9EED5D5 +B9DB771F1AEEA1F8F658BBF35E31D88FE3511B9860154DC2A96C1C3FB233A716 +516F36767EBF1D6FECE4DDE153B4E538004E0B66FF827D52A72DDF4699D4EEED +960F974C6ED54F50D9608DEA1785164C73D0B25CA313B3630171177B8EA6A2DC +3D5704DF7A0CD5098BEE074480E862F18D47FBE0F6964125DF29C23D087D0F9A +25292369A7335F33210A4660F425EFD0FD0C3F6534A12ED913697ED4444FC93B +51CF9FFFC2AB8256303E690A71E9EA8B7766E282847681497B52C297F25E60A3 +79B1D70FE503F87E9EBB5FCF1FED71321A2D21B3BFAC5A17F66A2A5CC5BD6D0F +E968A013C33EFC735A161F340F56237CAC1B347F88A4D62249023F6763111497 +4A6F068F4A49B55791D039667EC08BEEECF3E919C4F29FAE5DECE224856FD035 +999318F9B69125586FE6972508505DDE0F129687AB056E5322C1D967FE606151 +71DC9FF6098CE976C0F7BEBD4A5B16E18C1E085894C43C4A1E311B1FA34B75AC +1F444AD9912718855B50CA02AE362D66643EBFF19EA6BE2C8EA4D4339D59C52B +BCBAC2375DF2219D9D56BAA08C4577FB159143886605FC91A09885F9C2E44064 +943BC2B9040E0031BC0744B89782BCDB129A4DDAE418A03FE6EE8705089CD7B3 +C87B18939CCE4361A4C1FFD24072E620D121EBEE435489E8907DF63FF2BD505B +FF50E33DD3B3258F32D96823BCFE4519C7B77C20D2AFE9D00036EFFCE8E586E9 +667891E4D513C3BDC4615AE8369FADF56829F68139416A40C65D736601E47B0C +793C8A7493FC11C9461685966FC974DE827E81ABBC881EAE43712C3DBA1AE5CE +BB1E7FDB696C3221681D75DD419972E6AAA0AF20F8B3826AACBD3B808BEBA198 +D90A5B27CB07C2F753AF493D1863BE77EC132A394F3DAF1F9E3DD07B6BC23765 +6A392A8611D16434BDA4CE27DE4BAA3DBF95BAA05C873CA0A36177F502F87E94 +75662F5368EC605F1E00A98F6B50FB7F522A26C1C9E73D025C3A6428DB735344 +64F704E272CC268798D13D0D93B619E550F1B80562A440E7F2462D9907AEC25F +F3A6E0A4D95B253E3144404DE918C1C40D79B578D8A2C85F943DDC9DB69727CB +957ACF72D67F50D228219C582C434B24C6E3AA6BF2A8194A85D775086929A82B +F0528989A483CE5C7723A2570529C1BDF292FDD988F59D80187A25C47501C2E3 +84C702FE7F4D6C4C6B41F778367897EC91D5A4F8A3FCF300FFA584127C3BC171 +730BCCBB51AD8A85A3810F846797476EA45C4E7A250215A79CD055BBF8B97BAE +DBEB87DA404BAE058875D793264C15010DDC6F6DBD9C45BC5307F6DB4AF867DF +236EBE6CECAA1CFD3CE15FE3EB91ACBDF5433AD03CB971E78823FABF2B3C3BA7 +8ADA62C7B4FB2E65F0D7D4411634645764E198861B589F8529DC2CB6B180889A +E35B5B1BAC735866A4C49A386C1A98A59343060D7995E7C86C3380E65670E94E +4B7C2D2FB94EBDE96773547CFA5053B3B31188BAA0B57A12A2FF6EE7945D5A17 +ED1FE90E30859D3E14EA58A9FD90D5514A115EF7B11C94ADEC8608F60F06D2B0 +46DC9861614ADBD91032A92543BDDF359DA8073FD08E64F9B4D0A7B1DFD6F52A +168E09CD5E2BF9EDA46E77AEA46C25BAC9E0D8220E30D92892426B964E894015 +2F0240EFB5D931EB16EE2423B659D360433A7DCEBA96C031FDA734F0C6E89ED3 +B00946763285821FD3A63D5E0153A4B02E5CC633F6979385C908E73DB718E004 +92105D0F71028D2CD5C0A3E3F06614716B2D48B4A51E9E9D77B058F38B0F7855 +EEC100CF05536D9AC7433A3BF58D4B068E923D4B471B9A0FDA85EECEC3ED9158 +389A10E55F4DE52D2EB5B3CB5D9CC1C24B51F1A19C2F629122B05C03FC8B2A57 +18B06EBDE41C4871BFB1E6A24A85535DF5E088B94EAD6222E07DE110F1B51DB0 +8C1586F7C9711317DF20336D6DE4A2C04A4A1B121F09A2C340B22CA9F26AE7A8 +616DDE1A2D87F9729F82E20BA099D1EAC7F726CCA9D5FA93092DC3886D2529A9 +41B75B58FF112B5F97BD4301627CB3DEE6DEFC44E0392874FB86C51CE77C1969 +2A66E623BF9A64265EF5A68C3B86EFEFEB04C920D16D9F9E037E9FCC621726D5 +69449BBCB0330CAC67F0597509316FE77395FD3ACA40FFDE9CF1976DDF047674 +93683ADF1B1EF9977B03DBF04B2D213C5A67FBA1F99F752C217D672117B9087A +6A5DDA70150BF9988514E786D28336B903B3C96A746E911D7155E49470DC2F37 +41D47249C723DC2E1846A35A67820DEFCCC9462B67B26201EA4D5625CE2DE401 +D186126A214ADCB090CA7D8DAED3A1D8FABCDD8DFE1F0837CCC087A486622C2C +281CC8260608D0896A49019EDF7FDF57D5CE0279E7F491E8370B4954779B4B53 +C6D7B6E2F349283AA0467D9BB06FDDD321BA05F988C5518DA8E48D66D24136BC +271123C27D43408927F0DCBC5DB8D8CAD7E61C46BEEE70F137B087A6899EB040 +145D9AD63C840BC5D030ACDBE4B87A23AF641A64E796336FB31B00B0674AA9CD +B19BDFF46C93DDBA27ED0D8BBF5E6DD642736D594B616C3B26A59C463FB4253A +136DDD4592D6223940C98E4BCE603CCD05D30B3A26B1A4B2C8BEEC799E61907B +855B2CE81549AF2EA116F9DD3A35446CD662EFF77C49DB0BF7B3BBF496D750B6 +E2025B2F041092F322ECF8CD037C5829568CCDE9823BF7F37756DFB7F6D05CC0 +E5B6B6F95A839DF60F9CA9E03AE4E9944ECC2957141606326763789EE4B4D7FC +154A7C3C509362E80D9D2E84967E60B2A14940B08805625EA09988A68BE7AACB +6770F8C05B472FF649514CB7DADE001B7B85E5A849ABC018F34E59292A527A99 +1E2734A3D8D3EF87CDD665814A7CFCB663ACEE51E9E61BF232FFD8F917A5AE70 +57ACF846460F772202A834BE3DB233E117DCFC0A039E04AE30EB0AA3C773CE6A +9EA4E2686283660E068FF095BC780A6F1D4857D7C0789D599798AAF9C71AB082 +6555100BC97C54577AD82D5E063017207922DBE0BF744D51E31A921B27954B60 +95B3695098C47CD0996438CC0F89198ABCA22FEEC261BD0C0B617DC02F553837 +4DD1EC502C935A8DDAF7C73791D7DA2764AA3863D43A5E3EF39AB099CA249A7C +D4CAE2FB83851EFE6863256E432D5F0DC898029C3A069C6EFB8C342B8507182A +44292E6F4E75397621A3DF4F94557AA746C9049B5B86ECE49BFA031F30B3D505 +D42215F78BD2D50E86142B28C2B06A2FD427E5F1C569E58587BB3B531AD4E8AD +10065410A4B3BFEF97070CC87FCAB12C9F0FCB5F1716E00975B2EBE522586123 +A7C33B060079D22EF11DD55A719819AF9CA90B587A11C56F8F9A846BCDB3C930 +AD1E3A490DA0643CB34758E109DD6C91B22C2AD4859101DB53723D3C9C48CC41 +7FF3D9FE1FE57922335D28EC50F0CEE33DCF55A87A0FD383EBDC3D33C8FFFBC7 +05D658873D655635A841C5D8A52294A060DA01A586F63E3EACF1AC7941CDAA7A +1A4DDF5DC5018186B40713A69B759150B3BC3561CA963516783A7BF2D182CFD6 +2529AC360ABDD6863B33C84B3DE527E64E5F1C0B72BAF23B1FF7276773FC2951 +523ACE4D620FC9A1FC5966ABC74D421DAA156B9955B579C781AD87124687BBA2 +DD1116F80D7F6980E10CC387AFF901B19F6CD0667C82932D9123287301A5FD9E +660D5F9E5ABB4A42936BC6DDAE92198CF969FB3D397BA6B1DFE1233752272225 +2B8F0BF0765ED694D50D0BE4F8C09F85713E37E85A3BFD559DAF869E3B6ECF7E +080D71A25B2FF6E38D966C75233D12E3C15A8B4002A985DE92DACB4AD2F6D9C9 +69B09914EC2719A160CDF0BD16E56898B0BD07C1B7747D1C6E591FD66DE00A64 +C5ACDE5D0488D9AAC392DAD684B5F681A554CD6EA6159B6807D861E2FAB69482 +DDB29C8D046AD8A6707BC19DD9494B8E44 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 @@ -879,13 +879,13 @@ CE8F219B1EB0419128EEF2611866A956F9884A5C8334856848443AD43BD5A2DB 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource -/F8_0 /YLWBJI+LucidaSans-Typewriter83 1 1 +/F8_0 /APYGPQ+LucidaSans-Typewriter83 1 1 [ /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef /space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright - /parenleft/parenright/asterisk/plus/comma/minus/period/slash + /parenleft/parenright/asterisk/plus/comma/hyphen/period/slash /zero/one/two/three/four/five/six/seven /eight/nine/colon/semicolon/less/equal/greater/question /at/A/B/C/D/E/F/G @@ -955,7 +955,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 README Page 1) 144.161 Tj +(Aug 30 21:46 2009 README Page 1) 144.161 Tj 0 -28.4801 Td (xv6 is a re-implementation of Dennis Ritchie's and Ken Thompson\ 's Unix) 305.796 Tj @@ -1059,7 +1059,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 table of contents Page 1) 192.2146 Tj +(Aug 30 21:46 2009 table of contents Page 1) 192.2146 Tj 0 -28.4801 Td (The numbers to the left of the file names in the table are shee\ t numbers.) 318.9016 Tj @@ -1074,148 +1074,148 @@ t numbers.) 318.9016 Tj d sheet numbers.) 345.1126 Tj 0 -85.4403 Td (# basic headers) 65.5277 Tj -209.536 -85.4403 Td -(51 pipe.c) 39.3166 Tj +-4514.2 TJm +(# system calls) 61.1592 Tj +-5015.87 TJm +(# pipes) 30.5796 Tj 0 -94.9336 Td (01 types.h) 43.6851 Tj -7022.54 TJm -(# system calls) 61.1592 Tj +(24 traps.h) 43.6851 Tj +-7022.54 TJm +(51 pipe.c) 39.3166 Tj 0 -104.427 Td (01 param.h) 43.6851 Tj -7022.54 TJm -(24 traps.h) 43.6851 Tj --7022.54 TJm -(# string operations) 83.0018 Tj +(24 vectors.pl) 56.7907 Tj 0 -113.9204 Td (02 defs.h) 39.3166 Tj -7524.2 TJm -(24 vectors.pl) 56.7907 Tj --5517.54 TJm -(53 string.c) 48.0537 Tj +(25 trapasm.S) 52.4222 Tj +-6019.2 TJm +(# string operations) 83.0018 Tj 0 -123.4137 Td (04 x86.h) 34.9481 Tj -8025.87 TJm -(25 trapasm.S) 52.4222 Tj +(25 trap.c) 39.3166 Tj +-7524.2 TJm +(53 string.c) 48.0537 Tj 0 -132.9071 Td (06 asm.h) 34.9481 Tj -8025.87 TJm -(25 trap.c) 39.3166 Tj --7524.2 TJm -(# low-level hardware) 87.3703 Tj +(27 syscall.h) 52.4222 Tj 0 -142.4004 Td (06 mmu.h) 34.9481 Tj -8025.87 TJm -(27 syscall.h) 52.4222 Tj +(27 syscall.c) 52.4222 Tj -6019.2 TJm -(54 mp.h) 30.5796 Tj +(# low-level hardware) 87.3703 Tj 0 -151.8938 Td (08 elf.h) 34.9481 Tj -8025.87 TJm -(27 syscall.c) 52.4222 Tj --6019.2 TJm -(55 mp.c) 30.5796 Tj -104.768 -161.3872 Td (29 sysproc.c) 52.4222 Tj -6019.2 TJm -(56 lapic.c) 43.6851 Tj +(54 mp.h) 30.5796 Tj +209.536 -161.3872 Td +(55 mp.c) 30.5796 Tj 0 -170.8805 Td (# startup) 39.3166 Tj -209.536 -170.8805 Td -(58 ioapic.c) 48.0537 Tj +-7524.2 TJm +(# file system) 56.7907 Tj +-5517.54 TJm +(56 lapic.c) 43.6851 Tj 0 -180.3739 Td (09 bootasm.S) 52.4222 Tj -6019.2 TJm -(# file system) 56.7907 Tj --5517.54 TJm -(59 picirq.c) 48.0537 Tj +(30 buf.h) 34.9481 Tj +-8025.87 TJm +(58 ioapic.c) 48.0537 Tj 0 -189.8672 Td (10 bootother.S) 61.1592 Tj -5015.87 TJm -(30 buf.h) 34.9481 Tj --8025.87 TJm -(61 kbd.h) 34.9481 Tj +(30 fcntl.h) 43.6851 Tj +-7022.54 TJm +(59 picirq.c) 48.0537 Tj 0 -199.3606 Td (11 bootmain.c) 56.7907 Tj -5517.54 TJm -(30 fcntl.h) 43.6851 Tj --7022.54 TJm -(62 kbd.c) 34.9481 Tj +(31 stat.h) 39.3166 Tj +-7524.2 TJm +(61 kbd.h) 34.9481 Tj 0 -208.854 Td (12 main.c) 39.3166 Tj -7524.2 TJm -(31 stat.h) 39.3166 Tj --7524.2 TJm -(63 console.c) 52.4222 Tj -104.768 -218.3473 Td (31 fs.h) 30.5796 Tj -8527.54 TJm -(66 timer.c) 43.6851 Tj +(62 kbd.c) 34.9481 Tj +104.768 -218.3473 Td +(32 file.h) 39.3166 Tj +-7524.2 TJm +(63 console.c) 52.4222 Tj 0 -227.8407 Td (# locks) 30.5796 Tj -8527.54 TJm -(32 file.h) 39.3166 Tj +(33 ide.c) 34.9481 Tj +-8025.87 TJm +(66 timer.c) 43.6851 Tj 0 -237.334 Td (13 spinlock.h) 56.7907 Tj -5517.54 TJm -(33 ide.c) 34.9481 Tj --8025.87 TJm -(# user-level) 52.4222 Tj +(35 bio.c) 34.9481 Tj 0 -246.8274 Td (13 spinlock.c) 56.7907 Tj -5517.54 TJm -(35 bio.c) 34.9481 Tj --8025.87 TJm -(67 initcode.S) 56.7907 Tj -104.768 -256.3208 Td (36 fs.c) 30.5796 Tj -8527.54 TJm -(67 usys.S) 39.3166 Tj +(# user-level) 52.4222 Tj +104.768 -256.3208 Td +(44 file.c) 39.3166 Tj +-7524.2 TJm +(67 initcode.S) 56.7907 Tj 0 -265.8141 Td (# processes) 48.0537 Tj -6520.87 TJm -(44 file.c) 39.3166 Tj --7524.2 TJm -(68 init.c) 39.3166 Tj +(45 sysfile.c) 52.4222 Tj +-6019.2 TJm +(67 usys.S) 39.3166 Tj 0 -275.3075 Td (15 proc.h) 39.3166 Tj -7524.2 TJm -(45 sysfile.c) 52.4222 Tj --6019.2 TJm -(68 sh.c) 30.5796 Tj +(50 exec.c) 39.3166 Tj +-7524.2 TJm +(68 init.c) 39.3166 Tj 0 -284.8008 Td (16 proc.c) 39.3166 Tj --7524.2 TJm -(50 exec.c) 39.3166 Tj +209.536 -284.8008 Td +(68 sh.c) 30.5796 Tj 0 -294.2942 Td (22 swtch.S) 43.6851 Tj 0 -303.7876 Td (22 kalloc.c) 48.0537 Tj --6520.87 TJm -(# pipes) 30.5796 Tj -0 -332.2673 Td +0 -341.7606 Td (The source listing is preceded by a cross-reference that lists \ every defined ) 336.3756 Tj -0 -341.7606 Td +0 -351.2539 Td (constant, struct, global variable, and function in xv6. Each e\ ntry gives,) 323.2701 Tj -0 -351.254 Td +0 -360.7473 Td (on the same line as the name, the line number \(or, in a few ca\ ses, numbers\)) 327.6386 Tj -0 -360.7473 Td +0 -370.2406 Td (where the name is defined. Successive lines in an entry list t\ he line) 305.796 Tj -0 -370.2407 Td +0 -379.734 Td (numbers where the name is used. For example, this entry:) 249.0053 Tj -17.4613 -389.2274 Td -(swtch 2256) 43.6851 Tj -34.9226 -398.7208 Td -(0311 1928 1962 2255) 83.0018 Tj +17.4613 -398.7207 Td +(swtch 2208) 43.6851 Tj 34.9226 -408.2141 Td -(2256) 17.4741 Tj --0 -427.2008 Td -(indicates that swtch is defined on line 2256 and is mentioned o\ +(0318 1928 1967 2207) 83.0018 Tj +34.9226 -417.7074 Td +(2208) 17.4741 Tj +-0 -436.6941 Td +(indicates that swtch is defined on line 2208 and is mentioned o\ n five lines) 327.6386 Tj --0 -436.6942 Td +-0 -446.1875 Td (on sheets 03, 19, and 22.) 109.2129 Tj Q Q @@ -1264,207 +1264,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 1) 187.8461 Tj +(Aug 30 21:46 2009 cross-references Page 1) 187.8461 Tj 0 -28.4801 Td (acquire 1373) 52.4222 Tj --14045.3 TJm -(3460 3479 3618) 61.1592 Tj +-12038.8 TJm +(bmap 4010) 39.3166 Tj 17.4613 -37.9735 Td -(0321 1373 1377 1759) 83.0018 Tj --6520.6 TJm -(bfree 3730) 43.6851 Tj +(0321 1373 1377 1744) 83.0018 Tj +-8527.14 TJm +(4010 4036 4119 4169) 83.0018 Tj 17.4613 -47.4664 Td (1917 1975 2018 2033) 83.0018 Tj -8527.14 TJm -(3730 4062 4072 4075) 83.0018 Tj +(4222) 17.4741 Tj 17.4613 -56.9594 Td (2066 2079 2123 2158) 83.0018 Tj -6520.6 TJm -(bget 3566) 39.3166 Tj +(bootmain 1116) 56.7907 Tj 17.4613 -66.4524 Td (2315 2362 2616 2971) 83.0018 Tj -8527.14 TJm -(3566 3596 3606) 61.1592 Tj +(0976 1116) 39.3166 Tj 17.4613 -75.9453 Td (3407 3465 3570 3629) 83.0018 Tj -6520.6 TJm -(binit 3539) 43.6851 Tj +(bootothers 1267) 65.5277 Tj 17.4613 -85.4383 Td (3857 3890 3910 3939) 83.0018 Tj -8527.14 TJm -(0210 1229 3539) 61.1592 Tj +(1210 1236 1267) 61.1592 Tj 17.4613 -94.9313 Td -(3954 3964 4424 4440) 83.0018 Tj +(3954 3964 4425 4441) 83.0018 Tj -6520.6 TJm -(bmap 4010) 39.3166 Tj +(BPB 3188) 34.9481 Tj 17.4613 -104.4243 Td (4456 5213 5234 5255) 83.0018 Tj -8527.14 TJm -(4010 4036 4119 4169) 83.0018 Tj +(3188 3191 3712 3714) 83.0018 Tj 17.4613 -113.9172 Td (6360 6516 6558 6606) 83.0018 Tj -8527.14 TJm -(4222) 17.4741 Tj +(3740) 17.4741 Tj 0 -123.4106 Td -(allocproc 1754) 61.1592 Tj +(allocproc 1739) 61.1592 Tj -11035.5 TJm -(bootmain 1116) 56.7907 Tj +(bread 3602) 43.6851 Tj 17.4613 -132.9039 Td -(1754 1807 1860) 61.1592 Tj +(1739 1785 1838) 61.1592 Tj -11035.5 TJm -(0976 1116) 39.3166 Tj +(0211 3602 3682 3693) 83.0018 Tj 0 -142.3973 Td (alltraps 2506) 56.7907 Tj --11537.1 TJm -(bootothers 1267) 65.5277 Tj +-13543.7 TJm +(3713 3739 3811 3832) 83.0018 Tj 17.4613 -151.8907 Td (2459 2467 2480 2485) 83.0018 Tj -8527.14 TJm -(1210 1236 1267) 61.1592 Tj +(3917 4026 4068 4119) 83.0018 Tj 17.4613 -161.3836 Td (2505 2506) 39.3166 Tj --11537.3 TJm -(BPB 3188) 34.9481 Tj +-13543.8 TJm +(4169 4222) 39.3166 Tj 0 -170.877 Td (ALT 6110) 34.9481 Tj --16052 TJm -(3188 3191 3712 3714) 83.0018 Tj +-14045.5 TJm +(brelse 3624) 48.0537 Tj 17.4613 -180.3703 Td (6110 6138 6140) 61.1592 Tj -11035.5 TJm -(3740) 17.4741 Tj +(0212 3624 3627 3684) 83.0018 Tj 0 -189.8633 Td (argfd 4563) 43.6851 Tj --13042.1 TJm -(bread 3602) 43.6851 Tj +-15048.7 TJm +(3696 3719 3723 3746) 83.0018 Tj 17.4613 -199.3567 Td (4563 4606 4621 4633) 83.0018 Tj -8527.14 TJm -(0211 3602 3682 3693) 83.0018 Tj +(3817 3820 3841 3925) 83.0018 Tj 17.4613 -208.8497 Td (4644 4656) 39.3166 Tj -13543.8 TJm -(3713 3739 3811 3832) 83.0018 Tj +(4032 4074 4122 4173) 83.0018 Tj 0 -218.343 Td (argint 2794) 48.0537 Tj -14547 TJm -(3917 4026 4068 4119) 83.0018 Tj +(4233 4237) 39.3166 Tj 17.4613 -227.8364 Td (0339 2794 2808 2824) 83.0018 Tj --8527.14 TJm -(4169 4222) 39.3166 Tj +-6520.6 TJm +(BSIZE 3158) 43.6851 Tj 17.4613 -237.3293 Td (2931 2956 2969 4568) 83.0018 Tj --6520.6 TJm -(brelse 3624) 48.0537 Tj +-8527.14 TJm +(3158 3168 3182 3188) 83.0018 Tj 17.4613 -246.8223 Td (4621 4633 4858 4921) 83.0018 Tj -8527.14 TJm -(0212 3624 3627 3684) 83.0018 Tj +(3694 4119 4120 4121) 83.0018 Tj 17.4613 -256.3153 Td (4922 4957) 39.3166 Tj -13543.8 TJm -(3696 3719 3723 3746) 83.0018 Tj +(4165 4166 4169 4170) 83.0018 Tj 0 -265.8086 Td (argptr 2804) 48.0537 Tj -14547 TJm -(3817 3820 3841 3925) 83.0018 Tj +(4171 4221 4222 4224) 83.0018 Tj 17.4613 -275.302 Td (0340 2804 4621 4633) 83.0018 Tj --8527.14 TJm -(4032 4074 4122 4173) 83.0018 Tj +-6520.6 TJm +(buf 3000) 34.9481 Tj 17.4613 -284.795 Td (4656 4982) 39.3166 Tj -13543.8 TJm -(4233 4237) 39.3166 Tj +(0200 0211 0212 0213) 83.0018 Tj 0 -294.2883 Td (argstr 2821) 48.0537 Tj --12540.5 TJm -(BSIZE 3158) 43.6851 Tj +-14547 TJm +(0253 3000 3004 3005) 83.0018 Tj 17.4613 -303.7817 Td (0341 2821 4668 4758) 83.0018 Tj -8527.14 TJm -(3158 3168 3182 3188) 83.0018 Tj +(3006 3310 3325 3328) 83.0018 Tj 17.4613 -313.2747 Td (4858 4906 4920 4935) 83.0018 Tj -8527.14 TJm -(3694 4119 4120 4121) 83.0018 Tj +(3375 3404 3454 3456) 83.0018 Tj 17.4613 -322.7676 Td (4957) 17.4741 Tj -16052.1 TJm -(4165 4166 4169 4170) 83.0018 Tj +(3459 3527 3531 3535) 83.0018 Tj 0 -332.2606 Td (BACK 6861) 39.3166 Tj -15550.3 TJm -(4171 4221 4222 4224) 83.0018 Tj +(3541 3553 3565 3568) 83.0018 Tj 17.4613 -341.754 Td (6861 6974 7120 7389) 83.0018 Tj --6520.6 TJm -(buf 3000) 34.9481 Tj +-8527.14 TJm +(3601 3604 3614 3624) 83.0018 Tj 0 -351.2473 Td (backcmd 6896 7114) 74.2647 Tj -11537 TJm -(0200 0211 0212 0213) 83.0018 Tj +(3669 3680 3691 3707) 83.0018 Tj 17.4613 -360.7407 Td (6896 6909 6975 7114) 83.0018 Tj -8527.14 TJm -(0253 3000 3004 3005) 83.0018 Tj +(3732 3805 3829 3904) 83.0018 Tj 17.4613 -370.2337 Td (7116 7242 7355 7390) 83.0018 Tj -8527.14 TJm -(3006 3310 3325 3328) 83.0018 Tj +(4013 4057 4105 4155) 83.0018 Tj 0 -379.727 Td (BACKSPACE 6450) 61.1592 Tj -13042 TJm -(3375 3404 3454 3456) 83.0018 Tj +(4215 6328 6339 6342) 83.0018 Tj 17.4613 -389.2204 Td (6450 6467 6526 6532) 83.0018 Tj -8527.14 TJm -(3459 3527 3531 3535) 83.0018 Tj +(6345 6503 6524 6537) 83.0018 Tj 0 -398.7137 Td (balloc 3704) 48.0537 Tj -14547 TJm -(3541 3553 3565 3568) 83.0018 Tj +(6568 6601 6608 6984) 83.0018 Tj 17.4613 -408.2071 Td (3704 3725 4017 4025) 83.0018 Tj -8527.14 TJm -(3601 3604 3614 3624) 83.0018 Tj +(6987 6988 6989 7003) 83.0018 Tj 17.4613 -417.7001 Td (4029) 17.4741 Tj -16052.1 TJm -(3669 3680 3691 3707) 83.0018 Tj +(7015 7016 7019 7020) 83.0018 Tj 0 -427.1934 Td (BBLOCK 3191) 48.0537 Tj -14547 TJm -(3732 3805 3829 3904) 83.0018 Tj +(7021 7025) 39.3166 Tj 17.4613 -436.6868 Td (3191 3713 3739) 61.1592 Tj --11035.5 TJm -(4013 4057 4105 4155) 83.0018 Tj +-9028.94 TJm +(bwrite 3614) 48.0537 Tj 0 -446.1801 Td -(B_BUSY 3009) 48.0537 Tj --14547 TJm -(4215 6327 6338 6341) 83.0018 Tj +(bfree 3730) 43.6851 Tj +-15048.7 TJm +(0213 3614 3617 3695) 83.0018 Tj 17.4613 -455.6735 Td -(3009 3458 3576 3577) 83.0018 Tj +(3730 4062 4072 4075) 83.0018 Tj -8527.14 TJm -(6344 6503 6524 6537) 83.0018 Tj -17.4613 -465.1665 Td -(3588 3591 3616 3626) 83.0018 Tj --8527.14 TJm -(6568 6601 6608 6984) 83.0018 Tj -17.4613 -474.6594 Td -(3638) 17.4741 Tj --16052.1 TJm -(6987 6988 6989 7003) 83.0018 Tj -0 -484.1528 Td -(B_DIRTY 3011) 52.4222 Tj --14045.3 TJm -(7015 7016 7019 7020) 83.0018 Tj -17.4613 -493.6462 Td -(3011 3387 3416 3421) 83.0018 Tj --8527.14 TJm -(7021 7025) 39.3166 Tj +(3718 3745 3816 3840) 83.0018 Tj +0 -465.1669 Td +(bget 3566) 39.3166 Tj +-15550.3 TJm +(4030 4172) 39.3166 Tj +17.4613 -474.6598 Td +(3566 3596 3606) 61.1592 Tj +-9028.94 TJm +(bzero 3689) 43.6851 Tj +0 -484.1532 Td +(binit 3539) 43.6851 Tj +-15048.7 TJm +(3689 3736) 39.3166 Tj +17.4613 -493.6466 Td +(0210 1229 3539) 61.1592 Tj +-9028.94 TJm +(B_BUSY 3009) 48.0537 Tj Q Q q @@ -1481,207 +1481,207 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 2) 187.8461 Tj -0 -28.4801 Td -(B_VALID 3010) 52.4222 Tj --14045.3 TJm +(Aug 30 21:46 2009 cross-references Page 2) 187.8461 Tj +17.4613 -28.4801 Td +(3009 3458 3576 3577) 83.0018 Tj +-8527.14 TJm (7394) 17.4741 Tj 17.4613 -37.9735 Td -(3010 3420 3460 3479) 83.0018 Tj +(3588 3591 3616 3626) 83.0018 Tj -6520.6 TJm (CONSOLE 3290) 52.4222 Tj -17.4613 -47.4664 Td -(3607) 17.4741 Tj +17.4613 -47.4668 Td +(3638) 17.4741 Tj -16052.1 TJm (3290 6621 6622) 61.1592 Tj -0 -56.9598 Td -(bwrite 3614) 48.0537 Tj --12540.5 TJm +0 -56.9602 Td +(B_DIRTY 3011) 52.4222 Tj +-12038.8 TJm (consoleinit 6616) 69.8962 Tj -17.4613 -66.4531 Td -(0213 3614 3617 3695) 83.0018 Tj +17.4613 -66.4535 Td +(3011 3387 3416 3421) 83.0018 Tj -8527.14 TJm (0216 1222 6616) 61.1592 Tj -17.4613 -75.9461 Td -(3718 3745 3816 3840) 83.0018 Tj --6520.6 TJm +17.4613 -75.9469 Td +(3460 3479 3618) 61.1592 Tj +-9028.94 TJm (consoleintr 6512) 69.8962 Tj -17.4613 -85.4391 Td -(4030 4172) 39.3166 Tj --13543.8 TJm +0 -85.4403 Td +(B_VALID 3010) 52.4222 Tj +-14045.3 TJm (0218 6298 6512) 61.1592 Tj -0 -94.9324 Td -(bzero 3689) 43.6851 Tj --13042.1 TJm +17.4613 -94.9336 Td +(3010 3420 3460 3479) 83.0018 Tj +-6520.6 TJm (consoleread 6551) 69.8962 Tj -17.4613 -104.4258 Td -(3689 3736) 39.3166 Tj --13543.8 TJm +17.4613 -104.427 Td +(3607) 17.4741 Tj +-16052.1 TJm (6551 6622) 39.3166 Tj -0 -113.9192 Td +0 -113.9203 Td (C 6131 6509) 48.0537 Tj -12540.5 TJm (consolewrite 6601) 74.2647 Tj -17.4613 -123.4125 Td +17.4613 -123.4137 Td (6131 6179 6204 6205) 83.0018 Tj -8527.14 TJm (6601 6621) 39.3166 Tj -17.4613 -132.9055 Td +17.4613 -132.9071 Td (6206 6207 6208 6210) 83.0018 Tj -6520.6 TJm (consputc 6487) 56.7907 Tj -17.4613 -142.3985 Td +17.4613 -142.4004 Td (6509 6519 6522 6529) 83.0018 Tj -8527.14 TJm -(6314 6344 6366 6384) 83.0018 Tj -17.4613 -151.8914 Td +(6315 6345 6366 6384) 83.0018 Tj +17.4613 -151.8938 Td (6539 6569) 39.3166 Tj -13543.8 TJm (6387 6391 6392 6487) 83.0018 Tj -0 -161.3848 Td +0 -161.3871 Td (CAPSLOCK 6112) 56.7907 Tj -13543.7 TJm (6526 6532 6538 6608) 83.0018 Tj -17.4613 -170.8782 Td +17.4613 -170.8805 Td (6112 6145 6286) 61.1592 Tj -9028.94 TJm (context 1518) 52.4222 Tj -0 -180.3715 Td +0 -180.3739 Td (cgaputc 6455) 52.4222 Tj -14045.3 TJm (0201 0318 1518 1537) 83.0018 Tj -17.4613 -189.8645 Td +17.4613 -189.8668 Td (6455 6496) 39.3166 Tj -13543.8 TJm -(1559 1678 1787 1788) 83.0018 Tj -0 -199.3578 Td +(1559 1678 1771 1772) 83.0018 Tj +0 -199.3602 Td (cli 0521) 34.9481 Tj -16052 TJm -(1789 1790 1928 1967) 83.0018 Tj -17.4613 -208.8512 Td +(1773 1774 1928 1967) 83.0018 Tj +17.4613 -208.8535 Td (0521 0523 0915 1029) 83.0018 Tj -6520.6 TJm (cprintf 6352) 52.4222 Tj -17.4613 -218.3442 Td +17.4613 -218.3469 Td (1460 6406 6490) 61.1592 Tj -11035.5 TJm (0217 1224 1258 1262) 83.0018 Tj -0 -227.8375 Td +0 -227.8403 Td (cmd 6865) 34.9481 Tj -16052 TJm (1676 1680 1682 2286) 83.0018 Tj -17.4613 -237.3309 Td +17.4613 -237.3336 Td (6865 6877 6886 6887) 83.0018 Tj -8527.14 TJm (2375 2637 2645 2650) 83.0018 Tj -17.4613 -246.8239 Td +17.4613 -246.827 Td (6892 6893 6898 6902) 83.0018 Tj -8527.14 TJm -(2882 3410 5637 5761) 83.0018 Tj -17.4613 -256.3168 Td +(2882 3410 5619 5639) 83.0018 Tj +17.4613 -256.3203 Td (6906 6915 6918 6923) 83.0018 Tj -8527.14 TJm -(5912 6352 6408 6409) 83.0018 Tj -17.4613 -265.8098 Td +(5761 5912 6352 6408) 83.0018 Tj +17.4613 -265.8137 Td (6931 6937 6941 6951) 83.0018 Tj -8527.14 TJm -(6410 6413) 39.3166 Tj -17.4613 -275.3028 Td +(6409 6410 6413) 61.1592 Tj +17.4613 -275.3071 Td (6975 6977 7052 7055) 83.0018 Tj -6520.6 TJm -(cpu 1557 5751) 56.7907 Tj -17.4613 -284.7958 Td +(cpu 1557) 34.9481 Tj +17.4613 -284.8004 Td (7057 7058 7059 7060) 83.0018 Tj -8527.14 TJm -(0256 0269 1207 1224) 83.0018 Tj -17.4613 -294.2887 Td +(0256 1207 1224 1258) 83.0018 Tj +17.4613 -294.2938 Td (7063 7064 7066 7068) 83.0018 Tj -8527.14 TJm -(1255 1256 1258 1262) 83.0018 Tj -17.4613 -303.7817 Td +(1260 1262 1271 1306) 83.0018 Tj +17.4613 -303.7871 Td (7069 7070 7071 7072) 83.0018 Tj -8527.14 TJm -(1271 1279 1306 1365) 83.0018 Tj -17.4613 -313.2747 Td +(1365 1386 1408 1446) 83.0018 Tj +17.4613 -313.2805 Td (7073 7074 7075 7076) 83.0018 Tj -8527.14 TJm -(1389 1408 1446 1557) 83.0018 Tj -17.4613 -322.7676 Td +(1461 1462 1470 1472) 83.0018 Tj +17.4613 -322.7739 Td (7079 7080 7082 7084) 83.0018 Tj -8527.14 TJm -(1568 1577 1705 1707) 83.0018 Tj -17.4613 -332.2606 Td +(1557 1568 1577 1705) 83.0018 Tj +17.4613 -332.2672 Td (7085 7086 7087 7088) 83.0018 Tj -8527.14 TJm -(2615 2637 2638 2645) 83.0018 Tj -17.4613 -341.7536 Td +(1715 1724 1725 1726) 83.0018 Tj +17.4613 -341.7606 Td (7089 7100 7101 7103) 83.0018 Tj -8527.14 TJm -(2646 2650 2651 5512) 83.0018 Tj -17.4613 -351.2465 Td +(1727 1728 1729 1928) 83.0018 Tj +17.4613 -351.2539 Td (7105 7106 7107 7108) 83.0018 Tj -8527.14 TJm -(5513 5751 5761 6408) 83.0018 Tj -17.4613 -360.7395 Td +(1959 1966 1967 1968) 83.0018 Tj +17.4613 -360.7473 Td (7109 7110 7113 7114) 83.0018 Tj --6520.6 TJm -(CR0_PE 0910 1024) 69.8962 Tj -17.4613 -370.2325 Td +-8527.14 TJm +(2615 2637 2638 2645) 83.0018 Tj +17.4613 -370.2407 Td (7116 7118 7119 7120) 83.0018 Tj -8527.14 TJm -(0956 1056) 39.3166 Tj -17.4613 -379.7255 Td +(2646 2650 2651 5512) 83.0018 Tj +17.4613 -379.734 Td (7121 7122 7212 7213) 83.0018 Tj --6520.6 TJm -(create 4801) 48.0537 Tj -17.4613 -389.2184 Td -(7214 7215 7217 7221) 83.0018 Tj -8527.14 TJm -(4801 4821 4834 4838) 83.0018 Tj -17.4613 -398.7114 Td +(5513 5761 6408) 61.1592 Tj +17.4613 -389.2274 Td +(7214 7215 7217 7221) 83.0018 Tj +-6520.6 TJm +(cpunum 5751) 48.0537 Tj +17.4613 -398.7207 Td (7224 7230 7231 7234) 83.0018 Tj -8527.14 TJm -(4862 4906 4923) 61.1592 Tj -17.4613 -408.2044 Td +(0269 1255 1256 1279) 83.0018 Tj +17.4613 -408.2141 Td (7237 7239 7242 7246) 83.0018 Tj --6520.6 TJm -(CRTPORT 6451) 52.4222 Tj -17.4613 -417.6973 Td -(7248 7250 7253 7255) 83.0018 Tj -8527.14 TJm -(6451 6460 6461 6462) 83.0018 Tj -17.4613 -427.1903 Td +(1707 5751 5923 5932) 83.0018 Tj +17.4613 -417.7075 Td +(7248 7250 7253 7255) 83.0018 Tj +-6520.6 TJm +(CR0_PE 0910 1024) 69.8962 Tj +17.4613 -427.2008 Td (7258 7260 7263 7264) 83.0018 Tj -8527.14 TJm -(6463 6479 6480 6481) 83.0018 Tj -17.4613 -436.6833 Td +(0956 1056) 39.3166 Tj +17.4613 -436.6942 Td (7275 7278 7281 7285) 83.0018 Tj --8527.14 TJm -(6482) 17.4741 Tj -17.4613 -446.1762 Td -(7300 7303 7308 7312) 83.0018 Tj -6520.6 TJm -(CTL 6109) 34.9481 Tj -17.4613 -455.6692 Td +(create 4801) 48.0537 Tj +17.4613 -446.1875 Td +(7300 7303 7308 7312) 83.0018 Tj +-8527.14 TJm +(4801 4821 4834 4838) 83.0018 Tj +17.4613 -455.6809 Td (7313 7316 7321 7322) 83.0018 Tj -8527.14 TJm -(6109 6135 6139 6285) 83.0018 Tj -17.4613 -465.1622 Td +(4862 4906 4923) 61.1592 Tj +17.4613 -465.1743 Td (7328 7337 7338 7344) 83.0018 Tj -6520.6 TJm -(devsw 3283) 43.6851 Tj -17.4613 -474.6552 Td +(CRTPORT 6451) 52.4222 Tj +17.4613 -474.6676 Td (7345 7351 7352 7361) 83.0018 Tj -8527.14 TJm -(3283 3288 4108 4110) 83.0018 Tj -17.4613 -484.1481 Td +(6451 6460 6461 6462) 83.0018 Tj +17.4613 -484.161 Td (7364 7366 7372 7373) 83.0018 Tj -8527.14 TJm -(4158 4160 4406 6621) 83.0018 Tj -17.4613 -493.6411 Td +(6463 6479 6480 6481) 83.0018 Tj +17.4613 -493.6543 Td (7378 7384 7390 7391) 83.0018 Tj -8527.14 TJm -(6622) 17.4741 Tj +(6482) 17.4741 Tj Q Q Q @@ -1729,207 +1729,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 3) 187.8461 Tj +(Aug 30 21:46 2009 cross-references Page 3) 187.8461 Tj 0 -28.4801 Td +(CTL 6109) 34.9481 Tj +-16052 TJm +(0302 2104 2140 2605) 83.0018 Tj +17.4613 -37.9735 Td +(6109 6135 6139 6285) 83.0018 Tj +-8527.14 TJm +(2609 2659 2668 2916) 83.0018 Tj +0 -47.4664 Td +(devsw 3283) 43.6851 Tj +-15048.7 TJm +(6715 6718 6761 6826) 83.0018 Tj +17.4613 -56.9598 Td +(3283 3288 4108 4110) 83.0018 Tj +-8527.14 TJm +(6831 6916 6925 6935) 83.0018 Tj +17.4613 -66.4531 Td +(4158 4160 4407 6621) 83.0018 Tj +-8527.14 TJm +(6980 7028 7035) 61.1592 Tj +17.4613 -75.9465 Td +(6622) 17.4741 Tj +-14045.6 TJm +(fdalloc 4582) 52.4222 Tj +0 -85.4399 Td (dinode 3172) 48.0537 Tj -14547 TJm (4582 4608 4874 4987) 83.0018 Tj -17.4613 -37.9735 Td +17.4613 -94.9332 Td (3172 3182 3806 3812) 83.0018 Tj -6520.6 TJm (fetchint 2766) 56.7907 Tj -17.4613 -47.4664 Td +17.4613 -104.4266 Td (3830 3833 3905 3918) 83.0018 Tj -8527.14 TJm (0342 2766 2796 4963) 83.0018 Tj -0 -56.9598 Td +0 -113.9199 Td (dirent 3203) 48.0537 Tj -12540.5 TJm (fetchstr 2778) 56.7907 Tj -17.4613 -66.4531 Td +17.4613 -123.4133 Td (3203 4216 4223 4224) 83.0018 Tj -8527.14 TJm (0343 2778 2826 4969) 83.0018 Tj -17.4613 -75.9461 Td +17.4613 -132.9067 Td (4255 4705 4754) 61.1592 Tj -9028.94 TJm (file 3250) 39.3166 Tj -0 -85.4395 Td +0 -142.4 Td (dirlink 4252) 52.4222 Tj -14045.3 TJm (0202 0225 0226 0227) 83.0018 Tj -17.4613 -94.9328 Td +17.4613 -151.8934 Td (0234 4252 4267 4275) 83.0018 Tj -8527.14 TJm (0229 0230 0231 0287) 83.0018 Tj -17.4613 -104.4258 Td +17.4613 -161.3867 Td (4684 4833 4837 4838) 83.0018 Tj -8527.14 TJm -(1540 3250 3671 4403) 83.0018 Tj -0 -113.9192 Td +(1540 3250 3671 4404) 83.0018 Tj +0 -170.8801 Td (dirlookup 4212) 61.1592 Tj -13042 TJm -(4409 4419 4422 4425) 83.0018 Tj -17.4613 -123.4125 Td +(4410 4420 4423 4426) 83.0018 Tj +17.4613 -180.3735 Td (0235 4212 4219 4259) 83.0018 Tj -8527.14 TJm -(4437 4438 4452 4454) 83.0018 Tj -17.4613 -132.9055 Td +(4438 4439 4452 4454) 83.0018 Tj +17.4613 -189.8668 Td (4374 4770 4811) 61.1592 Tj -11035.5 TJm (4476 4502 4522 4557) 83.0018 Tj -0 -142.3989 Td +0 -199.3602 Td (DIRSIZ 3201) 48.0537 Tj -14547 TJm (4563 4566 4582 4603) 83.0018 Tj -17.4613 -151.8922 Td +17.4613 -208.8535 Td (3201 3205 4205 4272) 83.0018 Tj -8527.14 TJm (4617 4629 4642 4653) 83.0018 Tj -17.4613 -161.3852 Td +17.4613 -218.3469 Td (4328 4329 4391 4665) 83.0018 Tj -8527.14 TJm -(4855 4979 5155 5170) 83.0018 Tj -17.4613 -170.8782 Td +(4855 4979 5156 5171) 83.0018 Tj +17.4613 -227.8403 Td (4755 4805) 39.3166 Tj -13543.8 TJm -(6309 6878 6933 6934) 83.0018 Tj -0 -180.3715 Td +(6310 6878 6933 6934) 83.0018 Tj +0 -237.3336 Td (DPL_USER 0711) 56.7907 Tj -13543.7 TJm (7064 7072 7272) 61.1592 Tj -17.4613 -189.8645 Td -(0711 1725 1726 1817) 83.0018 Tj +17.4613 -246.827 Td +(0711 1724 1725 1795) 83.0018 Tj -6520.6 TJm -(filealloc 4420) 61.1592 Tj -17.4613 -199.3575 Td -(1818 2572 2658 2667) 83.0018 Tj +(filealloc 4421) 61.1592 Tj +17.4613 -256.3203 Td +(1796 2572 2658 2667) 83.0018 Tj -8527.14 TJm -(0225 4420 4874 5176) 83.0018 Tj -0 -208.8508 Td +(0225 4421 4874 5177) 83.0018 Tj +0 -265.8137 Td (E0ESC 6116) 43.6851 Tj -13042.1 TJm (fileclose 4452) 61.1592 Tj -17.4613 -218.3442 Td +17.4613 -275.3071 Td (6116 6270 6274 6275) 83.0018 Tj -8527.14 TJm (0226 2115 4452 4458) 83.0018 Tj -17.4613 -227.8372 Td +17.4613 -284.8004 Td (6277 6280) 39.3166 Tj -13543.8 TJm (4647 4876 4990 4991) 83.0018 Tj -0 -237.3305 Td +0 -294.2938 Td (elfhdr 0855) 48.0537 Tj -14547 TJm (5204 5206) 39.3166 Tj -17.4613 -246.8239 Td +17.4613 -303.7871 Td (0855 1118 1123 5014) 83.0018 Tj -6520.6 TJm -(filedup 4438) 52.4222 Tj -0 -256.3172 Td +(filedup 4439) 52.4222 Tj +0 -313.2805 Td (ELF_MAGIC 0852) 61.1592 Tj -13042 TJm -(0227 1880 4438 4442) 83.0018 Tj -17.4613 -265.8106 Td +(0227 1858 4439 4443) 83.0018 Tj +17.4613 -322.7739 Td (0852 1129 5028) 61.1592 Tj -11035.5 TJm (4610) 17.4741 Tj -0 -275.304 Td +0 -332.2668 Td (ELF_PROG_LOAD 0886) 78.6333 Tj -9028.81 TJm -(fileinit 4413) 56.7907 Tj -17.4613 -284.7973 Td +(fileinit 4414) 56.7907 Tj +17.4613 -341.7602 Td (0886 5036 5067) 61.1592 Tj -11035.5 TJm -(0228 1230 4413) 61.1592 Tj -0 -294.2907 Td +(0228 1230 4414) 61.1592 Tj +0 -351.2536 Td (EOI 5663) 34.9481 Tj -14045.5 TJm (fileread 4502) 56.7907 Tj -17.4613 -303.784 Td +17.4613 -360.7469 Td (5663 5734 5775) 61.1592 Tj -11035.5 TJm (0229 4502 4517 4623) 83.0018 Tj -0 -313.2774 Td +0 -370.2403 Td (ERROR 5681) 43.6851 Tj -13042.1 TJm (filestat 4476) 56.7907 Tj -17.4613 -322.7707 Td +17.4613 -379.7336 Td (5681 5727) 39.3166 Tj -13543.8 TJm (0230 4476 4658) 61.1592 Tj -0 -332.2637 Td +0 -389.227 Td (ESR 5666) 34.9481 Tj -14045.5 TJm (filewrite 4522) 61.1592 Tj -17.4613 -341.7571 Td +17.4613 -398.7204 Td (5666 5730 5731) 61.1592 Tj -11035.5 TJm (0231 4522 4537 4635) 83.0018 Tj -0 -351.2504 Td -(exec 5009) 39.3166 Tj --13543.8 TJm -(FL_IF 0660) 43.6851 Tj -17.4613 -360.7438 Td -(0222 4972 5009 6768) 83.0018 Tj --8527.14 TJm -(0660 1462 1468 1821) 83.0018 Tj -17.4613 -370.2368 Td -(6829 6830 6926 6927) 83.0018 Tj --8527.14 TJm -(1963 5758) 39.3166 Tj -0 -379.7301 Td +0 -408.2137 Td (EXEC 6857) 39.3166 Tj -13543.8 TJm -(fork 1854) 39.3166 Tj -17.4613 -389.2235 Td +(FL_IF 0660) 43.6851 Tj +17.4613 -417.7071 Td (6857 6922 7059 7365) 83.0018 Tj -8527.14 TJm -(0303 1854 2910 6760) 83.0018 Tj -0 -398.7168 Td +(0660 1462 1468 1799) 83.0018 Tj +0 -427.2004 Td +(exec 5009) 39.3166 Tj +-15550.3 TJm +(1963 5758) 39.3166 Tj +17.4613 -436.6938 Td +(0222 4972 5009 6768) 83.0018 Tj +-6520.6 TJm +(fork 1832) 39.3166 Tj +17.4613 -446.1872 Td +(6829 6830 6926 6927) 83.0018 Tj +-8527.14 TJm +(0303 1832 2910 6760) 83.0018 Tj +0 -455.6805 Td (execcmd 6869 7053) 74.2647 Tj -11537 TJm (6823 6825 7043 7045) 83.0018 Tj -17.4613 -408.2102 Td +17.4613 -465.1739 Td (6869 6910 6923 7053) 83.0018 Tj -6520.6 TJm (fork1 7039) 43.6851 Tj -17.4613 -417.7032 Td +17.4613 -474.6672 Td (7055 7321 7327 7328) 83.0018 Tj -8527.14 TJm (6900 6942 6954 6961) 83.0018 Tj -17.4613 -427.1962 Td +17.4613 -484.1606 Td (7356 7366) 39.3166 Tj -13543.8 TJm (6976 7024 7039) 61.1592 Tj -0 -436.6895 Td +0 -493.654 Td (exit 2104) 39.3166 Tj -13543.8 TJm (forkret 1984) 52.4222 Tj -17.4613 -446.1829 Td -(0302 2104 2140 2605) 83.0018 Tj --8527.14 TJm -(1616 1790 1984) 61.1592 Tj -17.4613 -455.6758 Td -(2609 2659 2668 2916) 83.0018 Tj --6520.6 TJm -(gatedesc 0801) 56.7907 Tj -17.4613 -465.1688 Td -(6715 6718 6761 6826) 83.0018 Tj --8527.14 TJm -(0464 0467 0801 2560) 83.0018 Tj -17.4613 -474.6618 Td -(6831 6916 6925 6935) 83.0018 Tj --6520.6 TJm -(getcallerpcs 1426) 74.2647 Tj -17.4613 -484.1548 Td -(6980 7028 7035) 61.1592 Tj --11035.5 TJm -(0322 1390 1426 1678) 83.0018 Tj -0 -493.6481 Td -(fdalloc 4582) 52.4222 Tj --14045.3 TJm -(6411) 17.4741 Tj Q Q q @@ -1946,207 +1946,207 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 4) 187.8461 Tj -0 -28.4801 Td +(Aug 30 21:46 2009 cross-references Page 4) 187.8461 Tj +17.4613 -28.4801 Td +(1616 1774 1984) 61.1592 Tj +-9028.94 TJm +(IDE_CMD_WRITE 3318) 78.6333 Tj +0 -37.9735 Td +(gatedesc 0801) 56.7907 Tj +-13543.7 TJm +(3318 3388) 39.3166 Tj +17.4613 -47.4664 Td +(0464 0467 0801 2560) 83.0018 Tj +-6520.6 TJm +(IDE_DF 3314) 48.0537 Tj +0 -56.9598 Td +(getcallerpcs 1426) 74.2647 Tj +-11537 TJm +(3314 3338) 39.3166 Tj +17.4613 -66.4531 Td +(0322 1387 1426 1678) 83.0018 Tj +-6520.6 TJm +(IDE_DRDY 3313) 56.7907 Tj +17.4613 -75.9465 Td +(6411) 17.4741 Tj +-16052.1 TJm +(3313 3336) 39.3166 Tj +0 -85.4399 Td (getcmd 6984) 48.0537 Tj -12540.5 TJm -(idestart 3375) 56.7907 Tj -17.4613 -37.9735 Td +(IDE_ERR 3315) 52.4222 Tj +17.4613 -94.9332 Td (6984 7015) 39.3166 Tj -13543.8 TJm -(3328 3375 3378 3426) 83.0018 Tj -0 -47.4664 Td -(gettoken 7156) 56.7907 Tj --13543.7 TJm -(3475) 17.4741 Tj -17.4613 -56.9598 Td -(7156 7241 7245 7257) 83.0018 Tj --6520.6 TJm -(idewait 3332) 52.4222 Tj -17.4613 -66.4531 Td -(7270 7271 7307 7311) 83.0018 Tj --8527.14 TJm -(3332 3358 3380 3416) 83.0018 Tj -17.4613 -75.9465 Td -(7333) 17.4741 Tj --14045.6 TJm -(idtinit 2578) 52.4222 Tj -0 -85.4399 Td -(growproc 1834) 56.7907 Tj --13543.7 TJm -(0351 1259 2578) 61.1592 Tj -17.4613 -94.9332 Td -(0304 1834 2959) 61.1592 Tj --9028.94 TJm -(idup 3888) 39.3166 Tj +(3315 3338) 39.3166 Tj 0 -104.4266 Td +(gettoken 7156) 56.7907 Tj +-11537.1 TJm +(idtinit 2578) 52.4222 Tj +17.4613 -113.9199 Td +(7156 7241 7245 7257) 83.0018 Tj +-8527.14 TJm +(0351 1259 2578) 61.1592 Tj +17.4613 -123.4133 Td +(7270 7271 7307 7311) 83.0018 Tj +-6520.6 TJm +(idup 3888) 39.3166 Tj +17.4613 -132.9067 Td +(7333) 17.4741 Tj +-16052.1 TJm +(0237 1859 3888 4361) 83.0018 Tj +0 -142.4 Td +(growproc 1812) 56.7907 Tj +-11537.1 TJm +(iget 3853) 39.3166 Tj +17.4613 -151.8934 Td +(0304 1812 2959) 61.1592 Tj +-11035.5 TJm +(3794 3818 3853 3873) 83.0018 Tj +0 -161.3867 Td (havedisk1 3327) 61.1592 Tj -13042 TJm -(0237 1881 3888 4361) 83.0018 Tj -17.4613 -113.9199 Td +(4234 4359) 39.3166 Tj +17.4613 -170.8801 Td (3327 3364 3462) 61.1592 Tj -9028.94 TJm -(iget 3853) 39.3166 Tj -0 -123.4133 Td +(iinit 3789) 43.6851 Tj +0 -180.3735 Td (holding 1444) 52.4222 Tj -14045.3 TJm -(3794 3818 3853 3873) 83.0018 Tj -17.4613 -132.9067 Td -(0323 1376 1404 1444) 83.0018 Tj --8527.14 TJm -(4234 4359) 39.3166 Tj -17.4613 -142.4 Td -(1957) 17.4741 Tj --14045.6 TJm -(iinit 3789) 43.6851 Tj -0 -151.8934 Td -(ialloc 3802) 48.0537 Tj --14547 TJm (0238 1231 3789) 61.1592 Tj -17.4613 -161.3867 Td -(0236 3802 3822 4820) 83.0018 Tj +17.4613 -189.8664 Td +(0323 1376 1404 1444) 83.0018 Tj -6520.6 TJm (ilock 3902) 43.6851 Tj -17.4613 -170.8801 Td -(4821) 17.4741 Tj +17.4613 -199.3598 Td +(1957) 17.4741 Tj -16052.1 TJm (0239 3902 3908 3928) 83.0018 Tj -0 -180.3735 Td -(IBLOCK 3185) 48.0537 Tj +0 -208.8532 Td +(ialloc 3802) 48.0537 Tj -14547 TJm (4364 4479 4511 4531) 83.0018 Tj -17.4613 -189.8664 Td -(3185 3811 3832 3917) 83.0018 Tj +17.4613 -218.3465 Td +(0236 3802 3822 4820) 83.0018 Tj -8527.14 TJm (4672 4683 4693 4762) 83.0018 Tj -0 -199.3598 Td -(I_BUSY 3277) 48.0537 Tj --14547 TJm +17.4613 -227.8399 Td +(4821) 17.4741 Tj +-16052.1 TJm (4774 4809 4813 4823) 83.0018 Tj -17.4613 -208.8532 Td -(3277 3911 3913 3936) 83.0018 Tj --8527.14 TJm +0 -237.3332 Td +(IBLOCK 3185) 48.0537 Tj +-14547 TJm (4867 4937 5023 6563) 83.0018 Tj -17.4613 -218.3465 Td -(3940 3957 3959) 61.1592 Tj --11035.5 TJm +17.4613 -246.8266 Td +(3185 3811 3832 3917) 83.0018 Tj +-8527.14 TJm (6583 6610) 39.3166 Tj -0 -227.8399 Td +0 -256.32 Td (ICRHI 5674) 43.6851 Tj -13042.1 TJm (inb 0403) 34.9481 Tj -17.4613 -237.3332 Td +17.4613 -265.8133 Td (5674 5737 5821 5833) 83.0018 Tj -8527.14 TJm (0403 0928 0936 1154) 83.0018 Tj -0 -246.8266 Td +0 -275.3067 Td (ICRLO 5667) 43.6851 Tj -15048.7 TJm -(3336 3363 5646 6264) 83.0018 Tj -17.4613 -256.32 Td +(3336 3363 5647 6264) 83.0018 Tj +17.4613 -284.8 Td (5667 5738 5739 5822) 83.0018 Tj -8527.14 TJm (6267 6461 6463) 61.1592 Tj -17.4613 -265.8133 Td +17.4613 -294.2934 Td (5824 5834) 39.3166 Tj -11537.3 TJm (initlock 1361) 56.7907 Tj -0 -275.3067 Td +0 -303.7868 Td (ID 5660) 30.5796 Tj -174.613 -275.3067 Td +174.613 -303.7868 Td (0324 1361 1622 2283) 83.0018 Tj -17.461 -284.8 Td +17.461 -313.2801 Td (5660 5693 5766) 61.1592 Tj -11035.5 TJm (2574 3355 3543 3791) 83.0018 Tj --0.0003 -294.2934 Td -(IDE_BSY 3312) 52.4222 Tj --14045.3 TJm -(4415 5184 6618 6619) 83.0018 Tj -17.461 -303.7868 Td -(3312 3336) 39.3166 Tj --11537.3 TJm -(inode 3263) 43.6851 Tj --0.0003 -313.2801 Td -(IDE_CMD_READ 3317) 74.2647 Tj --11537 TJm -(0203 0234 0235 0236) 83.0018 Tj -17.461 -322.7735 Td -(3317 3391) 39.3166 Tj --13543.8 TJm -(0237 0239 0240 0241) 83.0018 Tj --0.0003 -332.2664 Td -(IDE_CMD_WRITE 3318) 78.6333 Tj --11035.3 TJm -(0242 0243 0245 0246) 83.0018 Tj -17.461 -341.7598 Td -(3318 3388) 39.3166 Tj --13543.8 TJm -(0247 0248 0249 1541) 83.0018 Tj --0.0003 -351.2532 Td -(IDE_DF 3314) 48.0537 Tj --14547 TJm -(3256 3263 3284 3285) 83.0018 Tj -17.461 -360.7465 Td -(3314 3338) 39.3166 Tj --13543.8 TJm -(3674 3785 3794 3801) 83.0018 Tj --0.0003 -370.2399 Td -(IDE_DRDY 3313) 56.7907 Tj --13543.7 TJm -(3827 3852 3855 3861) 83.0018 Tj -17.461 -379.7332 Td -(3313 3336) 39.3166 Tj --13543.8 TJm -(3887 3888 3902 3934) 83.0018 Tj --0.0003 -389.2266 Td -(IDE_ERR 3315) 52.4222 Tj --14045.3 TJm -(3952 3974 4010 4054) 83.0018 Tj -17.461 -398.72 Td -(3315 3338) 39.3166 Tj --13543.8 TJm -(4085 4102 4152 4211) 83.0018 Tj --0.0003 -408.2133 Td +-0.0003 -322.7735 Td (ideinit 3351) 52.4222 Tj -14045.3 TJm -(4212 4252 4256 4353) 83.0018 Tj -17.461 -417.7067 Td +(4416 5185 6618 6619) 83.0018 Tj +17.461 -332.2664 Td (0251 1232 3351) 61.1592 Tj --11035.5 TJm -(4356 4388 4395 4666) 83.0018 Tj --0.0003 -427.2 Td +-9028.94 TJm +(inode 3263) 43.6851 Tj +-0.0003 -341.7598 Td (ideintr 3402) 52.4222 Tj -14045.3 TJm -(4702 4753 4800 4804) 83.0018 Tj -17.461 -436.6934 Td +(0203 0234 0235 0236) 83.0018 Tj +17.461 -351.2532 Td (0252 2624 3402) 61.1592 Tj -11035.5 TJm -(4856 4904 4915 4933) 83.0018 Tj --0.0003 -446.1868 Td +(0237 0239 0240 0241) 83.0018 Tj +-0.0003 -360.7465 Td (idelock 3324) 52.4222 Tj -14045.3 TJm -(5015 6551 6601) 61.1592 Tj -17.461 -455.6801 Td +(0242 0243 0245 0246) 83.0018 Tj +17.461 -370.2399 Td (3324 3355 3407 3409) 83.0018 Tj --6520.6 TJm -(INPUT_BUF 6500) 61.1592 Tj -17.461 -465.1735 Td +-8527.14 TJm +(0247 0248 0249 1541) 83.0018 Tj +17.461 -379.7332 Td (3428 3465 3480 3482) 83.0018 Tj -8527.14 TJm -(6500 6503 6524 6536) 83.0018 Tj --0.0003 -474.6665 Td +(3256 3263 3284 3285) 83.0018 Tj +-0.0003 -389.2266 Td (iderw 3454) 43.6851 Tj -15048.7 TJm -(6537 6539 6568) 61.1592 Tj -17.461 -484.1598 Td +(3674 3785 3794 3801) 83.0018 Tj +17.461 -398.72 Td (0253 3454 3459 3461) 83.0018 Tj --6520.6 TJm -(insl 0412) 39.3166 Tj -17.461 -493.6532 Td +-8527.14 TJm +(3827 3852 3855 3861) 83.0018 Tj +17.461 -408.2133 Td (3608 3619) 39.3166 Tj -13543.8 TJm -(0412 0414 1173 3417) 83.0018 Tj +(3887 3888 3902 3934) 83.0018 Tj +-0.0003 -417.7067 Td +(idestart 3375) 56.7907 Tj +-13543.7 TJm +(3952 3974 4010 4054) 83.0018 Tj +17.461 -427.2 Td +(3328 3375 3378 3426) 83.0018 Tj +-8527.14 TJm +(4085 4102 4152 4211) 83.0018 Tj +17.461 -436.6934 Td +(3475) 17.4741 Tj +-16052.1 TJm +(4212 4252 4256 4353) 83.0018 Tj +-0.0003 -446.1868 Td +(idewait 3332) 52.4222 Tj +-14045.3 TJm +(4356 4388 4395 4666) 83.0018 Tj +17.461 -455.6801 Td +(3332 3358 3380 3416) 83.0018 Tj +-8527.14 TJm +(4702 4753 4800 4804) 83.0018 Tj +-0.0003 -465.1735 Td +(IDE_BSY 3312) 52.4222 Tj +-14045.3 TJm +(4856 4904 4915 4933) 83.0018 Tj +17.461 -474.6665 Td +(3312 3336) 39.3166 Tj +-13543.8 TJm +(5015 6551 6601) 61.1592 Tj +-0.0003 -484.1598 Td +(IDE_CMD_READ 3317) 74.2647 Tj +-9530.47 TJm +(INPUT_BUF 6500) 61.1592 Tj +17.461 -493.6532 Td +(3317 3391) 39.3166 Tj +-13543.8 TJm +(6500 6503 6524 6536) 83.0018 Tj Q Q Q @@ -2194,207 +2194,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 5) 187.8461 Tj -0 -28.4801 Td +(Aug 30 21:46 2009 cross-references Page 5) 187.8461 Tj +17.4613 -28.4801 Td +(6537 6539 6568) 61.1592 Tj +-9028.94 TJm +(IRQ_SLAVE 5960) 61.1592 Tj +0 -37.9735 Td +(insl 0412) 39.3166 Tj +-15550.3 TJm +(5960 5964 6002 6017) 83.0018 Tj +17.4613 -47.4664 Td +(0412 0414 1173 3417) 83.0018 Tj +-6520.6 TJm +(IRQ_SPURIOUS 2436) 74.2647 Tj +0 -56.9598 Td (INT_DISABLED 5869) 74.2647 Tj -11537 TJm (2436 2636 5707) 61.1592 Tj -17.4613 -37.9735 Td +17.4613 -66.4531 Td (5869 5917) 39.3166 Tj -11537.3 TJm (IRQ_TIMER 2431) 61.1592 Tj -0 -47.4664 Td -(ioapic 5877) 48.0537 Tj +0 -75.9465 Td +(IOAPIC 5858) 48.0537 Tj -14547 TJm (2431 2614 2663 5714) 83.0018 Tj -17.4613 -56.9598 Td -(5607 5627 5628 5874) 83.0018 Tj --8527.14 TJm -(6680) 17.4741 Tj -17.4613 -66.4531 Td -(5877 5886 5887 5893) 83.0018 Tj --6520.6 TJm -(isdirempty 4702) 65.5277 Tj -17.4613 -75.9465 Td -(5894 5908) 39.3166 Tj --13543.8 TJm -(4702 4709 4778) 61.1592 Tj -0 -85.4399 Td -(IOAPIC 5858) 48.0537 Tj --12540.5 TJm -(ismp 5514) 39.3166 Tj -17.4613 -94.9332 Td +17.4613 -85.4399 Td (5858 5908) 39.3166 Tj -13543.8 TJm -(0277 1233 5514 5613) 83.0018 Tj -0 -104.4266 Td +(6680) 17.4741 Tj +0 -94.9332 Td +(ioapic 5877) 48.0537 Tj +-12540.5 TJm +(isdirempty 4702) 65.5277 Tj +17.4613 -104.4266 Td +(5607 5629 5630 5874) 83.0018 Tj +-8527.14 TJm +(4702 4709 4778) 61.1592 Tj +17.4613 -113.9199 Td +(5877 5886 5887 5893) 83.0018 Tj +-6520.6 TJm +(ismp 5514) 39.3166 Tj +17.4613 -123.4133 Td +(5894 5908) 39.3166 Tj +-13543.8 TJm +(0277 1233 5514 5612) 83.0018 Tj +0 -132.9067 Td (ioapicenable 5923) 74.2647 Tj -11537 TJm (5905 5925) 39.3166 Tj -17.4613 -113.9199 Td +17.4613 -142.4 Td (0256 3357 5923 6626) 83.0018 Tj -6520.6 TJm (itrunc 4054) 48.0537 Tj -0 -123.4133 Td +0 -151.8934 Td (ioapicid 5516) 56.7907 Tj -13543.7 TJm (3674 3961 4054) 61.1592 Tj -17.4613 -132.9067 Td -(0257 5516 5628 5911) 83.0018 Tj +17.4613 -161.3867 Td +(0257 5516 5630 5911) 83.0018 Tj -6520.6 TJm (iunlock 3934) 52.4222 Tj -17.4613 -142.4 Td +17.4613 -170.8801 Td (5912) 17.4741 Tj -16052.1 TJm (0241 3934 3937 3976) 83.0018 Tj -0 -151.8934 Td +0 -180.3735 Td (ioapicinit 5901) 65.5277 Tj -12540.3 TJm (4371 4481 4514 4534) 83.0018 Tj -17.4613 -161.3867 Td +17.4613 -189.8664 Td (0258 1221 5901 5912) 83.0018 Tj -8527.14 TJm (4679 4880 4942 6556) 83.0018 Tj -0 -170.8801 Td +0 -199.3598 Td (ioapicread 5884) 65.5277 Tj -12540.3 TJm (6605) 17.4741 Tj -17.4613 -180.3735 Td +17.4613 -208.8532 Td (5884 5909 5910) 61.1592 Tj -9028.94 TJm (iunlockput 3974) 65.5277 Tj -0 -189.8664 Td +0 -218.3465 Td (ioapicwrite 5891) 69.8962 Tj -12038.7 TJm (0242 3974 4366 4375) 83.0018 Tj -17.4613 -199.3598 Td +17.4613 -227.8399 Td (5891 5917 5918 5931) 83.0018 Tj -8527.14 TJm (4378 4674 4685 4688) 83.0018 Tj -17.4613 -208.8532 Td +17.4613 -237.3332 Td (5932) 17.4741 Tj -16052.1 TJm (4696 4766 4771 4779) 83.0018 Tj -0 -218.3465 Td +0 -246.8266 Td (IO_PIC1 5957) 52.4222 Tj -14045.3 TJm (4780 4791 4795 4812) 83.0018 Tj -17.4613 -227.8399 Td +17.4613 -256.32 Td (5957 5970 5985 5994) 83.0018 Tj -8527.14 TJm (4816 4840 4869 4877) 83.0018 Tj -17.4613 -237.3332 Td +17.4613 -265.8133 Td (5997 6002 6012 6026) 83.0018 Tj -8527.14 TJm (4908 4925 4939 5077) 83.0018 Tj -17.4613 -246.8266 Td +17.4613 -275.3067 Td (6027) 17.4741 Tj -16052.1 TJm (5118) 17.4741 Tj -0 -256.32 Td +0 -284.8 Td (IO_PIC2 5958) 52.4222 Tj -12038.8 TJm (iupdate 3827) 52.4222 Tj -17.4613 -265.8133 Td +17.4613 -294.2934 Td (5958 5971 5986 6015) 83.0018 Tj -8527.14 TJm (0243 3827 3963 4080) 83.0018 Tj -17.4613 -275.3067 Td +17.4613 -303.7868 Td (6016 6017 6020 6029) 83.0018 Tj -8527.14 TJm (4178 4678 4695 4789) 83.0018 Tj -17.4613 -284.8 Td +17.4613 -313.2801 Td (6030) 17.4741 Tj -16052.1 TJm (4794 4827 4831) 61.1592 Tj -0 -294.2934 Td +0 -322.7735 Td (IO_RTC 5800) 48.0537 Tj -12540.5 TJm -(I_VALID 3278) 52.4222 Tj -17.4613 -303.7868 Td +(I_BUSY 3277) 48.0537 Tj +17.4613 -332.2664 Td (5800 5813 5814) 61.1592 Tj -11035.5 TJm -(3278 3916 3926 3955) 83.0018 Tj -0 -313.2801 Td +(3277 3911 3913 3936) 83.0018 Tj +0 -341.7598 Td (IO_TIMER1 6659) 61.1592 Tj --11035.5 TJm -(kalloc 2354) 48.0537 Tj -17.4613 -322.7735 Td +-13042 TJm +(3940 3957 3959) 61.1592 Tj +17.4613 -351.2532 Td (6659 6668 6678 6679) 83.0018 Tj --8527.14 TJm -(0261 1283 1772 1812) 83.0018 Tj -0 -332.2664 Td +-6520.6 TJm +(I_VALID 3278) 52.4222 Tj +0 -360.7465 Td (IPB 3182) 34.9481 Tj -16052 TJm -(1838 1865 2354 2360) 83.0018 Tj -17.4613 -341.7598 Td +(3278 3916 3926 3955) 83.0018 Tj +17.4613 -370.2399 Td (3182 3185 3191 3812) 83.0018 Tj --8527.14 TJm -(2375 5058 5178) 61.1592 Tj -17.4613 -351.2532 Td +-6520.6 TJm +(kalloc 2354) 48.0537 Tj +17.4613 -379.7332 Td (3833 3918) 39.3166 Tj --11537.3 TJm -(KBDATAP 6104) 52.4222 Tj -0 -360.7465 Td +-13543.8 TJm +(0261 1283 1756 1790) 83.0018 Tj +0 -389.2266 Td (iput 3952) 39.3166 Tj -15550.3 TJm -(6104 6267) 39.3166 Tj -17.4613 -370.2399 Td +(1816 1843 2354 2360) 83.0018 Tj +17.4613 -398.72 Td (0240 2120 3952 3958) 83.0018 Tj --6520.6 TJm -(kbdgetc 6256) 52.4222 Tj -17.4613 -379.7332 Td -(3977 4260 4382 4471) 83.0018 Tj -8527.14 TJm -(6256 6298) 39.3166 Tj -17.4613 -389.2266 Td -(4689 4943) 39.3166 Tj --11537.3 TJm -(kbdintr 6296) 52.4222 Tj -0 -398.72 Td -(IRQ_COM1 2433) 56.7907 Tj --13543.7 TJm -(0266 2628 6296) 61.1592 Tj +(2375 5058 5179) 61.1592 Tj 17.4613 -408.2133 Td +(3977 4260 4382 4471) 83.0018 Tj +-6520.6 TJm +(KBDATAP 6104) 52.4222 Tj +17.4613 -417.7067 Td +(4689 4943) 39.3166 Tj +-13543.8 TJm +(6104 6267) 39.3166 Tj +0 -427.2 Td +(IRQ_COM1 2433) 56.7907 Tj +-11537.1 TJm +(kbdgetc 6256) 52.4222 Tj +17.4613 -436.6934 Td (2433 2631) 39.3166 Tj --11537.3 TJm -(KBS_DIB 6103) 52.4222 Tj -0 -417.7067 Td +-13543.8 TJm +(6256 6298) 39.3166 Tj +0 -446.1868 Td (IRQ_ERROR 2435) 61.1592 Tj --13042 TJm -(6103 6265) 39.3166 Tj -17.4613 -427.2 Td +-11035.5 TJm +(kbdintr 6296) 52.4222 Tj +17.4613 -455.6801 Td (2435 5727) 39.3166 Tj --11537.3 TJm -(KBSTATP 6102) 52.4222 Tj -0 -436.6934 Td +-13543.8 TJm +(0266 2628 6296) 61.1592 Tj +0 -465.1735 Td (IRQ_IDE 2434) 52.4222 Tj --14045.3 TJm -(6102 6264) 39.3166 Tj -17.4613 -446.1868 Td +-12038.8 TJm +(KBSTATP 6102) 52.4222 Tj +17.4613 -474.6665 Td (2434 2623 3356 3357) 83.0018 Tj --6520.6 TJm -(KEY_DEL 6128) 52.4222 Tj -0 -455.6801 Td +-8527.14 TJm +(6102 6264) 39.3166 Tj +0 -484.1598 Td (IRQ_KBD 2432) 52.4222 Tj --14045.3 TJm -(6128 6169 6191 6215) 83.0018 Tj -17.4613 -465.1735 Td +-12038.8 TJm +(KBS_DIB 6103) 52.4222 Tj +17.4613 -493.6532 Td (2432 2627 6625 6626) 83.0018 Tj --6520.6 TJm -(KEY_DN 6122) 48.0537 Tj -0 -474.6665 Td -(IRQ_SLAVE 5960) 61.1592 Tj --13042 TJm -(6122 6165 6187 6211) 83.0018 Tj -17.4613 -484.1598 Td -(5960 5964 6002 6017) 83.0018 Tj --6520.6 TJm -(KEY_END 6120) 52.4222 Tj -0 -493.6532 Td -(IRQ_SPURIOUS 2436) 74.2647 Tj --11537 TJm -(6120 6168 6190 6214) 83.0018 Tj +-8527.14 TJm +(6103 6265) 39.3166 Tj Q Q q @@ -2411,207 +2411,207 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 6) 187.8461 Tj +(Aug 30 21:46 2009 cross-references Page 6) 187.8461 Tj 0 -28.4801 Td +(KEY_DEL 6128) 52.4222 Tj +-14045.3 TJm +(1711) 17.4741 Tj +17.4613 -37.9735 Td +(6128 6169 6191 6215) 83.0018 Tj +-6520.6 TJm +(lidt 0467) 39.3166 Tj +0 -47.4664 Td +(KEY_DN 6122) 48.0537 Tj +-14547 TJm +(0467 0475 2580) 61.1592 Tj +17.4613 -56.9598 Td +(6122 6165 6187 6211) 83.0018 Tj +-6520.6 TJm +(LINT0 5679) 43.6851 Tj +0 -66.4531 Td +(KEY_END 6120) 52.4222 Tj +-14045.3 TJm +(5679 5718) 39.3166 Tj +17.4613 -75.9465 Td +(6120 6168 6190 6214) 83.0018 Tj +-6520.6 TJm +(LINT1 5680) 43.6851 Tj +0 -85.4399 Td (KEY_HOME 6119) 56.7907 Tj -13543.7 TJm (5680 5719) 39.3166 Tj -17.4613 -37.9735 Td +17.4613 -94.9332 Td (6119 6168 6190 6214) 83.0018 Tj -6520.6 TJm (LIST 6860) 39.3166 Tj -0 -47.4664 Td +0 -104.4266 Td (KEY_INS 6127) 52.4222 Tj -14045.3 TJm (6860 6940 7107 7383) 83.0018 Tj -17.4613 -56.9598 Td +17.4613 -113.9199 Td (6127 6169 6191 6215) 83.0018 Tj -6520.6 TJm (listcmd 6890 7101) 74.2647 Tj -0 -66.4531 Td +0 -123.4133 Td (KEY_LF 6123) 48.0537 Tj -14547 TJm (6890 6911 6941 7101) 83.0018 Tj -17.4613 -75.9465 Td +17.4613 -132.9067 Td (6123 6167 6189 6213) 83.0018 Tj -8527.14 TJm (7103 7246 7357 7384) 83.0018 Tj -0 -85.4399 Td +0 -142.4 Td (KEY_PGDN 6126) 56.7907 Tj -11537.1 TJm (loadfsgs 0514) 56.7907 Tj -17.4613 -94.9332 Td +17.4613 -151.8934 Td (6126 6166 6188 6212) 83.0018 Tj -8527.14 TJm (0514 1712) 39.3166 Tj -0 -104.4266 Td +0 -161.3867 Td (KEY_PGUP 6125) 56.7907 Tj -11537.1 TJm (ltr 0479) 34.9481 Tj -17.4613 -113.9199 Td +17.4613 -170.8801 Td (6125 6166 6188 6212) 83.0018 Tj -8527.14 TJm -(0479 0481 1731) 61.1592 Tj -0 -123.4133 Td +(0479 0481 1730) 61.1592 Tj +0 -180.3735 Td (KEY_RT 6124) 48.0537 Tj -12540.5 TJm (MAXARGS 6863) 52.4222 Tj -17.4613 -132.9067 Td +17.4613 -189.8664 Td (6124 6167 6189 6213) 83.0018 Tj -8527.14 TJm (6863 6871 6872 7340) 83.0018 Tj -0 -142.4 Td +0 -199.3598 Td (KEY_UP 6121) 48.0537 Tj -12540.5 TJm (MAXFILE 3169) 52.4222 Tj -17.4613 -151.8934 Td +17.4613 -208.8532 Td (6121 6165 6187 6211) 83.0018 Tj -8527.14 TJm (3169 4165 4166) 61.1592 Tj -0 -161.3867 Td +0 -218.3465 Td (kfree 2305) 43.6851 Tj -13042.1 TJm (memcmp 5311) 48.0537 Tj -17.4613 -170.8801 Td -(0262 1843 1866 2169) 83.0018 Tj +17.4613 -227.8399 Td +(0262 1821 1844 2169) 83.0018 Tj -8527.14 TJm (0330 5311 5543 5588) 83.0018 Tj -17.4613 -180.3735 Td +17.4613 -237.3332 Td (2170 2287 2305 2310) 83.0018 Tj -6520.6 TJm (memmove 5327) 52.4222 Tj -17.4613 -189.8668 Td +17.4613 -246.8266 Td (5107 5117 5202 5223) 83.0018 Tj -8527.14 TJm -(0331 1276 1814 1841) 83.0018 Tj -0 -199.3602 Td +(0331 1276 1792 1819) 83.0018 Tj +0 -256.32 Td (kill 2075) 39.3166 Tj -15550.3 TJm -(1871 3683 3839 3924) 83.0018 Tj -17.4613 -208.8535 Td +(1849 3683 3839 3924) 83.0018 Tj +17.4613 -265.8133 Td (0305 2075 2650 2933) 83.0018 Tj -8527.14 TJm (4121 4171 4329 4331) 83.0018 Tj -17.4613 -218.3469 Td +17.4613 -275.3067 Td (6767) 17.4741 Tj -16052.1 TJm (5088 5327 6474) 61.1592 Tj -0 -227.8403 Td +0 -284.8 Td (kinit 2277) 43.6851 Tj -13042.1 TJm (memset 5304) 48.0537 Tj -17.4613 -237.3336 Td +17.4613 -294.2934 Td (0263 1226 2277) 61.1592 Tj -11035.5 TJm -(0332 1789 1813 1816) 83.0018 Tj -0 -246.827 Td +(0332 1773 1791 1794) 83.0018 Tj +0 -303.7868 Td (ksegment 1703) 56.7907 Tj -13543.7 TJm -(1842 2313 3694 3814) 83.0018 Tj -17.4613 -256.3203 Td +(1820 2313 3694 3814) 83.0018 Tj +17.4613 -313.2801 Td (0309 1219 1257 1703) 83.0018 Tj -8527.14 TJm (4784 4959 5061 5075) 83.0018 Tj -0 -265.8137 Td +0 -322.7735 Td (KSTACKSIZE 0152) 65.5277 Tj -12540.3 TJm (5304 6476 6987 7058) 83.0018 Tj -17.4613 -275.3071 Td -(0152 1283 1284 1730) 83.0018 Tj +17.4613 -332.2664 Td +(0152 1283 1284 1729) 83.0018 Tj -8527.14 TJm (7069 7085 7106 7119) 83.0018 Tj -17.4613 -284.8004 Td -(1772 1776 1866 2170) 83.0018 Tj +17.4613 -341.7598 Td +(1756 1760 1844 2170) 83.0018 Tj -6520.6 TJm (microdelay 5781) 65.5277 Tj -0 -294.2938 Td +0 -351.2532 Td (lapiceoi 5772) 56.7907 Tj -13543.7 TJm (0274 5781 5823 5825) 83.0018 Tj -17.4613 -303.7871 Td +17.4613 -360.7465 Td (0271 2621 2625 2629) 83.0018 Tj -8527.14 TJm (5835) 17.4741 Tj -17.4613 -313.2805 Td +17.4613 -370.2399 Td (2633 2639 5772) 61.1592 Tj -9028.94 TJm (min 3673) 34.9481 Tj -0 -322.7739 Td +0 -379.7332 Td (lapicinit 5701) 61.1592 Tj -13042 TJm (3673 4120 4170) 61.1592 Tj -17.4613 -332.2668 Td +17.4613 -389.2266 Td (0272 1218 1256 5701) 83.0018 Tj -6520.6 TJm (mp 5402) 30.5796 Tj -0 -341.7602 Td +0 -398.72 Td (lapicstartap 5805) 74.2647 Tj -11537 TJm (5402 5507 5536 5542) 83.0018 Tj -17.4613 -351.2536 Td +17.4613 -408.2133 Td (0273 1286 5805) 61.1592 Tj -11035.5 TJm (5543 5544 5555 5560) 83.0018 Tj -0 -360.7469 Td +0 -417.7067 Td (lapicw 5690) 48.0537 Tj -14547 TJm (5564 5565 5568 5569) 83.0018 Tj -17.4613 -370.2403 Td +17.4613 -427.2 Td (5690 5707 5713 5714) 83.0018 Tj -8527.14 TJm (5580 5583 5585 5587) 83.0018 Tj -17.4613 -379.7336 Td +17.4613 -436.6934 Td (5715 5718 5719 5724) 83.0018 Tj -8527.14 TJm -(5594 5604 5610 5642) 83.0018 Tj -17.4613 -389.227 Td +(5594 5604 5610 5643) 83.0018 Tj +17.4613 -446.1868 Td (5727 5730 5731 5734) 83.0018 Tj -6520.6 TJm (mpbcpu 5519) 48.0537 Tj -17.4613 -398.7204 Td +17.4613 -455.6801 Td (5737 5738 5743 5775) 83.0018 Tj -8527.14 TJm (0278 1218 1255 5519) 83.0018 Tj -17.4613 -408.2137 Td +17.4613 -465.1735 Td (5821 5822 5824 5833) 83.0018 Tj -6520.6 TJm (MPBUS 5452) 43.6851 Tj -17.4613 -417.7071 Td +17.4613 -474.6668 Td (5834) 17.4741 Tj -16052.1 TJm -(5452 5631) 39.3166 Tj -0 -427.2004 Td +(5452 5633) 39.3166 Tj +0 -484.1602 Td (lgdt 0453) 39.3166 Tj -13543.8 TJm (mpconf 5413) 48.0537 Tj -17.4613 -436.6938 Td +17.4613 -493.6536 Td (0453 0461 0954 1054) 83.0018 Tj -8527.14 TJm (5413 5579 5582 5587) 83.0018 Tj -17.4613 -446.1872 Td -(1711) 17.4741 Tj --16052.1 TJm -(5605) 17.4741 Tj -0 -455.6805 Td -(lidt 0467) 39.3166 Tj --13543.8 TJm -(mpconfig 5580) 56.7907 Tj -17.4613 -465.1739 Td -(0467 0475 2580) 61.1592 Tj --11035.5 TJm -(5580 5610) 39.3166 Tj -0 -474.6668 Td -(LINT0 5679) 43.6851 Tj --13042.1 TJm -(mpinit 5601) 48.0537 Tj -17.4613 -484.1602 Td -(5679 5718) 39.3166 Tj --13543.8 TJm -(0279 1217 5601 5637) 83.0018 Tj -0 -493.6536 Td -(LINT1 5680) 43.6851 Tj --15048.7 TJm -(5638) 17.4741 Tj Q Q Q @@ -2659,207 +2659,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 7) 187.8461 Tj -0 -28.4801 Td -(mpioapic 5439) 56.7907 Tj --11537.1 TJm -(NINDIRECT 3168) 61.1592 Tj -17.4613 -37.9735 Td -(5439 5607 5627 5629) 83.0018 Tj --8527.14 TJm -(3168 3169 4022 4070) 83.0018 Tj -0 -47.4664 Td +(Aug 30 21:46 2009 cross-references Page 7) 187.8461 Tj +17.4613 -28.4801 Td +(5605) 17.4741 Tj +-14045.6 TJm +(NELEM 0362) 43.6851 Tj +0 -37.9735 Td +(mpconfig 5580) 56.7907 Tj +-13543.7 TJm +(0362 1672 2879 4961) 83.0018 Tj +17.4613 -47.4664 Td +(5580 5610) 39.3166 Tj +-11537.3 TJm +(nextpid 1615) 52.4222 Tj +0 -56.9598 Td +(mpinit 5601) 48.0537 Tj +-14547 TJm +(1615 1752) 39.3166 Tj +17.4613 -66.4531 Td +(0279 1217 5601 5619) 83.0018 Tj +-6520.6 TJm +(NFILE 0155) 43.6851 Tj +17.4613 -75.9465 Td +(5620 5639 5640) 61.1592 Tj +-11035.5 TJm +(0155 4410 4426) 61.1592 Tj +0 -85.4399 Td (MPIOAPIC 5453) 56.7907 Tj -11537.1 TJm -(NINODE 0157) 48.0537 Tj -17.4613 -56.9598 Td -(5453 5626) 39.3166 Tj +(NINDIRECT 3168) 61.1592 Tj +17.4613 -94.9332 Td +(5453 5628) 39.3166 Tj -13543.8 TJm +(3168 3169 4022 4070) 83.0018 Tj +0 -104.4266 Td +(mpioapic 5439) 56.7907 Tj +-11537.1 TJm +(NINODE 0157) 48.0537 Tj +17.4613 -113.9199 Td +(5439 5607 5629 5631) 83.0018 Tj +-8527.14 TJm (0157 3785 3861) 61.1592 Tj -0 -66.4531 Td +0 -123.4133 Td (MPIOINTR 5454) 56.7907 Tj -11537.1 TJm (NO 6106) 30.5796 Tj -17.4613 -75.9465 Td -(5454 5632) 39.3166 Tj +17.4613 -132.9067 Td +(5454 5634) 39.3166 Tj -13543.8 TJm (6106 6152 6155 6157) 83.0018 Tj -0 -85.4399 Td +0 -142.4 Td (MPLINTR 5455) 52.4222 Tj -14045.3 TJm (6158 6159 6160 6162) 83.0018 Tj -17.4613 -94.9332 Td -(5455 5633) 39.3166 Tj +17.4613 -151.8934 Td +(5455 5635) 39.3166 Tj -13543.8 TJm (6174 6177 6179 6180) 83.0018 Tj -0 -104.4266 Td +0 -161.3867 Td (mpmain 1253) 48.0537 Tj -14547 TJm (6181 6182 6184 6202) 83.0018 Tj -17.4613 -113.9199 Td +17.4613 -170.8801 Td (1211 1239 1253 1258) 83.0018 Tj -8527.14 TJm (6203 6205 6206 6207) 83.0018 Tj -17.4613 -123.4133 Td +17.4613 -180.3735 Td (1285) 17.4741 Tj -16052.1 TJm (6208) 17.4741 Tj -0 -132.9067 Td -(mpproc 5428) 48.0537 Tj +0 -189.8664 Td +(MPPROC 5451) 48.0537 Tj -12540.5 TJm (NOFILE 0154) 48.0537 Tj -17.4613 -142.4 Td -(5428 5606 5619 5624) 83.0018 Tj --8527.14 TJm -(0154 1540 1878 2113) 83.0018 Tj -0 -151.8934 Td -(MPPROC 5451) 48.0537 Tj +17.4613 -199.3598 Td +(5451 5616) 39.3166 Tj +-13543.8 TJm +(0154 1540 1856 2113) 83.0018 Tj +0 -208.8532 Td +(mpproc 5428) 48.0537 Tj -14547 TJm (4570 4586) 39.3166 Tj -17.4613 -161.3867 Td -(5451 5618) 39.3166 Tj --11537.3 TJm +17.4613 -218.3465 Td +(5428 5606 5617 5626) 83.0018 Tj +-6520.6 TJm (NPROC 0150) 43.6851 Tj -0 -170.8801 Td +0 -227.8399 Td (mpsearch 5556) 56.7907 Tj -13543.7 TJm -(0150 1610 1669 1760) 83.0018 Tj -17.4613 -180.3735 Td +(0150 1610 1669 1745) 83.0018 Tj +17.4613 -237.3332 Td (5556 5585) 39.3166 Tj -13543.8 TJm (1918 2057 2080 2129) 83.0018 Tj -0 -189.8664 Td +0 -246.8266 Td (mpsearch1 5537) 61.1592 Tj -13042 TJm (2162) 17.4741 Tj -17.4613 -199.3598 Td +17.4613 -256.32 Td (5537 5564 5568 5571) 83.0018 Tj -6520.6 TJm (NSEGS 1508) 43.6851 Tj -0 -208.8532 Td +0 -265.8133 Td (namecmp 4203) 52.4222 Tj -14045.3 TJm (1508 1561) 39.3166 Tj -17.4613 -218.3465 Td +17.4613 -275.3067 Td (0244 4203 4228 4765) 83.0018 Tj -6520.6 TJm (nulterminate 7352) 74.2647 Tj -0 -227.8399 Td +0 -284.8 Td (namei 4389) 43.6851 Tj -15048.7 TJm (7215 7230 7352 7373) 83.0018 Tj -17.4613 -237.3332 Td -(0245 1826 4389 4670) 83.0018 Tj +17.4613 -294.2934 Td +(0245 1804 4389 4670) 83.0018 Tj -8527.14 TJm (7379 7380 7385 7386) 83.0018 Tj -17.4613 -246.8266 Td +17.4613 -303.7868 Td (4865 4935 5021) 61.1592 Tj -11035.5 TJm (7391) 17.4741 Tj -0 -256.32 Td +0 -313.2801 Td (nameiparent 4396) 69.8962 Tj -10032.1 TJm (NUMLOCK 6113) 52.4222 Tj -17.4613 -265.8133 Td +17.4613 -322.7735 Td (0246 4354 4369 4381) 83.0018 Tj -8527.14 TJm (6113 6146) 39.3166 Tj -17.4613 -275.3067 Td +17.4613 -332.2668 Td (4396 4681 4760 4807) 83.0018 Tj -6520.6 TJm -(O_CREATE 3053) 56.7907 Tj -0 -284.8 Td +(outb 0421) 39.3166 Tj +0 -341.7602 Td (namex 4354) 43.6851 Tj -15048.7 TJm -(3053 4861 7278 7281) 83.0018 Tj -17.4613 -294.2934 Td +(0421 0933 0941 1164) 83.0018 Tj +17.4613 -351.2536 Td (4354 4392 4398) 61.1592 Tj --9028.94 TJm -(O_RDONLY 3050) 56.7907 Tj -0 -303.7868 Td +-11035.5 TJm +(1165 1166 1167 1168) 83.0018 Tj +0 -360.7469 Td (NBUF 0156) 39.3166 Tj -15550.3 TJm -(3050 4868 7275) 61.1592 Tj -17.4613 -313.2801 Td +(1169 3361 3370 3381) 83.0018 Tj +17.4613 -370.2403 Td (0156 3531 3553) 61.1592 Tj --9028.94 TJm -(O_RDWR 3052) 48.0537 Tj -0 -322.7735 Td -(ncpu 5515) 39.3166 Tj --15550.3 TJm -(3052 4886 6814 6816) 83.0018 Tj -17.4613 -332.2664 Td -(1224 1278 1569 3357) 83.0018 Tj --8527.14 TJm -(7007) 17.4741 Tj -17.4613 -341.7598 Td -(5515 5609 5620 5622) 83.0018 Tj --6520.6 TJm -(outb 0421) 39.3166 Tj -17.4613 -351.2532 Td -(5623) 17.4741 Tj --16052.1 TJm -(0421 0933 0941 1164) 83.0018 Tj -0 -360.7465 Td +-11035.5 TJm +(3382 3383 3384 3385) 83.0018 Tj +0 -379.7336 Td (NCPU 0153) 39.3166 Tj -15550.3 TJm -(1165 1166 1167 1168) 83.0018 Tj -17.4613 -370.2399 Td +(3386 3388 3391 5646) 83.0018 Tj +17.4613 -389.227 Td (0153 1568 5512) 61.1592 Tj -11035.5 TJm -(1169 3361 3370 3381) 83.0018 Tj -0 -379.7332 Td -(NDEV 0158) 39.3166 Tj +(5647 5813 5814 5970) 83.0018 Tj +0 -398.7204 Td +(ncpu 5515) 39.3166 Tj -15550.3 TJm -(3382 3383 3384 3385) 83.0018 Tj -17.4613 -389.2266 Td -(0158 4108 4158 4406) 83.0018 Tj --8527.14 TJm -(3386 3388 3391 5645) 83.0018 Tj -0 -398.72 Td -(NDIRECT 3167) 52.4222 Tj --14045.3 TJm -(5646 5813 5814 5970) 83.0018 Tj -17.4613 -408.2133 Td -(3167 3169 3178 3274) 83.0018 Tj --8527.14 TJm (5971 5985 5986 5994) 83.0018 Tj -17.4613 -417.7067 Td -(4015 4020 4024 4025) 83.0018 Tj +17.4613 -408.2137 Td +(1224 1278 1569 3357) 83.0018 Tj -8527.14 TJm (5997 6002 6012 6015) 83.0018 Tj -17.4613 -427.2 Td -(4060 4067 4068 4075) 83.0018 Tj +17.4613 -417.7071 Td +(5515 5618 5619 5623) 83.0018 Tj -8527.14 TJm (6016 6017 6020 6026) 83.0018 Tj -17.4613 -436.6934 Td -(4076) 17.4741 Tj --16052.1 TJm +17.4613 -427.2004 Td +(5624 5625) 39.3166 Tj +-13543.8 TJm (6027 6029 6030 6460) 83.0018 Tj -0 -446.1868 Td -(NELEM 0362) 43.6851 Tj --15048.7 TJm +0 -436.6938 Td +(NDEV 0158) 39.3166 Tj +-15550.3 TJm (6462 6479 6480 6481) 83.0018 Tj -17.4613 -455.6801 Td -(0362 1672 2879 4961) 83.0018 Tj +17.4613 -446.1872 Td +(0158 4108 4158 4407) 83.0018 Tj -8527.14 TJm (6482 6677 6678 6679) 83.0018 Tj -0 -465.1735 Td -(nextpid 1615) 52.4222 Tj +0 -455.6805 Td +(NDIRECT 3167) 52.4222 Tj -12038.8 TJm (outsl 0433) 43.6851 Tj -17.4613 -474.6665 Td -(1615 1768) 39.3166 Tj --13543.8 TJm +17.4613 -465.1739 Td +(3167 3169 3178 3274) 83.0018 Tj +-8527.14 TJm (0433 0435 3389) 61.1592 Tj -0 -484.1598 Td -(NFILE 0155) 43.6851 Tj --13042.1 TJm +17.4613 -474.6672 Td +(4015 4020 4024 4025) 83.0018 Tj +-6520.6 TJm (outw 0427) 39.3166 Tj -17.4613 -493.6532 Td -(0155 4409 4425) 61.1592 Tj --11035.5 TJm +17.4613 -484.1606 Td +(4060 4067 4068 4075) 83.0018 Tj +-8527.14 TJm (0427 0982 0984 1082) 83.0018 Tj +17.4613 -493.654 Td +(4076) 17.4741 Tj +-16052.1 TJm +(1084) 17.4741 Tj Q Q q @@ -2876,207 +2876,207 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 8) 187.8461 Tj -17.4613 -28.4801 Td -(1084) 17.4741 Tj --14045.6 TJm -(picsetmask 5967) 65.5277 Tj -0 -37.9735 Td -(O_WRONLY 3051) 56.7907 Tj +(Aug 30 21:46 2009 cross-references Page 8) 187.8461 Tj +0 -28.4801 Td +(O_CREATE 3053) 56.7907 Tj -13543.7 TJm -(5967 5977 6033) 61.1592 Tj -17.4613 -47.4664 Td -(3051 4885 4886 7278) 83.0018 Tj --6520.6 TJm -(pinit 1620) 43.6851 Tj +(7256 7269 7305 7309) 83.0018 Tj +17.4613 -37.9735 Td +(3053 4861 7278 7281) 83.0018 Tj +-8527.14 TJm +(7324 7332) 39.3166 Tj +0 -47.4664 Td +(O_RDONLY 3050) 56.7907 Tj +-11537.1 TJm +(picenable 5975) 61.1592 Tj 17.4613 -56.9598 Td -(7281) 17.4741 Tj --16052.1 TJm -(0306 1227 1620) 61.1592 Tj +(3050 4868 7275) 61.1592 Tj +-11035.5 TJm +(0283 3356 5975 6625) 83.0018 Tj 0 -66.4531 Td -(PAGE 0151) 39.3166 Tj --13543.8 TJm -(pipe 5160) 39.3166 Tj +(O_RDWR 3052) 48.0537 Tj +-14547 TJm +(6680) 17.4741 Tj 17.4613 -75.9465 Td -(0151 0152 1811 2284) 83.0018 Tj --8527.14 TJm -(0204 0288 0289 0290) 83.0018 Tj +(3052 4886 6814 6816) 83.0018 Tj +-6520.6 TJm +(picinit 5982) 52.4222 Tj 17.4613 -85.4399 Td -(2285 2309 2359 5054) 83.0018 Tj +(7007) 17.4741 Tj +-16052.1 TJm +(0284 1220 5982) 61.1592 Tj +0 -94.9332 Td +(O_WRONLY 3051) 56.7907 Tj +-11537.1 TJm +(picsetmask 5967) 65.5277 Tj +17.4613 -104.4266 Td +(3051 4885 4886 7278) 83.0018 Tj -8527.14 TJm -(3255 4469 4509 4529) 83.0018 Tj -17.4613 -94.9332 Td -(5057 5178 5202 5223) 83.0018 Tj --8527.14 TJm -(5160 5172 5178 5184) 83.0018 Tj -0 -104.4266 Td -(panic 6401 7032) 65.5277 Tj --12540.3 TJm -(5188 5192 5211 5230) 83.0018 Tj +(5967 5977 6033) 61.1592 Tj 17.4613 -113.9199 Td -(0219 1377 1405 1469) 83.0018 Tj --8527.14 TJm -(5251 6763 6952 6953) 83.0018 Tj -17.4613 -123.4133 Td -(1471 1958 1960 1962) 83.0018 Tj +(7281) 17.4741 Tj +-14045.6 TJm +(pinit 1620) 43.6851 Tj +0 -123.4133 Td +(PAGE 0151) 39.3166 Tj +-15550.3 TJm +(0306 1227 1620) 61.1592 Tj +17.4613 -132.9067 Td +(0151 0152 1789 2284) 83.0018 Tj -6520.6 TJm (PIPE 6859) 39.3166 Tj -17.4613 -132.9067 Td -(1964 2006 2009 2110) 83.0018 Tj +17.4613 -142.4 Td +(2285 2309 2359 5054) 83.0018 Tj -8527.14 TJm (6859 6950 7086 7377) 83.0018 Tj -17.4613 -142.4 Td -(2140 2310 2321 2360) 83.0018 Tj --6520.6 TJm -(pipealloc 5170) 61.1592 Tj 17.4613 -151.8934 Td -(2647 3378 3459 3461) 83.0018 Tj +(5057 5179 5202 5223) 83.0018 Tj +-6520.6 TJm +(pipe 5161) 39.3166 Tj +0 -161.3867 Td +(panic 6401 7032) 65.5277 Tj +-12540.3 TJm +(0204 0288 0289 0290) 83.0018 Tj +17.4613 -170.8801 Td +(0219 1377 1405 1469) 83.0018 Tj -8527.14 TJm -(0287 4984 5170) 61.1592 Tj -17.4613 -161.3867 Td +(3255 4469 4509 4529) 83.0018 Tj +17.4613 -180.3735 Td +(1471 1958 1960 1962) 83.0018 Tj +-8527.14 TJm +(5161 5173 5179 5185) 83.0018 Tj +17.4613 -189.8668 Td +(1964 2006 2009 2110) 83.0018 Tj +-8527.14 TJm +(5189 5193 5211 5230) 83.0018 Tj +17.4613 -199.3602 Td +(2140 2310 2321 2360) 83.0018 Tj +-8527.14 TJm +(5251 6763 6952 6953) 83.0018 Tj +17.4613 -208.8535 Td +(2647 3378 3459 3461) 83.0018 Tj +-6520.6 TJm +(pipealloc 5171) 61.1592 Tj +17.4613 -218.3469 Td (3463 3596 3617 3627) 83.0018 Tj +-8527.14 TJm +(0287 4984 5171) 61.1592 Tj +17.4613 -227.8403 Td +(3725 3743 3822 3873) 83.0018 Tj -6520.6 TJm (pipeclose 5211) 61.1592 Tj -17.4613 -170.8801 Td -(3725 3743 3822 3873) 83.0018 Tj +17.4613 -237.3336 Td +(3908 3928 3937 3958) 83.0018 Tj -8527.14 TJm (0288 4469 5211) 61.1592 Tj -17.4613 -180.3735 Td -(3908 3928 3937 3958) 83.0018 Tj +17.4613 -246.827 Td +(4036 4219 4267 4275) 83.0018 Tj -6520.6 TJm (pipecmd 6884 7080) 74.2647 Tj -17.4613 -189.8668 Td -(4036 4219 4267 4275) 83.0018 Tj +17.4613 -256.3203 Td +(4443 4458 4517 4537) 83.0018 Tj -8527.14 TJm (6884 6912 6951 7080) 83.0018 Tj -17.4613 -199.3602 Td -(4442 4458 4517 4537) 83.0018 Tj +17.4613 -265.8137 Td +(4709 4777 4786 4821) 83.0018 Tj -8527.14 TJm (7082 7258 7358 7378) 83.0018 Tj -17.4613 -208.8535 Td -(4709 4777 4786 4821) 83.0018 Tj +17.4613 -275.3071 Td +(4834 4838 5620 5640) 83.0018 Tj -6520.6 TJm (piperead 5251) 56.7907 Tj -17.4613 -218.3469 Td -(4834 4838 5638 6401) 83.0018 Tj +17.4613 -284.8004 Td +(6401 6408 6901 6920) 83.0018 Tj -8527.14 TJm (0289 4509 5251) 61.1592 Tj -17.4613 -227.8403 Td -(6408 6901 6920 6953) 83.0018 Tj +17.4613 -294.2938 Td +(6953 7032 7045 7228) 83.0018 Tj -6520.6 TJm -(PIPESIZE 5158) 56.7907 Tj -17.4613 -237.3336 Td -(7032 7045 7228 7272) 83.0018 Tj --8527.14 TJm -(5158 5162 5236 5244) 83.0018 Tj -17.4613 -246.827 Td -(7306 7310 7336 7341) 83.0018 Tj +(PIPESIZE 5159) 56.7907 Tj +17.4613 -303.7871 Td +(7272 7306 7310 7336) 83.0018 Tj -8527.14 TJm +(5159 5163 5236 5244) 83.0018 Tj +17.4613 -313.2805 Td +(7341) 17.4741 Tj +-16052.1 TJm (5266) 17.4741 Tj -0 -256.3203 Td -(panicked 6316) 56.7907 Tj +0 -322.7739 Td +(panicked 6317) 56.7907 Tj -11537.1 TJm (pipewrite 5230) 61.1592 Tj -17.4613 -265.8137 Td -(6316 6414 6489) 61.1592 Tj +17.4613 -332.2668 Td +(6317 6414 6489) 61.1592 Tj -11035.5 TJm (0290 4529 5230) 61.1592 Tj -0 -275.3071 Td +0 -341.7602 Td (parseblock 7301) 65.5277 Tj -10533.8 TJm (popcli 1466) 48.0537 Tj -17.4613 -284.8004 Td +17.4613 -351.2536 Td (7301 7306 7325) 61.1592 Tj -11035.5 TJm (0327 1421 1466 1469) 83.0018 Tj -0 -294.2938 Td +0 -360.7469 Td (parsecmd 7218) 56.7907 Tj -13543.7 TJm -(1471 1732) 39.3166 Tj -17.4613 -303.7871 Td +(1471 1731) 39.3166 Tj +17.4613 -370.2403 Td (6902 7025 7218) 61.1592 Tj -9028.94 TJm -(printint 6324) 56.7907 Tj -0 -313.2805 Td +(printint 6325) 56.7907 Tj +0 -379.7336 Td (parseexec 7317) 61.1592 Tj -13042 TJm -(6324 6374 6378) 61.1592 Tj -17.4613 -322.7739 Td +(6325 6374 6378) 61.1592 Tj +17.4613 -389.227 Td (7214 7255 7317) 61.1592 Tj -9028.94 TJm (proc 1529) 39.3166 Tj -0 -332.2668 Td +0 -398.7204 Td (parseline 7235) 61.1592 Tj -13042 TJm (0205 0301 0342 0343) 83.0018 Tj -17.4613 -341.7602 Td +17.4613 -408.2137 Td (7212 7224 7235 7246) 83.0018 Tj -8527.14 TJm (1204 1208 1357 1529) 83.0018 Tj -17.4613 -351.2536 Td +17.4613 -417.7071 Td (7308) 17.4741 Tj -16052.1 TJm (1535 1578 1605 1610) 83.0018 Tj -0 -360.7469 Td +0 -427.2004 Td (parsepipe 7251) 61.1592 Tj -13042 TJm -(1613 1665 1669 1753) 83.0018 Tj -17.4613 -370.2403 Td +(1613 1665 1669 1716) 83.0018 Tj +17.4613 -436.6938 Td (7213 7239 7251 7258) 83.0018 Tj -8527.14 TJm -(1756 1760 1804 1857) 83.0018 Tj -0 -379.7336 Td +(1724 1725 1729 1738) 83.0018 Tj +0 -446.1872 Td (parseredirs 7264) 69.8962 Tj -12038.7 TJm -(1910 1918 2055 2057) 83.0018 Tj -17.4613 -389.227 Td +(1741 1745 1782 1816) 83.0018 Tj +17.4613 -455.6805 Td (7264 7312 7331 7342) 83.0018 Tj -8527.14 TJm -(2077 2080 2106 2129) 83.0018 Tj -0 -398.7204 Td +(1819 1820 1821 1822) 83.0018 Tj +0 -465.1739 Td (PCINT 5678) 43.6851 Tj -15048.7 TJm -(2155 2162 2554 2650) 83.0018 Tj -17.4613 -408.2137 Td +(1823 1835 1842 1849) 83.0018 Tj +17.4613 -474.6668 Td (5678 5724) 39.3166 Tj -13543.8 TJm -(2754 2766 2778 2905) 83.0018 Tj -0 -417.7071 Td +(1850 1851 1857 1858) 83.0018 Tj +0 -484.1602 Td (peek 7201) 39.3166 Tj -15550.3 TJm -(3306 3667 4555 5003) 83.0018 Tj -17.4613 -427.2004 Td +(1859 1910 1918 1925) 83.0018 Tj +17.4613 -493.6536 Td (7201 7225 7240 7244) 83.0018 Tj -8527.14 TJm -(5154 5510 5606 5619) 83.0018 Tj -17.4613 -436.6938 Td -(7256 7269 7305 7309) 83.0018 Tj --8527.14 TJm -(5620 5621 6311) 61.1592 Tj -17.4613 -446.1872 Td -(7324 7332) 39.3166 Tj --11537.3 TJm -(procdump 1654) 56.7907 Tj -0 -455.6805 Td -(picenable 5975) 61.1592 Tj --13042 TJm -(0307 1654 6520) 61.1592 Tj -17.4613 -465.1739 Td -(0283 3356 5975 6625) 83.0018 Tj --6520.6 TJm -(proghdr 0874) 52.4222 Tj -17.4613 -474.6672 Td -(6680) 17.4741 Tj --16052.1 TJm -(0874 1119 1133 5016) 83.0018 Tj -0 -484.1606 Td -(picinit 5982) 52.4222 Tj --12038.8 TJm -(pushcli 1455) 52.4222 Tj -17.4613 -493.654 Td -(0284 1220 5982) 61.1592 Tj --11035.5 TJm -(0326 1375 1455 1724) 83.0018 Tj +(1928 1932 1961 1967) 83.0018 Tj Q Q Q @@ -3124,207 +3124,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 9) 187.8461 Tj -0 -28.4801 Td +(Aug 30 21:46 2009 cross-references Page 9) 187.8461 Tj +17.4613 -28.4801 Td +(1976 2005 2023 2024) 83.0018 Tj +-8527.14 TJm +(5932) 17.4741 Tj +17.4613 -37.9735 Td +(2028 2055 2057 2077) 83.0018 Tj +-6520.6 TJm +(REG_VER 5861) 52.4222 Tj +17.4613 -47.4668 Td +(2080 2106 2109 2114) 83.0018 Tj +-8527.14 TJm +(5861 5909) 39.3166 Tj +17.4613 -56.9602 Td +(2115 2116 2120 2121) 83.0018 Tj +-6520.6 TJm +(release 1402) 52.4222 Tj +17.4613 -66.4535 Td +(2126 2129 2130 2138) 83.0018 Tj +-8527.14 TJm +(0325 1402 1405 1748) 83.0018 Tj +17.4613 -75.9469 Td +(2155 2162 2163 2182) 83.0018 Tj +-8527.14 TJm +(1753 1934 1978 1987) 83.0018 Tj +17.4613 -85.4403 Td +(2188 2554 2604 2606) 83.0018 Tj +-8527.14 TJm +(2019 2032 2068 2086) 83.0018 Tj +17.4613 -94.9336 Td +(2608 2643 2650 2651) 83.0018 Tj +-8527.14 TJm +(2090 2176 2183 2343) 83.0018 Tj +17.4613 -104.427 Td +(2652 2658 2663 2667) 83.0018 Tj +-8527.14 TJm +(2369 2373 2619 2975) 83.0018 Tj +17.4613 -113.9203 Td +(2754 2766 2778 2796) 83.0018 Tj +-8527.14 TJm +(2980 3409 3428 3482) 83.0018 Tj +17.4613 -123.4137 Td +(2810 2812 2826 2878) 83.0018 Tj +-8527.14 TJm +(3578 3592 3641 3864) 83.0018 Tj +17.4613 -132.9071 Td +(2880 2883 2884 2905) 83.0018 Tj +-8527.14 TJm +(3880 3892 3914 3942) 83.0018 Tj +17.4613 -142.4004 Td +(2939 2958 2974 3306) 83.0018 Tj +-8527.14 TJm +(3960 3969 4429 4433) 83.0018 Tj +17.4613 -151.8938 Td +(3667 4361 4555 4570) 83.0018 Tj +-8527.14 TJm +(4445 4460 4466 5222) 83.0018 Tj +17.4613 -161.3871 Td +(4587 4588 4646 4943) 83.0018 Tj +-8527.14 TJm +(5225 5238 5247 5258) 83.0018 Tj +17.4613 -170.8805 Td +(4944 4963 4969 4989) 83.0018 Tj +-8527.14 TJm +(5269 6398 6547 6562) 83.0018 Tj +17.4613 -180.3739 Td +(5003 5104 5107 5108) 83.0018 Tj +-8527.14 TJm +(6582 6609) 39.3166 Tj +17.4613 -189.8672 Td +(5109 5110 5111 5154) 83.0018 Tj +-6520.6 TJm +(ROOTDEV 0159) 52.4222 Tj +17.4613 -199.3606 Td +(5237 5257 5510 5606) 83.0018 Tj +-8527.14 TJm +(0159 4359) 39.3166 Tj +17.4613 -208.8539 Td +(5617 5618 5619 5622) 83.0018 Tj +-6520.6 TJm +(ROOTINO 3157) 52.4222 Tj +17.4613 -218.3473 Td +(6312 6561) 39.3166 Tj +-13543.8 TJm +(3157 4359) 39.3166 Tj +0 -227.8407 Td +(procdump 1654) 56.7907 Tj +-11537.1 TJm +(run 2262) 34.9481 Tj +17.4613 -237.334 Td +(0307 1654 6520) 61.1592 Tj +-11035.5 TJm +(1661 2262 2263 2269) 83.0018 Tj +0 -246.8274 Td +(proghdr 0874) 52.4222 Tj +-14045.3 TJm +(2307 2316 2317 2319) 83.0018 Tj +17.4613 -256.3207 Td +(0874 1119 1133 5016) 83.0018 Tj +-8527.14 TJm +(2357) 17.4741 Tj +0 -265.8141 Td +(pushcli 1455) 52.4222 Tj +-12038.8 TJm +(runcmd 6906) 48.0537 Tj +17.4613 -275.3075 Td +(0326 1375 1455 1723) 83.0018 Tj +-8527.14 TJm +(6906 6920 6937 6943) 83.0018 Tj +0 -284.8008 Td (readeflags 0485) 65.5277 Tj -12540.3 TJm (6945 6959 6966 6977) 83.0018 Tj -17.4613 -37.9735 Td +17.4613 -294.2942 Td (0485 1459 1468 1963) 83.0018 Tj -8527.14 TJm (7025) 17.4741 Tj -17.4613 -47.4664 Td +17.4613 -303.7875 Td (5758) 17.4741 Tj -14045.6 TJm (RUNNING 1526) 52.4222 Tj -0 -56.9598 Td +0 -313.2809 Td (readi 4102) 43.6851 Tj -15048.7 TJm (1526 1661 1927 1961) 83.0018 Tj -17.4613 -66.4531 Td +17.4613 -322.7743 Td (0247 4102 4266 4512) 83.0018 Tj -8527.14 TJm (2663) 17.4741 Tj -17.4613 -75.9461 Td +17.4613 -332.2676 Td (4708 4709 5026 5034) 83.0018 Tj -6520.6 TJm (safestrcpy 5375) 65.5277 Tj -17.4613 -85.4391 Td +17.4613 -341.761 Td (5065 5073) 39.3166 Tj -13543.8 TJm -(0333 1825 5104 5375) 83.0018 Tj -0 -94.9324 Td +(0333 1803 5104 5375) 83.0018 Tj +0 -351.2543 Td (readsb 3678) 48.0537 Tj -12540.5 TJm (sched 1953) 43.6851 Tj -17.4613 -104.4258 Td +17.4613 -360.7477 Td (3678 3711 3738 3809) 83.0018 Tj -8527.14 TJm (1953 1958 1960 1962) 83.0018 Tj -0 -113.9192 Td +0 -370.2411 Td (readsect 1160) 56.7907 Tj -13543.7 TJm (1964 1977 2025 2139) 83.0018 Tj -17.4613 -123.4125 Td +17.4613 -379.7344 Td (1160 1195) 39.3166 Tj -11537.3 TJm (scheduler 1908) 61.1592 Tj -0 -132.9059 Td +0 -389.2278 Td (readseg 1179) 52.4222 Tj -14045.3 TJm -(0308 1263 1908) 61.1592 Tj -17.4613 -142.3992 Td +(0308 1263 1559 1908) 83.0018 Tj +17.4613 -398.7211 Td (1113 1126 1137 1179) 83.0018 Tj --6520.6 TJm -(SCROLLLOCK 6114) 65.5277 Tj -0 -151.8926 Td +-8527.14 TJm +(1928 1967) 39.3166 Tj +0 -408.2145 Td (REDIR 6858) 43.6851 Tj --15048.7 TJm -(6114 6147) 39.3166 Tj -17.4613 -161.386 Td +-13042.1 TJm +(SCROLLLOCK 6114) 65.5277 Tj +17.4613 -417.7079 Td (6858 6930 7070 7371) 83.0018 Tj --6520.6 TJm -(SECTSIZE 1111) 56.7907 Tj -0 -170.8793 Td +-8527.14 TJm +(6114 6147) 39.3166 Tj +0 -427.2012 Td (redircmd 6875 7064) 78.6333 Tj --11035.3 TJm -(1111 1173 1186 1189) 83.0018 Tj -17.4613 -180.3727 Td +-9028.81 TJm +(SECTSIZE 1111) 56.7907 Tj +17.4613 -436.6946 Td (6875 6913 6931 7064) 83.0018 Tj -8527.14 TJm -(1194) 17.4741 Tj -17.4613 -189.8657 Td +(1111 1173 1186 1189) 83.0018 Tj +17.4613 -446.1879 Td (7066 7275 7278 7281) 83.0018 Tj --6520.6 TJm -(SEG 0701) 34.9481 Tj -17.4613 -199.3586 Td +-8527.14 TJm +(1194) 17.4741 Tj +17.4613 -455.6813 Td (7359 7372) 39.3166 Tj --13543.8 TJm -(0701 1708 1709 1710) 83.0018 Tj -0 -208.852 Td +-11537.3 TJm +(SEG 0701) 34.9481 Tj +0 -465.1747 Td (REG_ID 5860) 48.0537 Tj -14547 TJm -(1725 1726) 39.3166 Tj -17.4613 -218.3453 Td +(0701 1708 1709 1710) 83.0018 Tj +17.4613 -474.6676 Td (5860 5910) 39.3166 Tj --11537.3 TJm -(SEG16 0706) 43.6851 Tj -0 -227.8387 Td +-13543.8 TJm +(1724 1725) 39.3166 Tj +0 -484.161 Td (REG_TABLE 5862) 61.1592 Tj --13042 TJm -(0706 1727) 39.3166 Tj -17.4613 -237.3321 Td +-11035.5 TJm +(SEG16 0706) 43.6851 Tj +17.4613 -493.6543 Td (5862 5917 5918 5931) 83.0018 Tj --6520.6 TJm -(SEG_ASM 0608) 52.4222 Tj -17.4613 -246.825 Td -(5932) 17.4741 Tj --16052.1 TJm -(0608 0992 0993 1092) 83.0018 Tj -0 -256.3184 Td -(REG_VER 5861) 52.4222 Tj --14045.3 TJm -(1093) 17.4741 Tj -17.4613 -265.8118 Td -(5861 5909) 39.3166 Tj --11537.3 TJm -(segdesc 0677) 52.4222 Tj -0 -275.3051 Td -(release 1402) 52.4222 Tj --14045.3 TJm -(0450 0453 0677 0701) 83.0018 Tj -17.4613 -284.7985 Td -(0325 1402 1405 1763) 83.0018 Tj -8527.14 TJm -(0706 1561) 39.3166 Tj -17.4613 -294.2914 Td -(1769 1934 1978 1987) 83.0018 Tj --6520.6 TJm -(SEG_KCODE 0907 1021 1502 2500) 126.6869 Tj -17.4613 -303.7844 Td -(2019 2032 2068 2086) 83.0018 Tj --8527.14 TJm -(0961 1061 1502 1708) 83.0018 Tj -17.4613 -313.2774 Td -(2090 2176 2183 2343) 83.0018 Tj --8527.14 TJm -(2571 2572) 39.3166 Tj -17.4613 -322.7704 Td -(2369 2373 2619 2975) 83.0018 Tj --6520.6 TJm -(SEG_KCPU 1504 2502) 78.6333 Tj -17.4613 -332.2633 Td -(2980 3409 3428 3482) 83.0018 Tj --8527.14 TJm -(1504 1710 1712 2518) 83.0018 Tj -17.4613 -341.7563 Td -(3578 3592 3641 3864) 83.0018 Tj --6520.6 TJm -(SEG_KDATA 0908 1022 1503 2501) 126.6869 Tj -17.4613 -351.2493 Td -(3880 3892 3914 3942) 83.0018 Tj --8527.14 TJm -(0966 1066 1503 1709) 83.0018 Tj -17.4613 -360.7422 Td -(3960 3969 4428 4432) 83.0018 Tj --8527.14 TJm -(1729 2515) 39.3166 Tj -17.4613 -370.2352 Td -(4444 4460 4466 5222) 83.0018 Tj --6520.6 TJm -(SEG_NULLASM 0604) 69.8962 Tj -17.4613 -379.7282 Td -(5225 5238 5247 5258) 83.0018 Tj --8527.14 TJm -(0604 0991 1091) 61.1592 Tj -17.4613 -389.2212 Td -(5269 6398 6547 6562) 83.0018 Tj --6520.6 TJm -(SEG_TSS 1507) 52.4222 Tj -17.4613 -398.7141 Td -(6582 6609) 39.3166 Tj --13543.8 TJm -(1507 1727 1728 1731) 83.0018 Tj -0 -408.2075 Td -(ROOTDEV 0159) 52.4222 Tj --12038.8 TJm -(SEG_UCODE 1505) 61.1592 Tj -17.4613 -417.7008 Td -(0159 4359) 39.3166 Tj --13543.8 TJm -(1505 1725 1817) 61.1592 Tj -0 -427.1942 Td -(ROOTINO 3157) 52.4222 Tj --12038.8 TJm -(SEG_UDATA 1506) 61.1592 Tj -17.4613 -436.6876 Td -(3157 4359) 39.3166 Tj --13543.8 TJm -(1506 1726 1818) 61.1592 Tj -0 -446.1809 Td -(run 2262) 34.9481 Tj --14045.5 TJm -(SETGATE 0821) 52.4222 Tj -17.4613 -455.6743 Td -(1661 2262 2263 2269) 83.0018 Tj --8527.14 TJm -(0821 2571 2572) 61.1592 Tj -17.4613 -465.1673 Td -(2307 2316 2317 2319) 83.0018 Tj --6520.6 TJm -(SHIFT 6108) 43.6851 Tj -17.4613 -474.6602 Td -(2357) 17.4741 Tj --16052.1 TJm -(6108 6136 6137 6285) 83.0018 Tj -0 -484.1536 Td -(runcmd 6906) 48.0537 Tj --12540.5 TJm -(skipelem 4315) 56.7907 Tj -17.4613 -493.6469 Td -(6906 6920 6937 6943) 83.0018 Tj --8527.14 TJm -(4315 4363) 39.3166 Tj +(0706 1726) 39.3166 Tj Q Q q @@ -3341,207 +3341,207 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 10) 192.2146 Tj +(Aug 30 21:46 2009 cross-references Page 10) 192.2146 Tj 0 -28.4801 Td +(segdesc 0677) 52.4222 Tj +-14045.3 TJm +(4654 6803) 39.3166 Tj +17.4613 -37.9735 Td +(0450 0453 0677 0701) 83.0018 Tj +-6520.6 TJm +(stati 4085) 43.6851 Tj +17.4613 -47.4664 Td +(0706 1561) 39.3166 Tj +-13543.8 TJm +(0248 4085 4480) 61.1592 Tj +0 -56.9598 Td +(SEG_ASM 0608) 52.4222 Tj +-12038.8 TJm +(STA_R 0617 0718) 65.5277 Tj +17.4613 -66.4531 Td +(0608 0992 0993 1092) 83.0018 Tj +-8527.14 TJm +(0617 0718 0992 1092) 83.0018 Tj +17.4613 -75.9461 Td +(1093) 17.4741 Tj +-16052.1 TJm +(1708 1724) 39.3166 Tj +0 -85.4395 Td +(SEG_KCODE 0907 1021 1502 2500) 126.6869 Tj +-3510.47 TJm +(STA_W 0616 0717) 65.5277 Tj +17.4613 -94.9328 Td +(0961 1061 1502 1708) 83.0018 Tj +-8527.14 TJm +(0616 0717 0993 1093) 83.0018 Tj +17.4613 -104.4258 Td +(2571 2572) 39.3166 Tj +-13543.8 TJm +(1709 1710 1725) 61.1592 Tj +0 -113.9192 Td +(SEG_KCPU 1504 2502) 78.6333 Tj +-9028.81 TJm +(STA_X 0613 0714) 65.5277 Tj +17.4613 -123.4125 Td +(1504 1710 1712 2518) 83.0018 Tj +-8527.14 TJm +(0613 0714 0992 1092) 83.0018 Tj +0 -132.9059 Td +(SEG_KDATA 0908 1022 1503 2501) 126.6869 Tj +-5517.01 TJm +(1708 1724) 39.3166 Tj +17.4613 -142.3992 Td +(0966 1066 1503 1709) 83.0018 Tj +-6520.6 TJm +(sti 0527) 34.9481 Tj +17.4613 -151.8922 Td +(1728 2515) 39.3166 Tj +-13543.8 TJm +(0527 0529 1473 1914) 83.0018 Tj +0 -161.3856 Td +(SEG_NULLASM 0604) 69.8962 Tj +-10032.1 TJm +(stosb 0442) 43.6851 Tj +17.4613 -170.8789 Td +(0604 0991 1091) 61.1592 Tj +-11035.5 TJm +(0442 0444 1139 5306) 83.0018 Tj +0 -180.3723 Td +(SEG_TSS 1507) 52.4222 Tj +-12038.8 TJm +(strlen 5389) 48.0537 Tj +17.4613 -189.8653 Td +(1507 1726 1727 1730) 83.0018 Tj +-8527.14 TJm +(0334 5046 5086 5389) 83.0018 Tj +0 -199.3586 Td +(SEG_UCODE 1505) 61.1592 Tj +-13042 TJm +(7019 7223) 39.3166 Tj +17.4613 -208.852 Td +(1505 1724 1795) 61.1592 Tj +-9028.94 TJm +(strncmp 5351) 52.4222 Tj +0 -218.3453 Td +(SEG_UDATA 1506) 61.1592 Tj +-13042 TJm +(0335 4205 5351) 61.1592 Tj +17.4613 -227.8387 Td +(1506 1725 1796) 61.1592 Tj +-9028.94 TJm +(strncpy 5361) 52.4222 Tj +0 -237.3321 Td +(SETGATE 0821) 52.4222 Tj +-14045.3 TJm +(0336 4272 5361) 61.1592 Tj +17.4613 -246.8254 Td +(0821 2571 2572) 61.1592 Tj +-9028.94 TJm +(STS_IG32 0732) 56.7907 Tj +0 -256.3188 Td +(SHIFT 6108) 43.6851 Tj +-15048.7 TJm +(0732 0827) 39.3166 Tj +17.4613 -265.8121 Td +(6108 6136 6137 6285) 83.0018 Tj +-6520.6 TJm +(STS_T32A 0729) 56.7907 Tj +0 -275.3055 Td +(skipelem 4315) 56.7907 Tj +-13543.7 TJm +(0729 1726) 39.3166 Tj +17.4613 -284.7989 Td +(4315 4363) 39.3166 Tj +-11537.3 TJm +(STS_TG32 0733) 56.7907 Tj +0 -294.2922 Td (sleep 2003) 43.6851 Tj -15048.7 TJm (0733 0827) 39.3166 Tj -17.4613 -37.9735 Td +17.4613 -303.7856 Td (0311 1659 2003 2006) 83.0018 Tj -6520.6 TJm (sum 5525) 34.9481 Tj -17.4613 -47.4664 Td +17.4613 -313.2786 Td (2009 2188 2978 3480) 83.0018 Tj -8527.14 TJm (5525 5527 5529 5531) 83.0018 Tj -17.4613 -56.9594 Td +17.4613 -322.7715 Td (3581 3912 5242 5261) 83.0018 Tj -8527.14 TJm (5532 5543 5592) 61.1592 Tj -17.4613 -66.4524 Td +17.4613 -332.2645 Td (6566 6779) 39.3166 Tj -11537.3 TJm (superblock 3161) 65.5277 Tj -0 -75.9457 Td +0 -341.7579 Td (spinlock 1301) 56.7907 Tj -13543.7 TJm (3161 3678 3708 3733) 83.0018 Tj -17.4613 -85.4391 Td +17.4613 -351.2512 Td (0206 0311 0321 0323) 83.0018 Tj -8527.14 TJm (3807) 17.4741 Tj -17.4613 -94.9321 Td +17.4613 -360.7442 Td (0324 0325 0354 1301) 83.0018 Tj -6520.6 TJm (SVR 5664) 34.9481 Tj -17.4613 -104.425 Td +17.4613 -370.2372 Td (1358 1361 1373 1402) 83.0018 Tj -8527.14 TJm (5664 5707) 39.3166 Tj -17.4613 -113.918 Td +17.4613 -379.7301 Td (1444 1606 1609 2003) 83.0018 Tj -6520.6 TJm (swtch 2208) 43.6851 Tj -17.4613 -123.411 Td +17.4613 -389.2231 Td (2260 2268 2557 2562) 83.0018 Tj -8527.14 TJm (0318 1928 1967 2207) 83.0018 Tj -17.4613 -132.9039 Td +17.4613 -398.7161 Td (3309 3324 3526 3530) 83.0018 Tj -8527.14 TJm (2208) 17.4741 Tj -17.4613 -142.3969 Td -(3668 3784 4404 4408) 83.0018 Tj +17.4613 -408.209 Td +(3668 3784 4405 4409) 83.0018 Tj -6520.6 TJm -(syscall 2874) 52.4222 Tj -17.4613 -151.8899 Td -(5156 5161 6308 6319) 83.0018 Tj --8527.14 TJm -(0344 2607 2756 2874) 83.0018 Tj -17.4613 -161.3829 Td -(6502) 17.4741 Tj --14045.6 TJm (SYSCALL 6753 6760 6761 6762 6763 67) 152.898 Tj -0 -170.8762 Td -(STA_R 0617 0718) 65.5277 Tj --12540.3 TJm -(6760 6761 6762 6763) 83.0018 Tj -17.4613 -180.3696 Td -(0617 0718 0992 1092) 83.0018 Tj +17.4613 -417.702 Td +(5157 5162 6308 6320) 83.0018 Tj -8527.14 TJm +(6760 6761 6762 6763) 83.0018 Tj +17.4613 -427.195 Td +(6502) 17.4741 Tj +-16052.1 TJm (6764 6765 6766 6767) 83.0018 Tj -17.4613 -189.8625 Td -(1708 1725) 39.3166 Tj --13543.8 TJm -(6768 6769 6770 6771) 83.0018 Tj -0 -199.3559 Td +0 -436.6883 Td (start 0914 1028 6707) 87.3703 Tj -10032 TJm -(6772 6773 6774 6775) 83.0018 Tj -17.4613 -208.8493 Td +(6768 6769 6770 6771) 83.0018 Tj +17.4613 -446.1817 Td (0913 0914 0975 1027) 83.0018 Tj -8527.14 TJm -(6776 6777 6778 6779) 83.0018 Tj -17.4613 -218.3422 Td +(6772 6773 6774 6775) 83.0018 Tj +17.4613 -455.6747 Td (1028 1075 1076 6706) 83.0018 Tj --6520.6 TJm -(sys_chdir 4930) 61.1592 Tj -17.4613 -227.8352 Td +-8527.14 TJm +(6776 6777 6778 6779) 83.0018 Tj +17.4613 -465.1676 Td (6707) 17.4741 Tj --16052.1 TJm -(2829 2851 4930) 61.1592 Tj -0 -237.3286 Td +-14045.6 TJm +(syscall 2874) 52.4222 Tj +0 -474.6606 Td (stat 3104) 39.3166 Tj --13543.8 TJm -(SYS_chdir 2716) 61.1592 Tj -17.4613 -246.8219 Td +-15550.3 TJm +(0344 2607 2756 2874) 83.0018 Tj +17.4613 -484.154 Td (0207 0230 0248 3104) 83.0018 Tj +-6520.6 TJm +(SYS_chdir 2716) 61.1592 Tj +17.4613 -493.6469 Td +(3665 4085 4476 4553) 83.0018 Tj -8527.14 TJm (2716 2851) 39.3166 Tj -17.4613 -256.3149 Td -(3665 4085 4476 4553) 83.0018 Tj --6520.6 TJm -(sys_close 4639) 61.1592 Tj -17.4613 -265.8079 Td -(4654 6803) 39.3166 Tj --13543.8 TJm -(2830 2852 4639) 61.1592 Tj -0 -275.3012 Td -(stati 4085) 43.6851 Tj --13042.1 TJm -(SYS_close 2707) 61.1592 Tj -17.4613 -284.7946 Td -(0248 4085 4480) 61.1592 Tj --11035.5 TJm -(2707 2852) 39.3166 Tj -0 -294.2879 Td -(STA_W 0616 0717) 65.5277 Tj --10533.8 TJm -(sys_dup 4601) 52.4222 Tj -17.4613 -303.7813 Td -(0616 0717 0993 1093) 83.0018 Tj --8527.14 TJm -(2831 2853 4601) 61.1592 Tj -17.4613 -313.2743 Td -(1709 1710 1726) 61.1592 Tj --9028.94 TJm -(SYS_dup 2717) 52.4222 Tj -0 -322.7676 Td -(STA_X 0613 0714) 65.5277 Tj --12540.3 TJm -(2717 2853) 39.3166 Tj -17.4613 -332.2606 Td -(0613 0714 0992 1092) 83.0018 Tj --6520.6 TJm -(sys_exec 4951) 56.7907 Tj -17.4613 -341.7536 Td -(1708 1725) 39.3166 Tj --13543.8 TJm -(2832 2854 4951) 61.1592 Tj -0 -351.2469 Td -(sti 0527) 34.9481 Tj --14045.5 TJm -(SYS_exec 2709) 56.7907 Tj -17.4613 -360.7403 Td -(0527 0529 1473 1914) 83.0018 Tj --8527.14 TJm -(2709 2854 6711) 61.1592 Tj -0 -370.2337 Td -(stosb 0442) 43.6851 Tj --13042.1 TJm -(sys_exit 2914) 56.7907 Tj -17.4613 -379.727 Td -(0442 0444 1139 5306) 83.0018 Tj --8527.14 TJm -(2833 2855 2914) 61.1592 Tj -0 -389.2204 Td -(strlen 5389) 48.0537 Tj --12540.5 TJm -(SYS_exit 2702) 56.7907 Tj -17.4613 -398.7137 Td -(0334 5046 5086 5389) 83.0018 Tj --8527.14 TJm -(2702 2855 6716) 61.1592 Tj -17.4613 -408.2067 Td -(7019 7223) 39.3166 Tj --11537.3 TJm -(sys_fork 2908) 56.7907 Tj -0 -417.7001 Td -(strncmp 5351) 52.4222 Tj --14045.3 TJm -(2834 2856 2908) 61.1592 Tj -17.4613 -427.1934 Td -(0335 4205 5351) 61.1592 Tj --9028.94 TJm -(SYS_fork 2701) 56.7907 Tj -0 -436.6868 Td -(strncpy 5361) 52.4222 Tj --14045.3 TJm -(2701 2856) 39.3166 Tj -17.4613 -446.1801 Td -(0336 4272 5361) 61.1592 Tj --9028.94 TJm -(sys_fstat 4651) 61.1592 Tj -0 -455.6735 Td -(STS_IG32 0732) 56.7907 Tj --13543.7 TJm -(2835 2857 4651) 61.1592 Tj -17.4613 -465.1669 Td -(0732 0827) 39.3166 Tj --11537.3 TJm -(SYS_fstat 2713) 61.1592 Tj -0 -474.6598 Td -(STS_T32A 0729) 56.7907 Tj --13543.7 TJm -(2713 2857) 39.3166 Tj -17.4613 -484.1532 Td -(0729 1727) 39.3166 Tj --11537.3 TJm -(sys_getpid 2937) 65.5277 Tj -0 -493.6466 Td -(STS_TG32 0733) 56.7907 Tj --13543.7 TJm -(2836 2858 2937) 61.1592 Tj Q Q Q @@ -3589,207 +3589,207 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 11) 192.2146 Tj +(Aug 30 21:46 2009 cross-references Page 11) 192.2146 Tj 0 -28.4801 Td +(sys_chdir 4930) 61.1592 Tj +-11035.5 TJm +(SYS_pipe 2704) 56.7907 Tj +17.4613 -37.9735 Td +(2829 2851 4930) 61.1592 Tj +-11035.5 TJm +(2704 2864) 39.3166 Tj +0 -47.4664 Td +(SYS_close 2707) 61.1592 Tj +-11035.5 TJm +(sys_pipe 4976) 56.7907 Tj +17.4613 -56.9598 Td +(2707 2852) 39.3166 Tj +-13543.8 TJm +(2842 2864 4976) 61.1592 Tj +0 -66.4531 Td +(sys_close 4639) 61.1592 Tj +-11035.5 TJm +(SYS_read 2706) 56.7907 Tj +17.4613 -75.9465 Td +(2830 2852 4639) 61.1592 Tj +-11035.5 TJm +(2706 2865) 39.3166 Tj +0 -85.4399 Td +(SYS_dup 2717) 52.4222 Tj +-12038.8 TJm +(sys_read 4615) 56.7907 Tj +17.4613 -94.9332 Td +(2717 2853) 39.3166 Tj +-13543.8 TJm +(2843 2865 4615) 61.1592 Tj +0 -104.4266 Td +(sys_dup 4601) 52.4222 Tj +-12038.8 TJm +(SYS_sbrk 2719) 56.7907 Tj +17.4613 -113.9199 Td +(2831 2853 4601) 61.1592 Tj +-11035.5 TJm +(2719 2866) 39.3166 Tj +0 -123.4133 Td +(SYS_exec 2709) 56.7907 Tj +-11537.1 TJm +(sys_sbrk 2951) 56.7907 Tj +17.4613 -132.9067 Td +(2709 2854 6711) 61.1592 Tj +-11035.5 TJm +(2844 2866 2951) 61.1592 Tj +0 -142.4 Td +(sys_exec 4951) 56.7907 Tj +-11537.1 TJm +(SYS_sleep 2720) 61.1592 Tj +17.4613 -151.8934 Td +(2832 2854 4951) 61.1592 Tj +-11035.5 TJm +(2720 2867) 39.3166 Tj +0 -161.3867 Td +(SYS_exit 2702) 56.7907 Tj +-11537.1 TJm +(sys_sleep 2965) 61.1592 Tj +17.4613 -170.8801 Td +(2702 2855 6716) 61.1592 Tj +-11035.5 TJm +(2845 2867 2965) 61.1592 Tj +0 -180.3735 Td +(sys_exit 2914) 56.7907 Tj +-11537.1 TJm +(SYS_unlink 2712) 65.5277 Tj +17.4613 -189.8664 Td +(2833 2855 2914) 61.1592 Tj +-11035.5 TJm +(2712 2868) 39.3166 Tj +0 -199.3598 Td +(SYS_fork 2701) 56.7907 Tj +-11537.1 TJm +(sys_unlink 4751) 65.5277 Tj +17.4613 -208.8532 Td +(2701 2856) 39.3166 Tj +-13543.8 TJm +(2846 2868 4751) 61.1592 Tj +0 -218.3465 Td +(sys_fork 2908) 56.7907 Tj +-11537.1 TJm +(SYS_wait 2703) 56.7907 Tj +17.4613 -227.8399 Td +(2834 2856 2908) 61.1592 Tj +-11035.5 TJm +(2703 2869) 39.3166 Tj +0 -237.3332 Td +(SYS_fstat 2713) 61.1592 Tj +-11035.5 TJm +(sys_wait 2921) 56.7907 Tj +17.4613 -246.8266 Td +(2713 2857) 39.3166 Tj +-13543.8 TJm +(2847 2869 2921) 61.1592 Tj +0 -256.32 Td +(sys_fstat 4651) 61.1592 Tj +-11035.5 TJm +(SYS_write 2705) 61.1592 Tj +17.4613 -265.8133 Td +(2835 2857 4651) 61.1592 Tj +-11035.5 TJm +(2705 2870) 39.3166 Tj +0 -275.3067 Td (SYS_getpid 2718) 65.5277 Tj -10533.8 TJm -(taskstate 0751) 61.1592 Tj -17.4613 -37.9735 Td +(sys_write 4627) 61.1592 Tj +17.4613 -284.8 Td (2718 2858) 39.3166 Tj -13543.8 TJm -(0751 1560) 39.3166 Tj -0 -47.4664 Td -(sys_kill 2927) 56.7907 Tj --11537.1 TJm -(TDCR 5685) 39.3166 Tj -17.4613 -56.9598 Td -(2837 2859 2927) 61.1592 Tj +(2848 2870 4627) 61.1592 Tj +0 -294.2934 Td +(sys_getpid 2937) 65.5277 Tj +-10533.8 TJm +(taskstate 0751) 61.1592 Tj +17.4613 -303.7868 Td +(2836 2858 2937) 61.1592 Tj -11035.5 TJm -(5685 5713) 39.3166 Tj -0 -66.4531 Td +(0751 1560) 39.3166 Tj +0 -313.2801 Td (SYS_kill 2708) 56.7907 Tj -11537.1 TJm -(T_DEV 3102) 43.6851 Tj -17.4613 -75.9465 Td +(TDCR 5685) 39.3166 Tj +17.4613 -322.7735 Td (2708 2859) 39.3166 Tj -13543.8 TJm -(3102 4107 4157 4923) 83.0018 Tj -0 -85.4399 Td -(sys_link 4663) 56.7907 Tj +(5685 5713) 39.3166 Tj +0 -332.2664 Td +(sys_kill 2927) 56.7907 Tj -11537.1 TJm -(T_DIR 3100) 43.6851 Tj -17.4613 -94.9332 Td -(2838 2860 4663) 61.1592 Tj +(ticks 2563) 43.6851 Tj +17.4613 -341.7598 Td +(2837 2859 2927) 61.1592 Tj -11035.5 TJm -(3100 4218 4365 4673) 83.0018 Tj -0 -104.4266 Td +(0352 2563 2617 2618) 83.0018 Tj +0 -351.2532 Td (SYS_link 2714) 56.7907 Tj -13543.7 TJm -(4778 4787 4829 4868) 83.0018 Tj -17.4613 -113.9199 Td -(2714 2860) 39.3166 Tj --13543.8 TJm -(4906 4938) 39.3166 Tj -0 -123.4133 Td -(sys_mkdir 4901) 61.1592 Tj --11035.5 TJm -(T_FILE 3101) 48.0537 Tj -17.4613 -132.9067 Td -(2839 2861 4901) 61.1592 Tj --11035.5 TJm -(3101 4814 4862) 61.1592 Tj -0 -142.4 Td -(SYS_mkdir 2715) 61.1592 Tj --11035.5 TJm -(ticks 2563) 43.6851 Tj -17.4613 -151.8934 Td -(2715 2861) 39.3166 Tj --13543.8 TJm -(0352 2563 2617 2618) 83.0018 Tj -0 -161.3867 Td -(sys_mknod 4913) 61.1592 Tj --13042 TJm (2972 2973 2978) 61.1592 Tj -17.4613 -170.8801 Td -(2840 2862 4913) 61.1592 Tj --9028.94 TJm +17.4613 -360.7465 Td +(2714 2860) 39.3166 Tj +-11537.3 TJm (tickslock 2562) 61.1592 Tj -0 -180.3735 Td +0 -370.2399 Td +(sys_link 4663) 56.7907 Tj +-13543.7 TJm +(0354 2562 2574 2616) 83.0018 Tj +17.4613 -379.7332 Td +(2838 2860 4663) 61.1592 Tj +-11035.5 TJm +(2619 2971 2975 2978) 83.0018 Tj +0 -389.2266 Td +(SYS_mkdir 2715) 61.1592 Tj +-13042 TJm +(2980) 17.4741 Tj +17.4613 -398.72 Td +(2715 2861) 39.3166 Tj +-11537.3 TJm +(TICR 5683) 39.3166 Tj +0 -408.2133 Td +(sys_mkdir 4901) 61.1592 Tj +-13042 TJm +(5683 5715) 39.3166 Tj +17.4613 -417.7067 Td +(2839 2861 4901) 61.1592 Tj +-9028.94 TJm +(TIMER 5675) 43.6851 Tj +0 -427.2 Td (SYS_mknod 2711) 61.1592 Tj -13042 TJm -(0354 2562 2574 2616) 83.0018 Tj -17.4613 -189.8664 Td -(2711 2862) 39.3166 Tj --13543.8 TJm -(2619 2971 2975 2978) 83.0018 Tj -0 -199.3598 Td -(sys_open 4851) 56.7907 Tj --13543.7 TJm -(2980) 17.4741 Tj -17.4613 -208.8532 Td -(2841 2863 4851) 61.1592 Tj --9028.94 TJm -(TICR 5683) 39.3166 Tj -0 -218.3465 Td -(SYS_open 2710) 56.7907 Tj --13543.7 TJm -(5683 5715) 39.3166 Tj -17.4613 -227.8399 Td -(2710 2863) 39.3166 Tj --11537.3 TJm -(TIMER 5675) 43.6851 Tj -0 -237.3332 Td -(sys_pipe 4976) 56.7907 Tj --13543.7 TJm (5675 5714) 39.3166 Tj -17.4613 -246.8266 Td -(2842 2864 4976) 61.1592 Tj --9028.94 TJm -(TIMER_16BIT 6671) 69.8962 Tj -0 -256.32 Td -(SYS_pipe 2704) 56.7907 Tj --13543.7 TJm -(6671 6677) 39.3166 Tj -17.4613 -265.8133 Td -(2704 2864) 39.3166 Tj --11537.3 TJm -(TIMER_DIV 6666) 61.1592 Tj -0 -275.3067 Td -(sys_read 4615) 56.7907 Tj --13543.7 TJm -(6666 6678 6679) 61.1592 Tj -17.4613 -284.8 Td -(2843 2865 4615) 61.1592 Tj --9028.94 TJm -(TIMER_FREQ 6665) 65.5277 Tj -0 -294.2934 Td -(SYS_read 2706) 56.7907 Tj --13543.7 TJm -(6665 6666) 39.3166 Tj -17.4613 -303.7868 Td -(2706 2865) 39.3166 Tj +17.4613 -436.6934 Td +(2711 2862) 39.3166 Tj -11537.3 TJm (timerinit 6674) 61.1592 Tj -0 -313.2801 Td -(sys_sbrk 2951) 56.7907 Tj --13543.7 TJm -(0347 1234 6674) 61.1592 Tj -17.4613 -322.7735 Td -(2844 2866 2951) 61.1592 Tj --9028.94 TJm -(TIMER_MODE 6668) 65.5277 Tj -0 -332.2664 Td -(SYS_sbrk 2719) 56.7907 Tj --13543.7 TJm -(6668 6677) 39.3166 Tj -17.4613 -341.7598 Td -(2719 2866) 39.3166 Tj --11537.3 TJm -(TIMER_RATEGEN 6670) 78.6333 Tj -0 -351.2532 Td -(sys_sleep 2965) 61.1592 Tj --13042 TJm -(6670 6677) 39.3166 Tj -17.4613 -360.7465 Td -(2845 2867 2965) 61.1592 Tj --9028.94 TJm -(TIMER_SEL0 6669) 65.5277 Tj -0 -370.2399 Td -(SYS_sleep 2720) 61.1592 Tj --13042 TJm -(6669 6677) 39.3166 Tj -17.4613 -379.7332 Td -(2720 2867) 39.3166 Tj --11537.3 TJm -(T_IRQ0 2429) 48.0537 Tj -0 -389.2266 Td -(sys_unlink 4751) 65.5277 Tj --12540.3 TJm -(2429 2614 2623 2627) 83.0018 Tj -17.4613 -398.72 Td -(2846 2868 4751) 61.1592 Tj --11035.5 TJm -(2631 2635 2636 2663) 83.0018 Tj -0 -408.2133 Td -(SYS_unlink 2712) 65.5277 Tj --12540.3 TJm -(5707 5714 5727 5917) 83.0018 Tj -17.4613 -417.7067 Td -(2712 2868) 39.3166 Tj --13543.8 TJm -(5931 5997 6016) 61.1592 Tj -0 -427.2 Td -(sys_wait 2921) 56.7907 Tj --11537.1 TJm -(TPR 5662) 34.9481 Tj -17.4613 -436.6934 Td -(2847 2869 2921) 61.1592 Tj --11035.5 TJm -(5662 5743) 39.3166 Tj 0 -446.1868 Td -(SYS_wait 2703) 56.7907 Tj --11537.1 TJm -(trap 2601) 39.3166 Tj +(sys_mknod 4913) 61.1592 Tj +-13042 TJm +(0347 1234 6674) 61.1592 Tj 17.4613 -455.6801 Td -(2703 2869) 39.3166 Tj --13543.8 TJm -(2452 2454 2524 2601) 83.0018 Tj -0 -465.1735 Td -(sys_write 4627) 61.1592 Tj --13042 TJm -(2645 2647 2650) 61.1592 Tj -17.4613 -474.6665 Td -(2848 2870 4627) 61.1592 Tj +(2840 2862 4913) 61.1592 Tj -9028.94 TJm -(trapframe 0552) 61.1592 Tj -0 -484.1598 Td -(SYS_write 2705) 61.1592 Tj --13042 TJm -(0552 1536 1780 2601) 83.0018 Tj -17.4613 -493.6532 Td -(2705 2870) 39.3166 Tj +(TIMER_16BIT 6671) 69.8962 Tj +0 -465.1735 Td +(SYS_open 2710) 56.7907 Tj +-13543.7 TJm +(6671 6677) 39.3166 Tj +17.4613 -474.6665 Td +(2710 2863) 39.3166 Tj -11537.3 TJm -(trapret 2529) 52.4222 Tj +(TIMER_DIV 6666) 61.1592 Tj +0 -484.1598 Td +(sys_open 4851) 56.7907 Tj +-13543.7 TJm +(6666 6678 6679) 61.1592 Tj +17.4613 -493.6532 Td +(2841 2863 4851) 61.1592 Tj +-9028.94 TJm +(TIMER_FREQ 6665) 65.5277 Tj Q Q q @@ -3806,73 +3806,129 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 cross-references Page 12) 192.2146 Tj +(Aug 30 21:46 2009 cross-references Page 12) 192.2146 Tj 17.4613 -28.4801 Td -(1617 1785 2528 2529) 83.0018 Tj --6520.6 TJm -(waitdisk 1151) 56.7907 Tj -0 -37.9735 Td +(6665 6666) 39.3166 Tj +-11537.3 TJm (T_SYSCALL 2426) 61.1592 Tj --13042 TJm -(1151 1163 1172) 61.1592 Tj -17.4613 -47.4664 Td +0 -37.9735 Td +(TIMER_MODE 6668) 65.5277 Tj +-12540.3 TJm (2426 2572 2603 6712) 83.0018 Tj --6520.6 TJm -(wakeup 2064) 48.0537 Tj -17.4613 -56.9598 Td -(6717 6757) 39.3166 Tj +17.4613 -47.4664 Td +(6668 6677) 39.3166 Tj -13543.8 TJm -(0314 2064 2618 3422) 83.0018 Tj -0 -66.4531 Td +(6717 6757) 39.3166 Tj +0 -56.9598 Td +(TIMER_RATEGEN 6670) 78.6333 Tj +-9028.81 TJm +(usegment 1721) 56.7907 Tj +17.4613 -66.4531 Td +(6670 6677) 39.3166 Tj +-13543.8 TJm +(0310 1721 1824 1926) 83.0018 Tj +0 -75.9465 Td +(TIMER_SEL0 6669) 65.5277 Tj +-12540.3 TJm +(5112) 17.4741 Tj +17.4613 -85.4399 Td +(6669 6677) 39.3166 Tj +-11537.3 TJm +(userinit 1780) 56.7907 Tj +0 -94.9332 Td +(TPR 5662) 34.9481 Tj +-16052 TJm +(0312 1235 1780) 61.1592 Tj +17.4613 -104.4266 Td +(5662 5743) 39.3166 Tj +-11537.3 TJm +(VER 5661) 34.9481 Tj +0 -113.9199 Td +(trap 2601) 39.3166 Tj +-15550.3 TJm +(5661 5723) 39.3166 Tj +17.4613 -123.4133 Td +(2452 2454 2524 2601) 83.0018 Tj +-6520.6 TJm +(wait 2153) 39.3166 Tj +17.4613 -132.9067 Td +(2645 2647 2650) 61.1592 Tj +-11035.5 TJm +(0313 2153 2923 6762) 83.0018 Tj +0 -142.4 Td +(trapframe 0552) 61.1592 Tj +-13042 TJm +(6833 6944 6970 6971) 83.0018 Tj +17.4613 -151.8934 Td +(0552 1536 1764 2601) 83.0018 Tj +-8527.14 TJm +(7026) 17.4741 Tj +0 -161.3867 Td +(trapret 2529) 52.4222 Tj +-12038.8 TJm +(waitdisk 1151) 56.7907 Tj +17.4613 -170.8801 Td +(1617 1769 2528 2529) 83.0018 Tj +-8527.14 TJm +(1151 1163 1172) 61.1592 Tj +0 -180.3735 Td (tvinit 2566) 48.0537 Tj --14547 TJm -(3639 3941 3966 5216) 83.0018 Tj -17.4613 -75.9465 Td +-12540.5 TJm +(wakeup 2064) 48.0537 Tj +17.4613 -189.8664 Td (0353 1228 2566) 61.1592 Tj -11035.5 TJm +(0314 2064 2618 3422) 83.0018 Tj +0 -199.3598 Td +(T_DEV 3102) 43.6851 Tj +-15048.7 TJm +(3639 3941 3966 5216) 83.0018 Tj +17.4613 -208.8532 Td +(3102 4107 4157 4923) 83.0018 Tj +-8527.14 TJm (5219 5241 5246 5268) 83.0018 Tj -0 -85.4399 Td -(usegment 1722) 56.7907 Tj --13543.7 TJm +0 -218.3465 Td +(T_DIR 3100) 43.6851 Tj +-15048.7 TJm (6541) 17.4741 Tj -17.4613 -94.9332 Td -(0310 1722 1846 1926) 83.0018 Tj +17.4613 -227.8399 Td +(3100 4218 4365 4673) 83.0018 Tj -6520.6 TJm (wakeup1 2053) 52.4222 Tj -17.4613 -104.4266 Td -(5112) 17.4741 Tj --16052.1 TJm +17.4613 -237.3332 Td +(4778 4787 4829 4868) 83.0018 Tj +-8527.14 TJm (2053 2067 2126 2133) 83.0018 Tj -0 -113.9199 Td -(userinit 1802) 56.7907 Tj --11537.1 TJm -(writei 4152) 48.0537 Tj -17.4613 -123.4133 Td -(0312 1235 1802) 61.1592 Tj --11035.5 TJm -(0249 4152 4274 4532) 83.0018 Tj -0 -132.9067 Td -(VER 5661) 34.9481 Tj --16052 TJm -(4785 4786) 39.3166 Tj -17.4613 -142.4 Td -(5661 5723) 39.3166 Tj +17.4613 -246.8266 Td +(4906 4938) 39.3166 Tj -11537.3 TJm +(writei 4152) 48.0537 Tj +0 -256.32 Td +(T_FILE 3101) 48.0537 Tj +-14547 TJm +(0249 4152 4274 4532) 83.0018 Tj +17.4613 -265.8133 Td +(3101 4814 4862) 61.1592 Tj +-11035.5 TJm +(4785 4786) 39.3166 Tj +0 -275.3067 Td +(T_IRQ0 2429) 48.0537 Tj +-12540.5 TJm (xchg 0501) 39.3166 Tj -0 -151.8934 Td -(wait 2153) 39.3166 Tj --15550.3 TJm +17.4613 -284.8 Td +(2429 2614 2623 2627) 83.0018 Tj +-8527.14 TJm (0501 1260 1382 1419) 83.0018 Tj -17.4613 -161.3867 Td -(0313 2153 2923 6762) 83.0018 Tj +17.4613 -294.2934 Td +(2631 2635 2636 2663) 83.0018 Tj -6520.6 TJm (yield 1973) 43.6851 Tj -17.4613 -170.8801 Td -(6833 6944 6970 6971) 83.0018 Tj +17.4613 -303.7868 Td +(5707 5714 5727 5917) 83.0018 Tj -8527.14 TJm (0315 1973 2664) 61.1592 Tj -17.4613 -180.3735 Td -(7026) 17.4741 Tj +17.4613 -313.2801 Td +(5931 5997 6016) 61.1592 Tj Q Q Q @@ -3920,7 +3976,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/types.h Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/types.h Page 1) 166.0035 Tj 0 -28.4801 Td (0100 typedef unsigned int uint;) 144.161 Tj 0 -37.9735 Td @@ -4039,7 +4095,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/param.h Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/param.h Page 1) 166.0035 Tj 0 -28.4801 Td (0150 #define NPROC 64 // maximum number of processes) 262.1109 Tj 0 -37.9735 Td @@ -4193,7 +4249,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/defs.h Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/defs.h Page 1) 161.635 Tj 0 -28.4801 Td (0200 struct buf;) 69.8962 Tj 0 -37.9735 Td @@ -4314,7 +4370,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/defs.h Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/defs.h Page 2) 161.635 Tj 0 -28.4801 Td (0250 // ide.c) 56.7907 Tj 0 -37.9735 Td @@ -4354,7 +4410,7 @@ q 0 -199.3606 Td (0268 // lapic.c) 65.5277 Tj 0 -208.8539 Td -(0269 int cpu\(void\);) 135.4239 Tj +(0269 int cpunum\(void\);) 148.5295 Tj 0 -218.3473 Td (0270 extern volatile uint* lapic;) 157.2665 Tj 0 -227.8407 Td @@ -4464,7 +4520,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/defs.h Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/defs.h Page 3) 161.635 Tj 0 -28.4801 Td (0300 // proc.c) 61.1592 Tj 0 -37.9735 Td @@ -4585,7 +4641,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/defs.h Page 4) 161.635 Tj +(Aug 30 21:46 2009 xv6/defs.h Page 4) 161.635 Tj 0 -28.4801 Td (0350 // trap.c) 61.1592 Tj 0 -37.9735 Td @@ -4735,7 +4791,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/x86.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/x86.h Page 1) 157.2665 Tj 0 -28.4801 Td (0400 // Routines to let C code use special x86 instructions.) 262.1109 Tj 0 -37.9735 Td @@ -4857,7 +4913,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/x86.h Page 2) 157.2665 Tj +(Aug 30 21:46 2009 xv6/x86.h Page 2) 157.2665 Tj 0 -28.4801 Td (0450 struct segdesc;) 87.3703 Tj 0 -37.9735 Td @@ -5007,7 +5063,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/x86.h Page 3) 157.2665 Tj +(Aug 30 21:46 2009 xv6/x86.h Page 3) 157.2665 Tj 0 -28.4801 Td (0500 static inline uint) 100.4758 Tj 0 -37.9735 Td @@ -5126,7 +5182,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/x86.h Page 4) 157.2665 Tj +(Aug 30 21:46 2009 xv6/x86.h Page 4) 157.2665 Tj 0 -28.4801 Td (0550 // Layout of the trap frame built on the stack by the) 253.3738 Tj 0 -37.9735 Td @@ -5277,7 +5333,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/asm.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/asm.h Page 1) 157.2665 Tj 0 -28.4801 Td (0600 //) 30.5796 Tj 0 -37.9735 Td @@ -5406,7 +5462,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mmu.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/mmu.h Page 1) 157.2665 Tj 0 -28.4801 Td (0650 // This file contains definitions for the) 200.9517 Tj 0 -37.9735 Td @@ -5568,33 +5624,35 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mmu.h Page 2) 157.2665 Tj +(Aug 30 21:46 2009 xv6/mmu.h Page 2) 157.2665 Tj 0 -28.4801 Td (0700 // Normal segment) 96.1073 Tj 0 -37.9735 Td (0701 #define SEG\(type, base, lim, dpl\) \(struct segdesc\) \ - \\) 340.7441 Tj +\\) 262.1109 Tj 0 -47.4668 Td -(0702 { \(\(lim\) >> 12\) & 0xffff, \(base\) & 0xffff, \(\(base\)\ - >> 16\) & 0xff, \\) 340.7441 Tj +(0702 { \(\(lim\) >> 12\) & 0xffff, \(uint\)\(base\) & 0xffff, \ + \\) 262.1109 Tj 0 -56.9602 Td -(0703 type, 1, dpl, 1, \(uint\) \(lim\) >> 28, 0, 0, 1, 1, \ - \\) 340.7441 Tj +(0703 \(\(uint\)\(base\) >> 16\) & 0xff, type, 1, dpl, 1, \ + \\) 262.1109 Tj 0 -66.4535 Td -(0704 \(uint\) \(base\) >> 24 }) 131.0554 Tj +(0704 \(uint\)\(lim\) >> 28, 0, 0, 1, 1, \(uint\)\(base\) >> 2\ +4 }) 253.3738 Tj 0 -75.9469 Td (0705 ) 21.8426 Tj 0 -85.4403 Td (0706 #define SEG16\(type, base, lim, dpl\) \(struct segdesc\) \ - \\) 340.7441 Tj +\\) 262.1109 Tj 0 -94.9336 Td -(0707 { \(lim\) & 0xffff, \(base\) & 0xffff, \(\(base\) >> 16\) \ -& 0xff, \\) 340.7441 Tj +(0707 { \(lim\) & 0xffff, \(uint\)\(base\) & 0xffff, \ + \\) 262.1109 Tj 0 -104.427 Td -(0708 type, 1, dpl, 1, \(uint\) \(lim\) >> 16, 0, 0, 1, 0, \ - \\) 340.7441 Tj +(0708 \(\(uint\)\(base\) >> 16\) & 0xff, type, 1, dpl, 1, \ + \\) 262.1109 Tj 0 -113.9203 Td -(0709 \(uint\) \(base\) >> 24 }) 131.0554 Tj +(0709 \(uint\)\(lim\) >> 16, 0, 0, 1, 0, \(uint\)\(base\) >> 2\ +4 }) 253.3738 Tj 0 -123.4137 Td (0710 ) 21.8426 Tj 0 -132.9071 Td @@ -5698,7 +5756,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mmu.h Page 3) 157.2665 Tj +(Aug 30 21:46 2009 xv6/mmu.h Page 3) 157.2665 Tj 0 -28.4801 Td (0750 // Task state segment format) 144.161 Tj 0 -37.9735 Td @@ -5851,7 +5909,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mmu.h Page 4) 157.2665 Tj +(Aug 30 21:46 2009 xv6/mmu.h Page 4) 157.2665 Tj 0 -28.4801 Td (0800 // Gate descriptors for interrupts and traps) 214.0572 Tj 0 -37.9735 Td @@ -5990,7 +6048,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/elf.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/elf.h Page 1) 157.2665 Tj 0 -28.4801 Td (0850 // Format of an ELF executable file) 174.7406 Tj 0 -37.9735 Td @@ -6141,7 +6199,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootasm.S Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/bootasm.S Page 1) 174.7406 Tj 0 -28.4801 Td (0900 #include "asm.h") 91.7388 Tj 0 -37.9735 Td @@ -6267,7 +6325,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootasm.S Page 2) 174.7406 Tj +(Aug 30 21:46 2009 xv6/bootasm.S Page 2) 174.7406 Tj 0 -28.4801 Td (0950 # Switch from real to protected mode, using a bootstrap \ GDT) 288.322 Tj @@ -6423,7 +6481,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootother.S Page 1) 183.4776 Tj +(Aug 30 21:46 2009 xv6/bootother.S Page 1) 183.4776 Tj 0 -28.4801 Td (1000 #include "asm.h") 91.7388 Tj 0 -37.9735 Td @@ -6550,7 +6608,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootother.S Page 2) 183.4776 Tj +(Aug 30 21:46 2009 xv6/bootother.S Page 2) 183.4776 Tj 0 -28.4801 Td (1050 # Switch from real to protected mode, using a bootstrap \ GDT) 288.322 Tj @@ -6708,7 +6766,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootmain.c Page 1) 179.1091 Tj +(Aug 30 21:46 2009 xv6/bootmain.c Page 1) 179.1091 Tj 0 -28.4801 Td (1100 // Boot loader.) 87.3703 Tj 0 -37.9735 Td @@ -6830,7 +6888,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bootmain.c Page 2) 179.1091 Tj +(Aug 30 21:46 2009 xv6/bootmain.c Page 2) 179.1091 Tj 0 -28.4801 Td (1150 void) 39.3166 Tj 0 -37.9735 Td @@ -6984,7 +7042,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/main.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/main.c Page 1) 161.635 Tj 0 -28.4801 Td (1200 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -7000,9 +7058,9 @@ q 0 -85.4403 Td (1206 ) 21.8426 Tj 0 -94.9336 Td -(1207 __thread struct cpu *c;) 122.3184 Tj +(1207 __thread struct cpu *cpu;) 131.0554 Tj 0 -104.427 Td -(1208 __thread struct proc *cp;) 131.0554 Tj +(1208 __thread struct proc *proc;) 139.7925 Tj 0 -113.9203 Td (1209 ) 21.8426 Tj 0 -123.4137 Td @@ -7034,7 +7092,7 @@ q 0 -246.8274 Td (1223 uartinit\(\); // serial port) 166.0035 Tj 0 -256.3207 Td -(1224 cprintf\("\\ncpu%d: starting xv6\\n\\n", cpu\(\)\);) 222.7942 Tj +(1224 cprintf\("\\ncpu%d: starting xv6\\n\\n", cpu->id\);) 231.5313 Tj 0 -265.8141 Td (1225 ) 21.8426 Tj 0 -275.3075 Td @@ -7103,7 +7161,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/main.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/main.c Page 2) 161.635 Tj 0 -28.4801 Td (1250 // Bootstrap processor gets here after setting up the hard\ ware.) 297.059 Tj @@ -7116,21 +7174,21 @@ ware.) 297.059 Tj 0 -66.4535 Td (1254 {) 26.2111 Tj 0 -75.9469 Td -(1255 if\(cpu\(\) != mpbcpu\(\)\)) 122.3184 Tj +(1255 if\(cpunum\(\) != mpbcpu\(\)\)) 135.4239 Tj 0 -85.4403 Td -(1256 lapicinit\(cpu\(\)\);) 113.5814 Tj +(1256 lapicinit\(cpunum\(\)\);) 126.6869 Tj 0 -94.9336 Td (1257 ksegment\(\);) 78.6333 Tj 0 -104.427 Td -(1258 cprintf\("cpu%d: mpmain\\n", cpu\(\)\);) 179.1091 Tj +(1258 cprintf\("cpu%d: mpmain\\n", cpu->id\);) 187.8461 Tj 0 -113.9203 Td (1259 idtinit\(\);) 74.2647 Tj 0 -123.4137 Td -(1260 xchg\(&c->booted, 1\);) 117.9499 Tj +(1260 xchg\(&cpu->booted, 1\);) 126.6869 Tj 0 -132.9071 Td (1261 ) 21.8426 Tj 0 -142.4004 Td -(1262 cprintf\("cpu%d: scheduling\\n", cpu\(\)\);) 196.5831 Tj +(1262 cprintf\("cpu%d: scheduling\\n", cpu->id\);) 205.3202 Tj 0 -151.8938 Td (1263 scheduler\(\);) 83.0018 Tj 0 -161.3871 Td @@ -7166,7 +7224,7 @@ bootother_size\);) 332.0071 Tj 0 -294.2942 Td (1278 for\(c = cpus; c < cpus+ncpu; c++\){) 179.1091 Tj 0 -303.7875 Td -(1279 if\(c == cpus+cpu\(\)\) // We've started already.) 240.2683 Tj +(1279 if\(c == cpus+cpunum\(\)\) // We've started already.) 253.3738 Tj 0 -313.2809 Td (1280 continue;) 87.3703 Tj 0 -322.7743 Td @@ -7180,7 +7238,7 @@ bootother_size\);) 332.0071 Tj 0 -360.7477 Td (1285 *\(void**\)\(code-8\) = mpmain;) 157.2665 Tj 0 -370.2411 Td -(1286 lapicstartap\(c->apicid, \(uint\)code\);) 196.5831 Tj +(1286 lapicstartap\(c->id, \(uint\)code\);) 179.1091 Tj 0 -379.7344 Td (1287 ) 21.8426 Tj 0 -389.2278 Td @@ -7256,27 +7314,26 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/spinlock.h Page 1) 179.1091 Tj +(Aug 30 21:46 2009 xv6/spinlock.h Page 1) 179.1091 Tj 0 -28.4801 Td (1300 // Mutual exclusion lock.) 131.0554 Tj 0 -37.9735 Td (1301 struct spinlock {) 96.1073 Tj 0 -47.4668 Td -(1302 uint locked; // Is the lock held?) 183.4776 Tj +(1302 uint locked; // Is the lock held?) 200.9517 Tj 0 -56.9602 Td (1303 ) 21.8426 Tj 0 -66.4535 Td (1304 // For debugging:) 104.8443 Tj 0 -75.9469 Td -(1305 char *name; // Name of lock.) 166.0035 Tj +(1305 char *name; // Name of lock.) 183.4776 Tj 0 -85.4403 Td -(1306 int cpu; // The number of the cpu holding the lock\ -.) 279.5849 Tj +(1306 struct cpu *cpu; // The cpu holding the lock.) 235.8998 Tj 0 -94.9336 Td -(1307 uint pcs[10]; // The call stack \(an array of program c\ -ounters\)) 305.796 Tj +(1307 uint pcs[10]; // The call stack \(an array of progr\ +am counters\)) 323.2701 Tj 0 -104.427 Td -(1308 // that locked the lock.) 200.9517 Tj +(1308 // that locked the lock.) 218.4257 Tj 0 -113.9203 Td (1309 };) 30.5796 Tj 0 -123.4137 Td @@ -7377,7 +7434,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/spinlock.c Page 1) 179.1091 Tj +(Aug 30 21:46 2009 xv6/spinlock.c Page 1) 179.1091 Tj 0 -28.4801 Td (1350 // Mutual exclusion spin locks.) 157.2665 Tj 0 -37.9735 Td @@ -7409,7 +7466,7 @@ q 0 -161.3871 Td (1364 lk->locked = 0;) 96.1073 Tj 0 -170.8805 Td -(1365 lk->cpu = 0xffffffff;) 122.3184 Tj +(1365 lk->cpu = 0;) 83.0018 Tj 0 -180.3739 Td (1366 }) 26.2111 Tj 0 -189.8672 Td @@ -7452,17 +7509,17 @@ ot) 283.9534 Tj 0 -360.7477 Td (1385 // Record info about lock acquisition for debugging.) 257.7424 Tj 0 -370.2411 Td -(1386 // The +10 is only so that we can tell the difference) 262.1109 Tj +(1386 lk->cpu = cpu;) 91.7388 Tj 0 -379.7344 Td -(1387 // between forgetting to initialize lock->cpu) 227.1628 Tj +(1387 getcallerpcs\(&lk, lk->pcs\);) 148.5295 Tj 0 -389.2278 Td -(1388 // and holding a lock on cpu 0.) 166.0035 Tj +(1388 }) 26.2111 Tj 0 -398.7211 Td -(1389 lk->cpu = cpu\(\) + 10;) 122.3184 Tj +(1389 ) 21.8426 Tj 0 -408.2145 Td -(1390 getcallerpcs\(&lk, lk->pcs\);) 148.5295 Tj +(1390 ) 21.8426 Tj 0 -417.7079 Td -(1391 }) 26.2111 Tj +(1391 ) 21.8426 Tj 0 -427.2012 Td (1392 ) 21.8426 Tj 0 -436.6946 Td @@ -7528,7 +7585,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/spinlock.c Page 2) 179.1091 Tj +(Aug 30 21:46 2009 xv6/spinlock.c Page 2) 179.1091 Tj 0 -28.4801 Td (1400 // Release the lock.) 109.2129 Tj 0 -37.9735 Td @@ -7546,7 +7603,7 @@ q 0 -94.9336 Td (1407 lk->pcs[0] = 0;) 96.1073 Tj 0 -104.427 Td -(1408 lk->cpu = 0xffffffff;) 122.3184 Tj +(1408 lk->cpu = 0;) 83.0018 Tj 0 -113.9203 Td (1409 ) 21.8426 Tj 0 -123.4137 Td @@ -7629,7 +7686,7 @@ n\).) 283.9534 Tj 0 -455.6813 Td (1445 {) 26.2111 Tj 0 -465.1747 Td -(1446 return lock->locked && lock->cpu == cpu\(\) + 10;) 235.8998 Tj +(1446 return lock->locked && lock->cpu == cpu;) 205.3202 Tj 0 -474.668 Td (1447 }) 26.2111 Tj 0 -484.1614 Td @@ -7654,7 +7711,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/spinlock.c Page 3) 179.1091 Tj +(Aug 30 21:46 2009 xv6/spinlock.c Page 3) 179.1091 Tj 0 -28.4801 Td (1450 // Pushcli/popcli are like cli/sti except that they are ma\ tched:) 301.4275 Tj @@ -7680,9 +7737,9 @@ rrupts) 301.4275 Tj 0 -123.4137 Td (1460 cli\(\);) 56.7907 Tj 0 -132.9071 Td -(1461 if\(c->ncli++ == 0\)) 109.2129 Tj +(1461 if\(cpu->ncli++ == 0\)) 117.9499 Tj 0 -142.4004 Td -(1462 c->intena = eflags & FL_IF;) 157.2665 Tj +(1462 cpu->intena = eflags & FL_IF;) 166.0035 Tj 0 -151.8938 Td (1463 }) 26.2111 Tj 0 -161.3871 Td @@ -7698,11 +7755,11 @@ rrupts) 301.4275 Tj 0 -208.8539 Td (1469 panic\("popcli - interruptible"\);) 179.1091 Tj 0 -218.3473 Td -(1470 if\(--c->ncli < 0\)) 104.8443 Tj +(1470 if\(--cpu->ncli < 0\)) 113.5814 Tj 0 -227.8407 Td (1471 panic\("popcli"\);) 109.2129 Tj 0 -237.334 Td -(1472 if\(c->ncli == 0 && c->intena\)) 157.2665 Tj +(1472 if\(cpu->ncli == 0 && cpu->intena\)) 174.7406 Tj 0 -246.8274 Td (1473 sti\(\);) 65.5277 Tj 0 -256.3207 Td @@ -7806,7 +7863,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.h Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.h Page 1) 161.635 Tj 0 -28.4801 Td (1500 // Segments in proc->gdt.) 131.0554 Tj 0 -37.9735 Td @@ -7881,7 +7938,7 @@ bytes\)) 301.4275 Tj (1532 char *kstack; // Bottom of kernel stack f\ or this process) 340.7441 Tj 0 -341.761 Td -(1533 enum procstate state; // Process state) 222.7942 Tj +(1533 enum procstate state; // Process state) 227.1628 Tj 0 -351.2543 Td (1534 volatile int pid; // Process ID) 214.0572 Tj 0 -360.7477 Td @@ -7937,7 +7994,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.h Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.h Page 2) 161.635 Tj 0 -28.4801 Td (1550 // Process memory is laid out contiguously, low addresses \ first:) 301.4275 Tj @@ -7956,9 +8013,10 @@ first:) 301.4275 Tj 0 -94.9336 Td (1557 struct cpu {) 74.2647 Tj 0 -104.427 Td -(1558 uchar apicid; // Local APIC ID) 227.1628 Tj +(1558 uchar id; // Local APIC ID; index int\ +o cpus[] below) 336.3756 Tj 0 -113.9203 Td -(1559 struct context *context; // Switch here to enter sch\ +(1559 struct context *scheduler; // Switch here to enter sch\ eduler) 301.4275 Tj 0 -123.4137 Td (1560 struct taskstate ts; // Used by x86 to find stac\ @@ -8001,10 +8059,10 @@ e) 279.5849 Tj 0 -275.3075 Td (1576 // multithreaded user programs.) 157.2665 Tj 0 -284.8008 Td -(1577 extern __thread struct cpu *c; // This cpu.) 235.8998 Tj +(1577 extern __thread struct cpu *cpu; // This cpu.) 244.6368 Tj 0 -294.2942 Td -(1578 extern __thread struct proc *cp; // Current process on\ - this cpu.) 318.9016 Tj +(1578 extern __thread struct proc *proc; // Current process \ +on this cpu.) 327.6386 Tj 0 -303.7875 Td (1579 ) 21.8426 Tj 0 -313.2809 Td @@ -8096,7 +8154,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 1) 161.635 Tj 0 -28.4801 Td (1600 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -8215,7 +8273,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 2) 161.635 Tj 0 -28.4801 Td (1650 // Print a process listing to console. For debugging.) 257.7424 Tj 0 -37.9735 Td @@ -8366,7 +8424,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 3) 161.635 Tj 0 -28.4801 Td (1700 // Set up CPU's kernel segment descriptors.) 209.6887 Tj 0 -37.9735 Td @@ -8378,21 +8436,21 @@ q 0 -66.4535 Td (1704 {) 26.2111 Tj 0 -75.9469 Td -(1705 struct cpu *c1;) 96.1073 Tj +(1705 struct cpu *c;) 91.7388 Tj 0 -85.4403 Td (1706 ) 21.8426 Tj 0 -94.9336 Td -(1707 c1 = &cpus[cpu\(\)];) 109.2129 Tj +(1707 c = &cpus[cpunum\(\)];) 117.9499 Tj 0 -104.427 Td -(1708 c1->gdt[SEG_KCODE] = SEG\(STA_X|STA_R, 0, 0x100000 + 64*\ -1024-1, 0\);) 318.9016 Tj +(1708 c->gdt[SEG_KCODE] = SEG\(STA_X|STA_R, 0, 0x100000 + 64*1\ +024-1, 0\);) 314.533 Tj 0 -113.9203 Td -(1709 c1->gdt[SEG_KDATA] = SEG\(STA_W, 0, 0xffffffff, 0\);) 249.0053 Tj +(1709 c->gdt[SEG_KDATA] = SEG\(STA_W, 0, 0xffffffff, 0\);) 244.6368 Tj 0 -123.4137 Td -(1710 c1->gdt[SEG_KCPU] = SEG\(STA_W, \(uint\)\(&c1->tls+1\), \ -0xffffffff, 0\);) 318.9016 Tj +(1710 c->gdt[SEG_KCPU] = SEG\(STA_W, \(uint\)\(&c->tls+1\), 0x\ +ffffffff, 0\);) 310.1645 Tj 0 -132.9071 Td -(1711 lgdt\(c1->gdt, sizeof\(c1->gdt\)\);) 166.0035 Tj +(1711 lgdt\(c->gdt, sizeof\(c->gdt\)\);) 157.2665 Tj 0 -142.4004 Td (1712 loadfsgs\(SEG_KCPU << 3\);) 135.4239 Tj 0 -151.8938 Td @@ -8400,9 +8458,9 @@ q 0 -161.3871 Td (1714 // Initialize cpu-local variables.) 179.1091 Tj 0 -170.8805 Td -(1715 c = c1;) 61.1592 Tj +(1715 cpu = c;) 65.5277 Tj 0 -180.3739 Td -(1716 cp = 0;) 61.1592 Tj +(1716 proc = 0;) 69.8962 Tj 0 -189.8672 Td (1717 }) 26.2111 Tj 0 -199.3606 Td @@ -8411,69 +8469,68 @@ q (1719 // Set up CPU's segment descriptors and current process ta\ sk state.) 314.533 Tj 0 -218.3473 Td -(1720 // If cp==0, set up for "idle" state for when scheduler\(\)\ - is running.) 323.2701 Tj +(1720 void) 39.3166 Tj 0 -227.8407 Td -(1721 void) 39.3166 Tj +(1721 usegment\(void\)) 83.0018 Tj 0 -237.334 Td -(1722 usegment\(void\)) 83.0018 Tj +(1722 {) 26.2111 Tj 0 -246.8274 Td -(1723 {) 26.2111 Tj +(1723 pushcli\(\);) 74.2647 Tj 0 -256.3207 Td -(1724 pushcli\(\);) 74.2647 Tj +(1724 cpu->gdt[SEG_UCODE] = SEG\(STA_X|STA_R, proc->mem, proc-\ +>sz-1, DPL_USER\);) 345.1126 Tj 0 -265.8141 Td -(1725 c->gdt[SEG_UCODE] = SEG\(STA_X|STA_R, \(uint\)cp->mem, c\ -p->sz-1, DPL_USER\);) 345.1126 Tj +(1725 cpu->gdt[SEG_UDATA] = SEG\(STA_W, proc->mem, proc->sz-1,\ + DPL_USER\);) 318.9016 Tj 0 -275.3075 Td -(1726 c->gdt[SEG_UDATA] = SEG\(STA_W, \(uint\)cp->mem, cp->sz-\ -1, DPL_USER\);) 318.9016 Tj +(1726 cpu->gdt[SEG_TSS] = SEG16\(STS_T32A, &cpu->ts, sizeof\(c\ +pu->ts\)-1, 0\);) 327.6386 Tj 0 -284.8008 Td -(1727 c->gdt[SEG_TSS] = SEG16\(STS_T32A, \(uint\)&c->ts, sizeo\ -f\(c->ts\)-1, 0\);) 327.6386 Tj +(1727 cpu->gdt[SEG_TSS].s = 0;) 135.4239 Tj 0 -294.2942 Td -(1728 c->gdt[SEG_TSS].s = 0;) 126.6869 Tj +(1728 cpu->ts.ss0 = SEG_KDATA << 3;) 157.2665 Tj 0 -303.7875 Td -(1729 c->ts.ss0 = SEG_KDATA << 3;) 148.5295 Tj +(1729 cpu->ts.esp0 = \(uint\)proc->kstack + KSTACKSIZE;) 235.8998 Tj 0 -313.2809 Td -(1730 c->ts.esp0 = \(uint\)cp->kstack + KSTACKSIZE;) 218.4257 Tj +(1730 ltr\(SEG_TSS << 3\);) 109.2129 Tj 0 -322.7743 Td -(1731 ltr\(SEG_TSS << 3\);) 109.2129 Tj +(1731 popcli\(\);) 69.8962 Tj 0 -332.2676 Td -(1732 popcli\(\);) 69.8962 Tj +(1732 }) 26.2111 Tj 0 -341.761 Td -(1733 }) 26.2111 Tj +(1733 ) 21.8426 Tj 0 -351.2543 Td (1734 ) 21.8426 Tj 0 -360.7477 Td -(1735 ) 21.8426 Tj +(1735 // Look in the process table for an UNUSED proc.) 231.5313 Tj 0 -370.2411 Td -(1736 ) 21.8426 Tj +(1736 // If found, change state to EMBRYO and return it.) 240.2683 Tj 0 -379.7344 Td -(1737 ) 21.8426 Tj +(1737 // Otherwise return 0.) 117.9499 Tj 0 -389.2278 Td -(1738 ) 21.8426 Tj +(1738 static struct proc*) 104.8443 Tj 0 -398.7211 Td -(1739 ) 21.8426 Tj +(1739 allocproc\(void\)) 87.3703 Tj 0 -408.2145 Td -(1740 ) 21.8426 Tj +(1740 {) 26.2111 Tj 0 -417.7079 Td -(1741 ) 21.8426 Tj +(1741 struct proc *p;) 96.1073 Tj 0 -427.2012 Td -(1742 ) 21.8426 Tj +(1742 char *sp;) 69.8962 Tj 0 -436.6946 Td (1743 ) 21.8426 Tj 0 -446.1879 Td -(1744 ) 21.8426 Tj +(1744 acquire\(&ptable.lock\);) 126.6869 Tj 0 -455.6813 Td -(1745 ) 21.8426 Tj +(1745 for\(p = ptable.proc; p < &ptable.proc[NPROC]; p++\)) 249.0053 Tj 0 -465.1747 Td -(1746 ) 21.8426 Tj +(1746 if\(p->state == UNUSED\)) 135.4239 Tj 0 -474.668 Td -(1747 ) 21.8426 Tj +(1747 goto found;) 96.1073 Tj 0 -484.1614 Td -(1748 ) 21.8426 Tj +(1748 release\(&ptable.lock\);) 126.6869 Tj 0 -493.6547 Td -(1749 ) 21.8426 Tj +(1749 return 0;) 69.8962 Tj 0 -522.1348 Td (Sheet 17) 34.9481 Tj Q @@ -8492,107 +8549,109 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 4) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 4) 161.635 Tj 0 -28.4801 Td -(1750 // Look in the process table for an UNUSED proc.) 231.5313 Tj +(1750 found:) 48.0537 Tj 0 -37.9735 Td -(1751 // If found, change state to EMBRYO and return it.) 240.2683 Tj +(1751 p->state = EMBRYO;) 109.2129 Tj 0 -47.4668 Td -(1752 // Otherwise return 0.) 117.9499 Tj +(1752 p->pid = nextpid++;) 113.5814 Tj 0 -56.9602 Td -(1753 static struct proc*) 104.8443 Tj +(1753 release\(&ptable.lock\);) 126.6869 Tj 0 -66.4535 Td -(1754 allocproc\(void\)) 87.3703 Tj +(1754 ) 21.8426 Tj 0 -75.9469 Td -(1755 {) 26.2111 Tj +(1755 // Allocate kernel stack if necessary.) 196.5831 Tj 0 -85.4403 Td -(1756 struct proc *p;) 96.1073 Tj +(1756 if\(\(p->kstack = kalloc\(KSTACKSIZE\)\) == 0\){) 214.0572 Tj 0 -94.9336 Td -(1757 char *sp;) 69.8962 Tj +(1757 p->state = UNUSED;) 117.9499 Tj 0 -104.427 Td -(1758 ) 21.8426 Tj +(1758 return 0;) 78.6333 Tj 0 -113.9203 Td -(1759 acquire\(&ptable.lock\);) 126.6869 Tj +(1759 }) 34.9481 Tj 0 -123.4137 Td -(1760 for\(p = ptable.proc; p < &ptable.proc[NPROC]; p++\)) 249.0053 Tj +(1760 sp = p->kstack + KSTACKSIZE;) 152.898 Tj 0 -132.9071 Td -(1761 if\(p->state == UNUSED\)) 135.4239 Tj +(1761 ) 21.8426 Tj 0 -142.4004 Td -(1762 goto found;) 96.1073 Tj +(1762 // Leave room for trap frame.) 157.2665 Tj 0 -151.8938 Td -(1763 release\(&ptable.lock\);) 126.6869 Tj +(1763 sp -= sizeof *p->tf;) 117.9499 Tj 0 -161.3871 Td -(1764 return 0;) 69.8962 Tj +(1764 p->tf = \(struct trapframe*\)sp;) 161.635 Tj 0 -170.8805 Td (1765 ) 21.8426 Tj 0 -180.3739 Td -(1766 found:) 48.0537 Tj +(1766 // Set up new context to start executing at forkret,) 257.7424 Tj 0 -189.8672 Td -(1767 p->state = EMBRYO;) 109.2129 Tj +(1767 // which returns to trapret \(see below\).) 205.3202 Tj 0 -199.3606 Td -(1768 p->pid = nextpid++;) 113.5814 Tj +(1768 sp -= 4;) 65.5277 Tj 0 -208.8539 Td -(1769 release\(&ptable.lock\);) 126.6869 Tj +(1769 *\(uint*\)sp = \(uint\)trapret;) 148.5295 Tj 0 -218.3473 Td (1770 ) 21.8426 Tj 0 -227.8407 Td -(1771 // Allocate kernel stack if necessary.) 196.5831 Tj +(1771 sp -= sizeof *p->context;) 139.7925 Tj 0 -237.334 Td -(1772 if\(\(p->kstack = kalloc\(KSTACKSIZE\)\) == 0\){) 214.0572 Tj +(1772 p->context = \(struct context*\)sp;) 174.7406 Tj 0 -246.8274 Td -(1773 p->state = UNUSED;) 117.9499 Tj +(1773 memset\(p->context, 0, sizeof *p->context\);) 214.0572 Tj 0 -256.3207 Td -(1774 return 0;) 78.6333 Tj +(1774 p->context->eip = \(uint\)forkret;) 170.3721 Tj 0 -265.8141 Td -(1775 }) 34.9481 Tj +(1775 return p;) 69.8962 Tj 0 -275.3075 Td -(1776 sp = p->kstack + KSTACKSIZE;) 152.898 Tj +(1776 }) 26.2111 Tj 0 -284.8008 Td (1777 ) 21.8426 Tj 0 -294.2942 Td -(1778 // Leave room for trap frame.) 157.2665 Tj +(1778 // Set up first user process.) 148.5295 Tj 0 -303.7875 Td -(1779 sp -= sizeof *p->tf;) 117.9499 Tj +(1779 void) 39.3166 Tj 0 -313.2809 Td -(1780 p->tf = \(struct trapframe*\)sp;) 161.635 Tj +(1780 userinit\(void\)) 83.0018 Tj 0 -322.7743 Td -(1781 ) 21.8426 Tj +(1781 {) 26.2111 Tj 0 -332.2676 Td -(1782 // Set up new context to start executing at forkret,) 257.7424 Tj +(1782 struct proc *p;) 96.1073 Tj 0 -341.761 Td -(1783 // which returns to trapret \(see below\).) 205.3202 Tj +(1783 extern char _binary_initcode_start[], _binary_initcode_s\ +ize[];) 301.4275 Tj 0 -351.2543 Td -(1784 sp -= 4;) 65.5277 Tj +(1784 ) 21.8426 Tj 0 -360.7477 Td -(1785 *\(uint*\)sp = \(uint\)trapret;) 148.5295 Tj +(1785 p = allocproc\(\);) 100.4758 Tj 0 -370.2411 Td -(1786 ) 21.8426 Tj +(1786 initproc = p;) 87.3703 Tj 0 -379.7344 Td -(1787 sp -= sizeof *p->context;) 139.7925 Tj +(1787 ) 21.8426 Tj 0 -389.2278 Td -(1788 p->context = \(struct context*\)sp;) 174.7406 Tj +(1788 // Initialize memory from initcode.S) 187.8461 Tj 0 -398.7211 Td -(1789 memset\(p->context, 0, sizeof *p->context\);) 214.0572 Tj +(1789 p->sz = PAGE;) 87.3703 Tj 0 -408.2145 Td -(1790 p->context->eip = \(uint\)forkret;) 170.3721 Tj +(1790 p->mem = kalloc\(p->sz\);) 131.0554 Tj 0 -417.7079 Td -(1791 return p;) 69.8962 Tj +(1791 memset\(p->mem, 0, p->sz\);) 139.7925 Tj 0 -427.2012 Td -(1792 }) 26.2111 Tj +(1792 memmove\(p->mem, _binary_initcode_start, \(int\)_binary_\ +initcode_size\);) 327.6386 Tj 0 -436.6946 Td (1793 ) 21.8426 Tj 0 -446.1879 Td -(1794 ) 21.8426 Tj +(1794 memset\(p->tf, 0, sizeof\(*p->tf\)\);) 174.7406 Tj 0 -455.6813 Td -(1795 ) 21.8426 Tj +(1795 p->tf->cs = \(SEG_UCODE << 3\) | DPL_USER;) 205.3202 Tj 0 -465.1747 Td -(1796 ) 21.8426 Tj +(1796 p->tf->ds = \(SEG_UDATA << 3\) | DPL_USER;) 205.3202 Tj 0 -474.668 Td -(1797 ) 21.8426 Tj +(1797 p->tf->es = p->tf->ds;) 126.6869 Tj 0 -484.1614 Td -(1798 ) 21.8426 Tj +(1798 p->tf->ss = p->tf->ds;) 126.6869 Tj 0 -493.6547 Td -(1799 ) 21.8426 Tj +(1799 p->tf->eflags = FL_IF;) 126.6869 Tj 0 -522.1348 Td (Sheet 17) 34.9481 Tj Q @@ -8642,109 +8701,107 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 5) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 5) 161.635 Tj 0 -28.4801 Td -(1800 // Set up first user process.) 148.5295 Tj +(1800 p->tf->esp = p->sz;) 113.5814 Tj 0 -37.9735 Td -(1801 void) 39.3166 Tj +(1801 p->tf->eip = 0; // beginning of initcode.S) 218.4257 Tj 0 -47.4668 Td -(1802 userinit\(void\)) 83.0018 Tj +(1802 ) 21.8426 Tj 0 -56.9602 Td -(1803 {) 26.2111 Tj +(1803 safestrcpy\(p->name, "initcode", sizeof\(p->name\)\);) 244.6368 Tj 0 -66.4535 Td -(1804 struct proc *p;) 96.1073 Tj +(1804 p->cwd = namei\("/"\);) 117.9499 Tj 0 -75.9469 Td -(1805 extern char _binary_initcode_start[], _binary_initcode_s\ -ize[];) 301.4275 Tj +(1805 ) 21.8426 Tj 0 -85.4403 Td -(1806 ) 21.8426 Tj +(1806 p->state = RUNNABLE;) 117.9499 Tj 0 -94.9336 Td -(1807 p = allocproc\(\);) 100.4758 Tj +(1807 }) 26.2111 Tj 0 -104.427 Td -(1808 initproc = p;) 87.3703 Tj +(1808 ) 21.8426 Tj 0 -113.9203 Td -(1809 ) 21.8426 Tj +(1809 // Grow current process's memory by n bytes.) 214.0572 Tj 0 -123.4137 Td -(1810 // Initialize memory from initcode.S) 187.8461 Tj +(1810 // Return 0 on success, -1 on failure.) 187.8461 Tj 0 -132.9071 Td -(1811 p->sz = PAGE;) 87.3703 Tj +(1811 int) 34.9481 Tj 0 -142.4004 Td -(1812 p->mem = kalloc\(p->sz\);) 131.0554 Tj +(1812 growproc\(int n\)) 87.3703 Tj 0 -151.8938 Td -(1813 memset\(p->mem, 0, p->sz\);) 139.7925 Tj +(1813 {) 26.2111 Tj 0 -161.3871 Td -(1814 memmove\(p->mem, _binary_initcode_start, \(int\)_binary_\ -initcode_size\);) 327.6386 Tj +(1814 char *newmem;) 87.3703 Tj 0 -170.8805 Td (1815 ) 21.8426 Tj 0 -180.3739 Td -(1816 memset\(p->tf, 0, sizeof\(*p->tf\)\);) 174.7406 Tj +(1816 newmem = kalloc\(proc->sz + n\);) 161.635 Tj 0 -189.8672 Td -(1817 p->tf->cs = \(SEG_UCODE << 3\) | DPL_USER;) 205.3202 Tj +(1817 if\(newmem == 0\)) 96.1073 Tj 0 -199.3606 Td -(1818 p->tf->ds = \(SEG_UDATA << 3\) | DPL_USER;) 205.3202 Tj +(1818 return -1;) 83.0018 Tj 0 -208.8539 Td -(1819 p->tf->es = p->tf->ds;) 126.6869 Tj +(1819 memmove\(newmem, proc->mem, proc->sz\);) 192.2146 Tj 0 -218.3473 Td -(1820 p->tf->ss = p->tf->ds;) 126.6869 Tj +(1820 memset\(newmem + proc->sz, 0, n\);) 170.3721 Tj 0 -227.8407 Td -(1821 p->tf->eflags = FL_IF;) 126.6869 Tj +(1821 kfree\(proc->mem, proc->sz\);) 148.5295 Tj 0 -237.334 Td -(1822 p->tf->esp = p->sz;) 113.5814 Tj +(1822 proc->mem = newmem;) 113.5814 Tj 0 -246.8274 Td -(1823 p->tf->eip = 0; // beginning of initcode.S) 218.4257 Tj +(1823 proc->sz += n;) 91.7388 Tj 0 -256.3207 Td -(1824 ) 21.8426 Tj +(1824 usegment\(\);) 78.6333 Tj 0 -265.8141 Td -(1825 safestrcpy\(p->name, "initcode", sizeof\(p->name\)\);) 244.6368 Tj +(1825 return 0;) 69.8962 Tj 0 -275.3075 Td -(1826 p->cwd = namei\("/"\);) 117.9499 Tj +(1826 }) 26.2111 Tj 0 -284.8008 Td (1827 ) 21.8426 Tj 0 -294.2942 Td -(1828 p->state = RUNNABLE;) 117.9499 Tj +(1828 // Create a new process copying p as the parent.) 231.5313 Tj 0 -303.7875 Td -(1829 }) 26.2111 Tj +(1829 // Sets up stack to return as if from system call.) 240.2683 Tj 0 -313.2809 Td -(1830 ) 21.8426 Tj +(1830 // Caller must set state of returned proc to RUNNABLE.) 257.7424 Tj 0 -322.7743 Td -(1831 // Grow current process's memory by n bytes.) 214.0572 Tj +(1831 int) 34.9481 Tj 0 -332.2676 Td -(1832 // Return 0 on success, -1 on failure.) 187.8461 Tj +(1832 fork\(void\)) 65.5277 Tj 0 -341.761 Td -(1833 int) 34.9481 Tj +(1833 {) 26.2111 Tj 0 -351.2543 Td -(1834 growproc\(int n\)) 87.3703 Tj +(1834 int i, pid;) 78.6333 Tj 0 -360.7477 Td -(1835 {) 26.2111 Tj +(1835 struct proc *np;) 100.4758 Tj 0 -370.2411 Td -(1836 char *newmem;) 87.3703 Tj +(1836 ) 21.8426 Tj 0 -379.7344 Td -(1837 ) 21.8426 Tj +(1837 // Allocate process.) 117.9499 Tj 0 -389.2278 Td -(1838 newmem = kalloc\(cp->sz + n\);) 152.898 Tj +(1838 if\(\(np = allocproc\(\)\) == 0\)) 148.5295 Tj 0 -398.7211 Td -(1839 if\(newmem == 0\)) 96.1073 Tj +(1839 return -1;) 83.0018 Tj 0 -408.2145 Td -(1840 return -1;) 83.0018 Tj +(1840 ) 21.8426 Tj 0 -417.7079 Td -(1841 memmove\(newmem, cp->mem, cp->sz\);) 174.7406 Tj +(1841 // Copy process state from p.) 157.2665 Tj 0 -427.2012 Td -(1842 memset\(newmem + cp->sz, 0, n\);) 161.635 Tj +(1842 np->sz = proc->sz;) 109.2129 Tj 0 -436.6946 Td -(1843 kfree\(cp->mem, cp->sz\);) 131.0554 Tj +(1843 if\(\(np->mem = kalloc\(np->sz\)\) == 0\){) 187.8461 Tj 0 -446.1879 Td -(1844 cp->mem = newmem;) 104.8443 Tj +(1844 kfree\(np->kstack, KSTACKSIZE\);) 170.3721 Tj 0 -455.6813 Td -(1845 cp->sz += n;) 83.0018 Tj +(1845 np->kstack = 0;) 104.8443 Tj 0 -465.1747 Td -(1846 usegment\(\);) 78.6333 Tj +(1846 np->state = UNUSED;) 122.3184 Tj 0 -474.668 Td -(1847 return 0;) 69.8962 Tj +(1847 return -1;) 83.0018 Tj 0 -484.1614 Td -(1848 }) 26.2111 Tj +(1848 }) 34.9481 Tj 0 -493.6547 Td -(1849 ) 21.8426 Tj +(1849 memmove\(np->mem, proc->mem, np->sz\);) 187.8461 Tj 0 -522.1348 Td (Sheet 18) 34.9481 Tj Q @@ -8763,83 +8820,83 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 6) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 6) 161.635 Tj 0 -28.4801 Td -(1850 // Create a new process copying p as the parent.) 231.5313 Tj +(1850 np->parent = proc;) 109.2129 Tj 0 -37.9735 Td -(1851 // Sets up stack to return as if from system call.) 240.2683 Tj +(1851 *np->tf = *proc->tf;) 117.9499 Tj 0 -47.4668 Td -(1852 // Caller must set state of returned proc to RUNNABLE.) 257.7424 Tj +(1852 ) 21.8426 Tj 0 -56.9602 Td -(1853 int) 34.9481 Tj +(1853 // Clear %eax so that fork returns 0 in the child.) 249.0053 Tj 0 -66.4535 Td -(1854 fork\(void\)) 65.5277 Tj +(1854 np->tf->eax = 0;) 100.4758 Tj 0 -75.9469 Td -(1855 {) 26.2111 Tj +(1855 ) 21.8426 Tj 0 -85.4403 Td -(1856 int i, pid;) 78.6333 Tj +(1856 for\(i = 0; i < NOFILE; i++\)) 148.5295 Tj 0 -94.9336 Td -(1857 struct proc *np;) 100.4758 Tj +(1857 if\(proc->ofile[i]\)) 117.9499 Tj 0 -104.427 Td -(1858 ) 21.8426 Tj +(1858 np->ofile[i] = filedup\(proc->ofile[i]\);) 218.4257 Tj 0 -113.9203 Td -(1859 // Allocate process.) 117.9499 Tj +(1859 np->cwd = idup\(proc->cwd\);) 144.161 Tj 0 -123.4137 Td -(1860 if\(\(np = allocproc\(\)\) == 0\)) 148.5295 Tj +(1860 ) 21.8426 Tj 0 -132.9071 Td -(1861 return -1;) 83.0018 Tj +(1861 pid = np->pid;) 91.7388 Tj 0 -142.4004 Td -(1862 ) 21.8426 Tj +(1862 np->state = RUNNABLE;) 122.3184 Tj 0 -151.8938 Td -(1863 // Copy process state from p.) 157.2665 Tj +(1863 ) 21.8426 Tj 0 -161.3871 Td -(1864 np->sz = cp->sz;) 100.4758 Tj +(1864 return pid;) 78.6333 Tj 0 -170.8805 Td -(1865 if\(\(np->mem = kalloc\(np->sz\)\) == 0\){) 187.8461 Tj +(1865 }) 26.2111 Tj 0 -180.3739 Td -(1866 kfree\(np->kstack, KSTACKSIZE\);) 170.3721 Tj +(1866 ) 21.8426 Tj 0 -189.8672 Td -(1867 np->kstack = 0;) 104.8443 Tj +(1867 ) 21.8426 Tj 0 -199.3606 Td -(1868 np->state = UNUSED;) 122.3184 Tj +(1868 ) 21.8426 Tj 0 -208.8539 Td -(1869 return -1;) 83.0018 Tj +(1869 ) 21.8426 Tj 0 -218.3473 Td -(1870 }) 34.9481 Tj +(1870 ) 21.8426 Tj 0 -227.8407 Td -(1871 memmove\(np->mem, cp->mem, np->sz\);) 179.1091 Tj +(1871 ) 21.8426 Tj 0 -237.334 Td -(1872 np->parent = cp;) 100.4758 Tj +(1872 ) 21.8426 Tj 0 -246.8274 Td -(1873 *np->tf = *cp->tf;) 109.2129 Tj +(1873 ) 21.8426 Tj 0 -256.3207 Td (1874 ) 21.8426 Tj 0 -265.8141 Td -(1875 // Clear %eax so that fork returns 0 in the child.) 249.0053 Tj +(1875 ) 21.8426 Tj 0 -275.3075 Td -(1876 np->tf->eax = 0;) 100.4758 Tj +(1876 ) 21.8426 Tj 0 -284.8008 Td (1877 ) 21.8426 Tj 0 -294.2942 Td -(1878 for\(i = 0; i < NOFILE; i++\)) 148.5295 Tj +(1878 ) 21.8426 Tj 0 -303.7875 Td -(1879 if\(cp->ofile[i]\)) 109.2129 Tj +(1879 ) 21.8426 Tj 0 -313.2809 Td -(1880 np->ofile[i] = filedup\(cp->ofile[i]\);) 209.6887 Tj +(1880 ) 21.8426 Tj 0 -322.7743 Td -(1881 np->cwd = idup\(cp->cwd\);) 135.4239 Tj +(1881 ) 21.8426 Tj 0 -332.2676 Td (1882 ) 21.8426 Tj 0 -341.761 Td -(1883 pid = np->pid;) 91.7388 Tj +(1883 ) 21.8426 Tj 0 -351.2543 Td -(1884 np->state = RUNNABLE;) 122.3184 Tj +(1884 ) 21.8426 Tj 0 -360.7477 Td (1885 ) 21.8426 Tj 0 -370.2411 Td -(1886 return pid;) 78.6333 Tj +(1886 ) 21.8426 Tj 0 -379.7344 Td -(1887 }) 26.2111 Tj +(1887 ) 21.8426 Tj 0 -389.2278 Td (1888 ) 21.8426 Tj 0 -398.7211 Td @@ -8913,7 +8970,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 7) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 7) 161.635 Tj 0 -28.4801 Td (1900 // Per-CPU process scheduler.) 148.5295 Tj 0 -37.9735 Td @@ -8966,13 +9023,13 @@ b) 279.5849 Tj 0 -256.3207 Td (1924 // before jumping back to us.) 174.7406 Tj 0 -265.8141 Td -(1925 cp = p;) 78.6333 Tj +(1925 proc = p;) 87.3703 Tj 0 -275.3075 Td (1926 usegment\(\);) 96.1073 Tj 0 -284.8008 Td (1927 p->state = RUNNING;) 131.0554 Tj 0 -294.2942 Td -(1928 swtch\(&c->context, p->context\);) 183.4776 Tj +(1928 swtch\(&cpu->scheduler, proc->context\);) 214.0572 Tj 0 -303.7875 Td (1929 ) 21.8426 Tj 0 -313.2809 Td @@ -8981,7 +9038,7 @@ b) 279.5849 Tj (1931 // It should have changed its p->state before coming\ back.) 301.4275 Tj 0 -332.2676 Td -(1932 cp = 0;) 78.6333 Tj +(1932 proc = 0;) 87.3703 Tj 0 -341.761 Td (1933 }) 43.6851 Tj 0 -351.2543 Td @@ -9034,11 +9091,11 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 8) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 8) 161.635 Tj 0 -28.4801 Td (1950 // Enter scheduler. Must hold only ptable.lock) 227.1628 Tj 0 -37.9735 Td -(1951 // and have changed cp->state.) 152.898 Tj +(1951 // and have changed proc->state.) 161.635 Tj 0 -47.4668 Td (1952 void) 39.3166 Tj 0 -56.9602 Td @@ -9054,11 +9111,11 @@ q 0 -104.427 Td (1958 panic\("sched ptable.lock"\);) 157.2665 Tj 0 -113.9203 Td -(1959 if\(c->ncli != 1\)) 100.4758 Tj +(1959 if\(cpu->ncli != 1\)) 109.2129 Tj 0 -123.4137 Td (1960 panic\("sched locks"\);) 131.0554 Tj 0 -132.9071 Td -(1961 if\(cp->state == RUNNING\)) 135.4239 Tj +(1961 if\(proc->state == RUNNING\)) 144.161 Tj 0 -142.4004 Td (1962 panic\("sched running"\);) 139.7925 Tj 0 -151.8938 Td @@ -9068,11 +9125,11 @@ q 0 -170.8805 Td (1965 ) 21.8426 Tj 0 -180.3739 Td -(1966 intena = c->intena;) 113.5814 Tj +(1966 intena = cpu->intena;) 122.3184 Tj 0 -189.8672 Td -(1967 swtch\(&cp->context, c->context\);) 170.3721 Tj +(1967 swtch\(&proc->context, cpu->scheduler\);) 196.5831 Tj 0 -199.3606 Td -(1968 c->intena = intena;) 113.5814 Tj +(1968 cpu->intena = intena;) 122.3184 Tj 0 -208.8539 Td (1969 }) 26.2111 Tj 0 -218.3473 Td @@ -9088,7 +9145,7 @@ q 0 -265.8141 Td (1975 acquire\(&ptable.lock\); ) 135.4239 Tj 0 -275.3075 Td -(1976 cp->state = RUNNABLE;) 122.3184 Tj +(1976 proc->state = RUNNABLE;) 131.0554 Tj 0 -284.8008 Td (1977 sched\(\);) 65.5277 Tj 0 -294.2942 Td @@ -9185,11 +9242,11 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 9) 161.635 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 9) 161.635 Tj 0 -28.4801 Td (2000 // Atomically release lock and sleep on chan.) 218.4257 Tj 0 -37.9735 Td -(2001 // Reacquires lock when reawakened.) 174.7406 Tj +(2001 // Reacquires lock when awakened.) 166.0035 Tj 0 -47.4668 Td (2002 void) 39.3166 Tj 0 -56.9602 Td @@ -9197,7 +9254,7 @@ q 0 -66.4535 Td (2004 {) 26.2111 Tj 0 -75.9469 Td -(2005 if\(cp == 0\)) 78.6333 Tj +(2005 if\(proc == 0\)) 87.3703 Tj 0 -85.4403 Td (2006 panic\("sleep"\);) 104.8443 Tj 0 -94.9336 Td @@ -9233,9 +9290,9 @@ q 0 -237.334 Td (2022 // Go to sleep.) 96.1073 Tj 0 -246.8274 Td -(2023 cp->chan = chan;) 100.4758 Tj +(2023 proc->chan = chan;) 109.2129 Tj 0 -256.3207 Td -(2024 cp->state = SLEEPING;) 122.3184 Tj +(2024 proc->state = SLEEPING;) 131.0554 Tj 0 -265.8141 Td (2025 sched\(\);) 65.5277 Tj 0 -275.3075 Td @@ -9243,7 +9300,7 @@ q 0 -284.8008 Td (2027 // Tidy up.) 78.6333 Tj 0 -294.2942 Td -(2028 cp->chan = 0;) 87.3703 Tj +(2028 proc->chan = 0;) 96.1073 Tj 0 -303.7875 Td (2029 ) 21.8426 Tj 0 -313.2809 Td @@ -9304,7 +9361,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 10) 166.0035 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 10) 166.0035 Tj 0 -28.4801 Td (2050 // Wake up all processes sleeping on chan.) 205.3202 Tj 0 -37.9735 Td @@ -9350,7 +9407,7 @@ q 0 -227.8407 Td (2071 // Kill the process with the given pid.) 192.2146 Tj 0 -237.334 Td -(2072 // Process won't actually exit until it returns) 227.1628 Tj +(2072 // Process won't exit until it returns) 187.8461 Tj 0 -246.8274 Td (2073 // to user space \(see trap in trap.c\).) 187.8461 Tj 0 -256.3207 Td @@ -9454,14 +9511,13 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 11) 166.0035 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 11) 166.0035 Tj 0 -28.4801 Td (2100 // Exit the current process. Does not return.) 222.7942 Tj 0 -37.9735 Td -(2101 // Exited processes remain in the zombie state) 222.7942 Tj +(2101 // An exited process remains in the zombie state) 231.5313 Tj 0 -47.4668 Td -(2102 // until their parent calls wait\(\) to find out they exit\ -ed.) 279.5849 Tj +(2102 // until its parent calls wait\(\) to find out it exited.) 262.1109 Tj 0 -56.9602 Td (2103 void) 39.3166 Tj 0 -66.4535 Td @@ -9475,7 +9531,7 @@ ed.) 279.5849 Tj 0 -104.427 Td (2108 ) 21.8426 Tj 0 -113.9203 Td -(2109 if\(cp == initproc\)) 109.2129 Tj +(2109 if\(proc == initproc\)) 117.9499 Tj 0 -123.4137 Td (2110 panic\("init exiting"\);) 135.4239 Tj 0 -132.9071 Td @@ -9485,11 +9541,11 @@ ed.) 279.5849 Tj 0 -151.8938 Td (2113 for\(fd = 0; fd < NOFILE; fd++\){) 166.0035 Tj 0 -161.3871 Td -(2114 if\(cp->ofile[fd]\){) 117.9499 Tj +(2114 if\(proc->ofile[fd]\){) 126.6869 Tj 0 -170.8805 Td -(2115 fileclose\(cp->ofile[fd]\);) 157.2665 Tj +(2115 fileclose\(proc->ofile[fd]\);) 166.0035 Tj 0 -180.3739 Td -(2116 cp->ofile[fd] = 0;) 126.6869 Tj +(2116 proc->ofile[fd] = 0;) 135.4239 Tj 0 -189.8672 Td (2117 }) 43.6851 Tj 0 -199.3606 Td @@ -9497,9 +9553,9 @@ ed.) 279.5849 Tj 0 -208.8539 Td (2119 ) 21.8426 Tj 0 -218.3473 Td -(2120 iput\(cp->cwd\);) 91.7388 Tj +(2120 iput\(proc->cwd\);) 100.4758 Tj 0 -227.8407 Td -(2121 cp->cwd = 0;) 83.0018 Tj +(2121 proc->cwd = 0;) 91.7388 Tj 0 -237.334 Td (2122 ) 21.8426 Tj 0 -246.8274 Td @@ -9509,7 +9565,7 @@ ed.) 279.5849 Tj 0 -265.8141 Td (2125 // Parent might be sleeping in wait\(\).) 196.5831 Tj 0 -275.3075 Td -(2126 wakeup1\(cp->parent\);) 117.9499 Tj +(2126 wakeup1\(proc->parent\);) 126.6869 Tj 0 -284.8008 Td (2127 ) 21.8426 Tj 0 -294.2942 Td @@ -9517,7 +9573,7 @@ ed.) 279.5849 Tj 0 -303.7875 Td (2129 for\(p = ptable.proc; p < &ptable.proc[NPROC]; p++\){) 253.3738 Tj 0 -313.2809 Td -(2130 if\(p->parent == cp\){) 126.6869 Tj +(2130 if\(p->parent == proc\){) 135.4239 Tj 0 -322.7743 Td (2131 p->parent = initproc;) 139.7925 Tj 0 -332.2676 Td @@ -9533,7 +9589,7 @@ ed.) 279.5849 Tj 0 -379.7344 Td (2137 // Jump into the scheduler, never to return.) 222.7942 Tj 0 -389.2278 Td -(2138 cp->state = ZOMBIE;) 113.5814 Tj +(2138 proc->state = ZOMBIE;) 122.3184 Tj 0 -398.7211 Td (2139 sched\(\);) 65.5277 Tj 0 -408.2145 Td @@ -9574,7 +9630,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/proc.c Page 12) 166.0035 Tj +(Aug 30 21:46 2009 xv6/proc.c Page 12) 166.0035 Tj 0 -28.4801 Td (2150 // Wait for a child process to exit and return its pid.) 262.1109 Tj 0 -37.9735 Td @@ -9602,7 +9658,7 @@ q 0 -142.4004 Td (2162 for\(p = ptable.proc; p < &ptable.proc[NPROC]; p++\){) 262.1109 Tj 0 -151.8938 Td -(2163 if\(p->parent != cp\)) 131.0554 Tj +(2163 if\(p->parent != proc\)) 139.7925 Tj 0 -161.3871 Td (2164 continue;) 96.1073 Tj 0 -170.8805 Td @@ -9640,7 +9696,7 @@ q 0 -322.7743 Td (2181 // No point waiting if we don't have any children.) 257.7424 Tj 0 -332.2676 Td -(2182 if\(!havekids || cp->killed\){) 161.635 Tj +(2182 if\(!havekids || proc->killed\){) 170.3721 Tj 0 -341.761 Td (2183 release\(&ptable.lock\);) 144.161 Tj 0 -351.2543 Td @@ -9653,7 +9709,7 @@ q (2187 // Wait for children to exit. \(See wakeup1 call in p\ roc_exit.\)) 314.533 Tj 0 -389.2278 Td -(2188 sleep\(cp, &ptable.lock\); ) 152.898 Tj +(2188 sleep\(proc, &ptable.lock\); ) 161.635 Tj 0 -398.7211 Td (2189 }) 34.9481 Tj 0 -408.2145 Td @@ -9725,7 +9781,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/swtch.S Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/swtch.S Page 1) 166.0035 Tj 0 -28.4801 Td (2200 # Context switch) 91.7388 Tj 0 -37.9735 Td @@ -9845,7 +9901,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kalloc.c Page 1) 170.3721 Tj +(Aug 30 21:46 2009 xv6/kalloc.c Page 1) 170.3721 Tj 0 -28.4801 Td (2250 // Physical memory allocator, intended to allocate) 240.2683 Tj 0 -37.9735 Td @@ -10000,7 +10056,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kalloc.c Page 2) 170.3721 Tj +(Aug 30 21:46 2009 xv6/kalloc.c Page 2) 170.3721 Tj 0 -28.4801 Td (2300 // Free the len bytes of memory pointed at by v,) 231.5313 Tj 0 -37.9735 Td @@ -10122,7 +10178,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kalloc.c Page 3) 170.3721 Tj +(Aug 30 21:46 2009 xv6/kalloc.c Page 3) 170.3721 Tj 0 -28.4801 Td (2350 // Allocate n bytes of physical memory.) 192.2146 Tj 0 -37.9735 Td @@ -10272,7 +10328,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/traps.h Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/traps.h Page 1) 166.0035 Tj 0 -28.4801 Td (2400 // x86 trap and interrupt constants.) 179.1091 Tj 0 -37.9735 Td @@ -10397,7 +10453,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/vectors.pl Page 1) 179.1091 Tj +(Aug 30 21:46 2009 xv6/vectors.pl Page 1) 179.1091 Tj 0 -28.4801 Td (2450 #!/usr/bin/perl -w) 100.4758 Tj 0 -37.9735 Td @@ -10548,7 +10604,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/trapasm.S Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/trapasm.S Page 1) 174.7406 Tj 0 -28.4801 Td (2500 #define SEG_KCODE 1 // kernel code) 174.7406 Tj 0 -37.9735 Td @@ -10667,7 +10723,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/trap.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/trap.c Page 1) 161.635 Tj 0 -28.4801 Td (2550 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -10819,7 +10875,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/trap.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/trap.c Page 2) 161.635 Tj 0 -28.4801 Td (2600 void) 39.3166 Tj 0 -37.9735 Td @@ -10829,15 +10885,15 @@ q 0 -56.9602 Td (2603 if\(tf->trapno == T_SYSCALL\){) 152.898 Tj 0 -66.4535 Td -(2604 if\(cp->killed\)) 100.4758 Tj +(2604 if\(proc->killed\)) 109.2129 Tj 0 -75.9469 Td (2605 exit\(\);) 78.6333 Tj 0 -85.4403 Td -(2606 cp->tf = tf;) 91.7388 Tj +(2606 proc->tf = tf;) 100.4758 Tj 0 -94.9336 Td (2607 syscall\(\);) 83.0018 Tj 0 -104.427 Td -(2608 if\(cp->killed\)) 100.4758 Tj +(2608 if\(proc->killed\)) 109.2129 Tj 0 -113.9203 Td (2609 exit\(\);) 78.6333 Tj 0 -123.4137 Td @@ -10851,7 +10907,7 @@ q 0 -161.3871 Td (2614 case T_IRQ0 + IRQ_TIMER:) 135.4239 Tj 0 -170.8805 Td -(2615 if\(cpu\(\) == 0\){) 104.8443 Tj +(2615 if\(cpu->id == 0\){) 113.5814 Tj 0 -180.3739 Td (2616 acquire\(&tickslock\);) 135.4239 Tj 0 -189.8672 Td @@ -10897,7 +10953,7 @@ q 0 -379.7344 Td (2637 cprintf\("cpu%d: spurious interrupt at %x:%x\\n",) 244.6368 Tj 0 -389.2278 Td -(2638 cpu\(\), tf->cs, tf->eip\);) 179.1091 Tj +(2638 cpu->id, tf->cs, tf->eip\);) 187.8461 Tj 0 -398.7211 Td (2639 lapiceoi\(\);) 87.3703 Tj 0 -408.2145 Td @@ -10907,13 +10963,13 @@ q 0 -427.2012 Td (2642 default:) 65.5277 Tj 0 -436.6946 Td -(2643 if\(cp == 0 || \(tf->cs&3\) == 0\){) 174.7406 Tj +(2643 if\(proc == 0 || \(tf->cs&3\) == 0\){) 183.4776 Tj 0 -446.1879 Td (2644 // In kernel, it must be our mistake.) 209.6887 Tj 0 -455.6813 Td (2645 cprintf\("unexpected trap %d from cpu %d eip %x\\n",) 266.4794 Tj 0 -465.1747 Td -(2646 tf->trapno, cpu\(\), tf->eip\);) 205.3202 Tj +(2646 tf->trapno, cpu->id, tf->eip\);) 214.0572 Tj 0 -474.668 Td (2647 panic\("trap"\);) 109.2129 Tj 0 -484.1614 Td @@ -10938,15 +10994,15 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/trap.c Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/trap.c Page 3) 161.635 Tj 0 -28.4801 Td (2650 cprintf\("pid %d %s: trap %d err %d on cpu %d eip %x -\ - kill proc\\n",) 336.3756 Tj 0 -37.9735 Td -(2651 cp->pid, cp->name, tf->trapno, tf->err, cpu\(\)\ -, tf->eip\);) 318.9016 Tj +(2651 proc->pid, proc->name, tf->trapno, tf->err, cp\ +u->id, tf->eip\);) 345.1126 Tj 0 -47.4668 Td -(2652 cp->killed = 1;) 104.8443 Tj +(2652 proc->killed = 1;) 113.5814 Tj 0 -56.9602 Td (2653 }) 34.9481 Tj 0 -66.4535 Td @@ -10960,7 +11016,7 @@ er space.) 314.533 Tj 0 -94.9336 Td (2657 // until it gets to the regular system call return.\)) 257.7424 Tj 0 -104.427 Td -(2658 if\(cp && cp->killed && \(tf->cs&3\) == DPL_USER\)) 231.5313 Tj +(2658 if\(proc && proc->killed && \(tf->cs&3\) == DPL_USER\)) 249.0053 Tj 0 -113.9203 Td (2659 exit\(\);) 69.8962 Tj 0 -123.4137 Td @@ -10971,8 +11027,8 @@ er space.) 314.533 Tj (2662 // If interrupts were on while locks held, would need to\ check nlock.) 332.0071 Tj 0 -151.8938 Td -(2663 if\(cp && cp->state == RUNNING && tf->trapno == T_IRQ0+I\ -RQ_TIMER\)) 310.1645 Tj +(2663 if\(proc && proc->state == RUNNING && tf->trapno == T_IR\ +Q0+IRQ_TIMER\)) 327.6386 Tj 0 -161.3871 Td (2664 yield\(\);) 74.2647 Tj 0 -170.8805 Td @@ -10980,7 +11036,7 @@ RQ_TIMER\)) 310.1645 Tj 0 -180.3739 Td (2666 // Check if the process has been killed since we yielded) 275.2164 Tj 0 -189.8672 Td -(2667 if\(cp && cp->killed && \(tf->cs&3\) == DPL_USER\)) 231.5313 Tj +(2667 if\(proc && proc->killed && \(tf->cs&3\) == DPL_USER\)) 249.0053 Tj 0 -199.3606 Td (2668 exit\(\);) 69.8962 Tj 0 -208.8539 Td @@ -11094,7 +11150,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/syscall.h Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/syscall.h Page 1) 174.7406 Tj 0 -28.4801 Td (2700 // System call numbers) 117.9499 Tj 0 -37.9735 Td @@ -11213,7 +11269,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/syscall.c Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/syscall.c Page 1) 174.7406 Tj 0 -28.4801 Td (2750 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -11310,7 +11366,7 @@ nt at it.) 314.533 Tj 0 -455.6813 Td (2795 {) 26.2111 Tj 0 -465.1747 Td -(2796 return fetchint\(cp, cp->tf->esp + 4 + 4*n, ip\);) 235.8998 Tj +(2796 return fetchint\(proc, proc->tf->esp + 4 + 4*n, ip\);) 253.3738 Tj 0 -474.668 Td (2797 }) 26.2111 Tj 0 -484.1614 Td @@ -11366,7 +11422,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/syscall.c Page 2) 174.7406 Tj +(Aug 30 21:46 2009 xv6/syscall.c Page 2) 174.7406 Tj 0 -28.4801 Td (2800 // Fetch the nth word-sized system call argument as a poin\ ter) 288.322 Tj @@ -11390,11 +11446,11 @@ ointer) 301.4275 Tj 0 -113.9203 Td (2809 return -1;) 83.0018 Tj 0 -123.4137 Td -(2810 if\(\(uint\)i >= cp->sz || \(uint\)i+size >= cp->sz\)) 235.8998 Tj +(2810 if\(\(uint\)i >= proc->sz || \(uint\)i+size >= proc->sz\)) 253.3738 Tj 0 -132.9071 Td (2811 return -1;) 83.0018 Tj 0 -142.4004 Td -(2812 *pp = cp->mem + i;) 109.2129 Tj +(2812 *pp = proc->mem + i;) 117.9499 Tj 0 -151.8938 Td (2813 return 0;) 69.8962 Tj 0 -161.3871 Td @@ -11425,7 +11481,7 @@ erminated.) 318.9016 Tj 0 -265.8141 Td (2825 return -1;) 83.0018 Tj 0 -275.3075 Td -(2826 return fetchstr\(cp, addr, pp\);) 161.635 Tj +(2826 return fetchstr\(proc, addr, pp\);) 170.3721 Tj 0 -284.8008 Td (2827 }) 26.2111 Tj 0 -294.2942 Td @@ -11490,7 +11546,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/syscall.c Page 3) 174.7406 Tj +(Aug 30 21:46 2009 xv6/syscall.c Page 3) 174.7406 Tj 0 -28.4801 Td (2850 static int \(*syscalls[]\)\(void\) = {) 170.3721 Tj 0 -37.9735 Td @@ -11548,20 +11604,20 @@ q 0 -284.8008 Td (2877 ) 21.8426 Tj 0 -294.2942 Td -(2878 num = cp->tf->eax;) 109.2129 Tj +(2878 num = proc->tf->eax;) 117.9499 Tj 0 -303.7875 Td (2879 if\(num >= 0 && num < NELEM\(syscalls\) && syscalls[num]\ \)) 266.4794 Tj 0 -313.2809 Td -(2880 cp->tf->eax = syscalls[num]\(\);) 170.3721 Tj +(2880 proc->tf->eax = syscalls[num]\(\);) 179.1091 Tj 0 -322.7743 Td (2881 else {) 56.7907 Tj 0 -332.2676 Td (2882 cprintf\("%d %s: unknown sys call %d\\n",) 209.6887 Tj 0 -341.761 Td -(2883 cp->pid, cp->name, num\);) 179.1091 Tj +(2883 proc->pid, proc->name, num\);) 196.5831 Tj 0 -351.2543 Td -(2884 cp->tf->eax = -1;) 113.5814 Tj +(2884 proc->tf->eax = -1;) 122.3184 Tj 0 -360.7477 Td (2885 }) 34.9481 Tj 0 -370.2411 Td @@ -11641,7 +11697,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysproc.c Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysproc.c Page 1) 174.7406 Tj 0 -28.4801 Td (2900 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -11721,7 +11777,7 @@ q 0 -389.2278 Td (2938 {) 26.2111 Tj 0 -398.7211 Td -(2939 return cp->pid;) 96.1073 Tj +(2939 return proc->pid;) 104.8443 Tj 0 -408.2145 Td (2940 }) 26.2111 Tj 0 -417.7079 Td @@ -11760,7 +11816,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysproc.c Page 2) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysproc.c Page 2) 174.7406 Tj 0 -28.4801 Td (2950 int) 34.9481 Tj 0 -37.9735 Td @@ -11778,7 +11834,7 @@ q 0 -94.9336 Td (2957 return -1;) 83.0018 Tj 0 -104.427 Td -(2958 addr = cp->sz;) 91.7388 Tj +(2958 addr = proc->sz;) 100.4758 Tj 0 -113.9203 Td (2959 if\(growproc\(n\) < 0\)) 113.5814 Tj 0 -123.4137 Td @@ -11810,7 +11866,7 @@ q 0 -246.8274 Td (2973 while\(ticks - ticks0 < n\){) 144.161 Tj 0 -256.3207 Td -(2974 if\(cp->killed\){) 104.8443 Tj +(2974 if\(proc->killed\){) 113.5814 Tj 0 -265.8141 Td (2975 release\(&tickslock\);) 135.4239 Tj 0 -275.3075 Td @@ -11910,7 +11966,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/buf.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/buf.h Page 1) 157.2665 Tj 0 -28.4801 Td (3000 struct buf {) 74.2647 Tj 0 -37.9735 Td @@ -12029,7 +12085,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fcntl.h Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/fcntl.h Page 1) 166.0035 Tj 0 -28.4801 Td (3050 #define O_RDONLY 0x000) 122.3184 Tj 0 -37.9735 Td @@ -12179,7 +12235,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/stat.h Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/stat.h Page 1) 161.635 Tj 0 -28.4801 Td (3100 #define T_DIR 1 // Directory) 157.2665 Tj 0 -37.9735 Td @@ -12298,7 +12354,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.h Page 1) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.h Page 1) 152.898 Tj 0 -28.4801 Td (3150 // On-disk file system format.) 152.898 Tj 0 -37.9735 Td @@ -12453,7 +12509,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.h Page 2) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.h Page 2) 152.898 Tj 0 -28.4801 Td (3200 // Directory is a file containing a sequence of dirent str\ uctures.) 310.1645 Tj @@ -12573,7 +12629,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/file.h Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/file.h Page 1) 161.635 Tj 0 -28.4801 Td (3250 struct file {) 78.6333 Tj 0 -37.9735 Td @@ -12723,7 +12779,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ide.c Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/ide.c Page 1) 157.2665 Tj 0 -28.4801 Td (3300 // Simple PIO-based \(non-DMA\) IDE driver code.) 222.7942 Tj 0 -37.9735 Td @@ -12844,7 +12900,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ide.c Page 2) 157.2665 Tj +(Aug 30 21:46 2009 xv6/ide.c Page 2) 157.2665 Tj 0 -28.4801 Td (3350 void) 39.3166 Tj 0 -37.9735 Td @@ -12995,7 +13051,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ide.c Page 3) 157.2665 Tj +(Aug 30 21:46 2009 xv6/ide.c Page 3) 157.2665 Tj 0 -28.4801 Td (3400 // Interrupt handler.) 113.5814 Tj 0 -37.9735 Td @@ -13114,7 +13170,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ide.c Page 4) 157.2665 Tj +(Aug 30 21:46 2009 xv6/ide.c Page 4) 157.2665 Tj 0 -28.4801 Td (3450 // Sync buf with disk.) 117.9499 Tj 0 -37.9735 Td @@ -13174,7 +13230,8 @@ ALID.) 297.059 Tj 0 -284.8008 Td (3477 // Wait for request to finish.) 161.635 Tj 0 -294.2942 Td -(3478 // Assuming will not sleep too long: ignore cp->killed.) 270.8479 Tj +(3478 // Assuming will not sleep too long: ignore proc->killed\ +.) 279.5849 Tj 0 -303.7875 Td (3479 while\(\(b->flags & \(B_VALID|B_DIRTY\)\) != B_VALID\)) 240.2683 Tj 0 -313.2809 Td @@ -13266,7 +13323,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bio.c Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/bio.c Page 1) 157.2665 Tj 0 -28.4801 Td (3500 // Buffer cache.) 91.7388 Tj 0 -37.9735 Td @@ -13391,7 +13448,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bio.c Page 2) 157.2665 Tj +(Aug 30 21:46 2009 xv6/bio.c Page 2) 157.2665 Tj 0 -28.4801 Td (3550 // Create linked list of buffers) 170.3721 Tj 0 -37.9735 Td @@ -13543,7 +13600,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/bio.c Page 3) 157.2665 Tj +(Aug 30 21:46 2009 xv6/bio.c Page 3) 157.2665 Tj 0 -28.4801 Td (3600 // Return a B_BUSY buf with the contents of the indicated \ disk sector.) 327.6386 Tj @@ -13663,7 +13720,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 1) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 1) 152.898 Tj 0 -28.4801 Td (3650 // File system implementation. Four layers:) 214.0572 Tj 0 -37.9735 Td @@ -13818,7 +13875,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 2) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 2) 152.898 Tj 0 -28.4801 Td (3700 // Blocks.) 65.5277 Tj 0 -37.9735 Td @@ -13939,7 +13996,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 3) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 3) 152.898 Tj 0 -28.4801 Td (3750 // Inodes.) 65.5277 Tj 0 -37.9735 Td @@ -13973,7 +14030,7 @@ y after) 305.796 Tj cached) 305.796 Tj 0 -151.8938 Td (3763 // inode; references are typically kept in struct file and\ - in cp->cwd.) 327.6386 Tj + in proc->cwd.) 336.3756 Tj 0 -161.3871 Td (3764 // When ip->ref falls to zero, the inode is no longer cach\ ed.) 288.322 Tj @@ -14101,7 +14158,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 4) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 4) 152.898 Tj 0 -28.4801 Td (3800 // Allocate a new inode with the given type on device dev.) 275.2164 Tj 0 -37.9735 Td @@ -14221,7 +14278,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 5) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 5) 152.898 Tj 0 -28.4801 Td (3850 // Find the inode with number inum on device dev) 231.5313 Tj 0 -37.9735 Td @@ -14374,7 +14431,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 6) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 6) 152.898 Tj 0 -28.4801 Td (3900 // Lock the given inode.) 126.6869 Tj 0 -37.9735 Td @@ -14493,7 +14550,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 7) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 7) 152.898 Tj 0 -28.4801 Td (3950 // Caller holds reference to unlocked ip. Drop reference.) 275.2164 Tj 0 -37.9735 Td @@ -14644,7 +14701,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 8) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 8) 152.898 Tj 0 -28.4801 Td (4000 // Inode contents) 96.1073 Tj 0 -37.9735 Td @@ -14767,7 +14824,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 9) 152.898 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 9) 152.898 Tj 0 -28.4801 Td (4050 // Truncate inode \(discard contents\).) 183.4776 Tj 0 -37.9735 Td @@ -14917,7 +14974,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 10) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 10) 157.2665 Tj 0 -28.4801 Td (4100 // Read data from inode.) 126.6869 Tj 0 -37.9735 Td @@ -15037,7 +15094,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 11) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 11) 157.2665 Tj 0 -28.4801 Td (4150 // Write data to inode.) 122.3184 Tj 0 -37.9735 Td @@ -15188,7 +15245,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 12) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 12) 157.2665 Tj 0 -28.4801 Td (4200 // Directories) 83.0018 Tj 0 -37.9735 Td @@ -15307,7 +15364,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 13) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 13) 157.2665 Tj 0 -28.4801 Td (4250 // Write a new directory entry \(name, inum\) into the dir\ ectory dp.) 310.1645 Tj @@ -15460,7 +15517,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 14) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 14) 157.2665 Tj 0 -28.4801 Td (4300 // Paths) 56.7907 Tj 0 -37.9735 Td @@ -15583,7 +15640,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/fs.c Page 15) 157.2665 Tj +(Aug 30 21:46 2009 xv6/fs.c Page 15) 157.2665 Tj 0 -28.4801 Td (4350 // Look up and return the inode for a path name.) 231.5313 Tj 0 -37.9735 Td @@ -15609,7 +15666,7 @@ y the final) 323.2701 Tj 0 -123.4137 Td (4360 else) 48.0537 Tj 0 -132.9071 Td -(4361 ip = idup\(cp->cwd\);) 122.3184 Tj +(4361 ip = idup\(proc->cwd\);) 131.0554 Tj 0 -142.4004 Td (4362 ) 21.8426 Tj 0 -151.8938 Td @@ -15735,7 +15792,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/file.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/file.c Page 1) 161.635 Tj 0 -28.4801 Td (4400 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -15743,95 +15800,95 @@ q 0 -47.4668 Td (4402 #include "param.h") 100.4758 Tj 0 -56.9602 Td -(4403 #include "file.h") 96.1073 Tj +(4403 #include "fs.h") 87.3703 Tj 0 -66.4535 Td -(4404 #include "spinlock.h") 113.5814 Tj +(4404 #include "file.h") 96.1073 Tj 0 -75.9469 Td -(4405 ) 21.8426 Tj +(4405 #include "spinlock.h") 113.5814 Tj 0 -85.4403 Td -(4406 struct devsw devsw[NDEV];) 131.0554 Tj +(4406 ) 21.8426 Tj 0 -94.9336 Td -(4407 struct {) 56.7907 Tj +(4407 struct devsw devsw[NDEV];) 131.0554 Tj 0 -104.427 Td -(4408 struct spinlock lock;) 122.3184 Tj +(4408 struct {) 56.7907 Tj 0 -113.9203 Td -(4409 struct file file[NFILE];) 135.4239 Tj +(4409 struct spinlock lock;) 122.3184 Tj 0 -123.4137 Td -(4410 } ftable;) 61.1592 Tj +(4410 struct file file[NFILE];) 135.4239 Tj 0 -132.9071 Td -(4411 ) 21.8426 Tj +(4411 } ftable;) 61.1592 Tj 0 -142.4004 Td -(4412 void) 39.3166 Tj +(4412 ) 21.8426 Tj 0 -151.8938 Td -(4413 fileinit\(void\)) 83.0018 Tj +(4413 void) 39.3166 Tj 0 -161.3871 Td -(4414 {) 26.2111 Tj +(4414 fileinit\(void\)) 83.0018 Tj 0 -170.8805 Td -(4415 initlock\(&ftable.lock, "ftable"\);) 174.7406 Tj +(4415 {) 26.2111 Tj 0 -180.3739 Td -(4416 }) 26.2111 Tj +(4416 initlock\(&ftable.lock, "ftable"\);) 174.7406 Tj 0 -189.8672 Td -(4417 ) 21.8426 Tj +(4417 }) 26.2111 Tj 0 -199.3606 Td -(4418 // Allocate a file structure.) 148.5295 Tj +(4418 ) 21.8426 Tj 0 -208.8539 Td -(4419 struct file*) 74.2647 Tj +(4419 // Allocate a file structure.) 148.5295 Tj 0 -218.3473 Td -(4420 filealloc\(void\)) 87.3703 Tj +(4420 struct file*) 74.2647 Tj 0 -227.8407 Td -(4421 {) 26.2111 Tj +(4421 filealloc\(void\)) 87.3703 Tj 0 -237.334 Td -(4422 struct file *f;) 96.1073 Tj +(4422 {) 26.2111 Tj 0 -246.8274 Td -(4423 ) 21.8426 Tj +(4423 struct file *f;) 96.1073 Tj 0 -256.3207 Td -(4424 acquire\(&ftable.lock\);) 126.6869 Tj +(4424 ) 21.8426 Tj 0 -265.8141 Td -(4425 for\(f = ftable.file; f < ftable.file + NFILE; f++\){) 253.3738 Tj +(4425 acquire\(&ftable.lock\);) 126.6869 Tj 0 -275.3075 Td -(4426 if\(f->ref == 0\){) 109.2129 Tj +(4426 for\(f = ftable.file; f < ftable.file + NFILE; f++\){) 253.3738 Tj 0 -284.8008 Td -(4427 f->ref = 1;) 96.1073 Tj +(4427 if\(f->ref == 0\){) 109.2129 Tj 0 -294.2942 Td -(4428 release\(&ftable.lock\);) 144.161 Tj +(4428 f->ref = 1;) 96.1073 Tj 0 -303.7875 Td -(4429 return f;) 87.3703 Tj +(4429 release\(&ftable.lock\);) 144.161 Tj 0 -313.2809 Td -(4430 }) 43.6851 Tj +(4430 return f;) 87.3703 Tj 0 -322.7743 Td -(4431 }) 34.9481 Tj +(4431 }) 43.6851 Tj 0 -332.2676 Td -(4432 release\(&ftable.lock\);) 126.6869 Tj +(4432 }) 34.9481 Tj 0 -341.761 Td -(4433 return 0;) 69.8962 Tj +(4433 release\(&ftable.lock\);) 126.6869 Tj 0 -351.2543 Td -(4434 }) 26.2111 Tj +(4434 return 0;) 69.8962 Tj 0 -360.7477 Td -(4435 ) 21.8426 Tj +(4435 }) 26.2111 Tj 0 -370.2411 Td -(4436 // Increment ref count for file f.) 170.3721 Tj +(4436 ) 21.8426 Tj 0 -379.7344 Td -(4437 struct file*) 74.2647 Tj +(4437 // Increment ref count for file f.) 170.3721 Tj 0 -389.2278 Td -(4438 filedup\(struct file *f\)) 122.3184 Tj +(4438 struct file*) 74.2647 Tj 0 -398.7211 Td -(4439 {) 26.2111 Tj +(4439 filedup\(struct file *f\)) 122.3184 Tj 0 -408.2145 Td -(4440 acquire\(&ftable.lock\);) 126.6869 Tj +(4440 {) 26.2111 Tj 0 -417.7079 Td -(4441 if\(f->ref < 1\)) 91.7388 Tj +(4441 acquire\(&ftable.lock\);) 126.6869 Tj 0 -427.2012 Td -(4442 panic\("filedup"\);) 113.5814 Tj +(4442 if\(f->ref < 1\)) 91.7388 Tj 0 -436.6946 Td -(4443 f->ref++;) 69.8962 Tj +(4443 panic\("filedup"\);) 113.5814 Tj 0 -446.1879 Td -(4444 release\(&ftable.lock\);) 126.6869 Tj +(4444 f->ref++;) 69.8962 Tj 0 -455.6813 Td -(4445 return f;) 69.8962 Tj +(4445 release\(&ftable.lock\);) 126.6869 Tj 0 -465.1747 Td -(4446 }) 26.2111 Tj +(4446 return f;) 69.8962 Tj 0 -474.668 Td -(4447 ) 21.8426 Tj +(4447 }) 26.2111 Tj 0 -484.1614 Td (4448 ) 21.8426 Tj 0 -493.6547 Td @@ -15854,7 +15911,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/file.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/file.c Page 2) 161.635 Tj 0 -28.4801 Td (4450 // Close file f. \(Decrement ref count, close when reache\ s 0.\)) 292.6905 Tj @@ -16005,7 +16062,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/file.c Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/file.c Page 3) 161.635 Tj 0 -28.4801 Td (4500 // Read from file f. Addr is kernel address.) 218.4257 Tj 0 -37.9735 Td @@ -16124,7 +16181,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 1) 174.7406 Tj 0 -28.4801 Td (4550 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -16168,7 +16225,8 @@ ruct file.) 318.9016 Tj 0 -208.8539 Td (4569 return -1;) 83.0018 Tj 0 -218.3473 Td -(4570 if\(fd < 0 || fd >= NOFILE || \(f=cp->ofile[fd]\) == 0\)) 257.7424 Tj +(4570 if\(fd < 0 || fd >= NOFILE || \(f=proc->ofile[fd]\) == 0\ +\)) 266.4794 Tj 0 -227.8407 Td (4571 return -1;) 83.0018 Tj 0 -237.334 Td @@ -16202,9 +16260,9 @@ ruct file.) 318.9016 Tj 0 -370.2411 Td (4586 for\(fd = 0; fd < NOFILE; fd++\){) 166.0035 Tj 0 -379.7344 Td -(4587 if\(cp->ofile[fd] == 0\){) 139.7925 Tj +(4587 if\(proc->ofile[fd] == 0\){) 148.5295 Tj 0 -389.2278 Td -(4588 cp->ofile[fd] = f;) 126.6869 Tj +(4588 proc->ofile[fd] = f;) 135.4239 Tj 0 -398.7211 Td (4589 return fd;) 91.7388 Tj 0 -408.2145 Td @@ -16276,7 +16334,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 2) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 2) 174.7406 Tj 0 -28.4801 Td (4600 int) 34.9481 Tj 0 -37.9735 Td @@ -16372,7 +16430,7 @@ tr\(1, &p, n\) < 0\)) 327.6386 Tj 0 -455.6813 Td (4645 return -1;) 83.0018 Tj 0 -465.1747 Td -(4646 cp->ofile[fd] = 0;) 109.2129 Tj +(4646 proc->ofile[fd] = 0;) 117.9499 Tj 0 -474.668 Td (4647 fileclose\(f\);) 87.3703 Tj 0 -484.1614 Td @@ -16397,7 +16455,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 3) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 3) 174.7406 Tj 0 -28.4801 Td (4650 int) 34.9481 Tj 0 -37.9735 Td @@ -16549,7 +16607,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 4) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 4) 174.7406 Tj 0 -28.4801 Td (4700 // Is the directory dp empty except for "." and ".." ?) 257.7424 Tj 0 -37.9735 Td @@ -16670,7 +16728,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 5) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 5) 174.7406 Tj 0 -28.4801 Td (4750 int) 34.9481 Tj 0 -37.9735 Td @@ -16822,7 +16880,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 6) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 6) 174.7406 Tj 0 -28.4801 Td (4800 static struct inode*) 109.2129 Tj 0 -37.9735 Td @@ -16942,7 +17000,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 7) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 7) 174.7406 Tj 0 -28.4801 Td (4850 int) 34.9481 Tj 0 -37.9735 Td @@ -17094,7 +17152,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 8) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 8) 174.7406 Tj 0 -28.4801 Td (4900 int) 34.9481 Tj 0 -37.9735 Td @@ -17184,9 +17242,9 @@ q 0 -427.2012 Td (4942 iunlock\(ip\);) 83.0018 Tj 0 -436.6946 Td -(4943 iput\(cp->cwd\);) 91.7388 Tj +(4943 iput\(proc->cwd\);) 100.4758 Tj 0 -446.1879 Td -(4944 cp->cwd = ip;) 87.3703 Tj +(4944 proc->cwd = ip;) 96.1073 Tj 0 -455.6813 Td (4945 return 0;) 69.8962 Tj 0 -465.1747 Td @@ -17215,7 +17273,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sysfile.c Page 9) 174.7406 Tj +(Aug 30 21:46 2009 xv6/sysfile.c Page 9) 174.7406 Tj 0 -28.4801 Td (4950 int) 34.9481 Tj 0 -37.9735 Td @@ -17244,7 +17302,7 @@ q 0 -142.4004 Td (4962 return -1;) 91.7388 Tj 0 -151.8938 Td -(4963 if\(fetchint\(cp, uargv+4*i, \(int*\)&uarg\) < 0\)) 231.5313 Tj +(4963 if\(fetchint\(proc, uargv+4*i, \(int*\)&uarg\) < 0\)) 240.2683 Tj 0 -161.3871 Td (4964 return -1;) 91.7388 Tj 0 -170.8805 Td @@ -17256,7 +17314,7 @@ q 0 -199.3606 Td (4968 }) 43.6851 Tj 0 -208.8539 Td -(4969 if\(fetchstr\(cp, uarg, &argv[i]\) < 0\)) 196.5831 Tj +(4969 if\(fetchstr\(proc, uarg, &argv[i]\) < 0\)) 205.3202 Tj 0 -218.3473 Td (4970 return -1;) 91.7388 Tj 0 -227.8407 Td @@ -17297,7 +17355,7 @@ q 0 -389.2278 Td (4988 if\(fd0 >= 0\)) 91.7388 Tj 0 -398.7211 Td -(4989 cp->ofile[fd0] = 0;) 131.0554 Tj +(4989 proc->ofile[fd0] = 0;) 139.7925 Tj 0 -408.2145 Td (4990 fileclose\(rf\);) 100.4758 Tj 0 -417.7079 Td @@ -17367,7 +17425,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/exec.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/exec.c Page 1) 161.635 Tj 0 -28.4801 Td (5000 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -17395,7 +17453,7 @@ q 0 -142.4004 Td (5012 int i, argc, arglen, len, off;) 161.635 Tj 0 -151.8938 Td -(5013 uint sz, sp, argp, x;) 122.3184 Tj +(5013 uint sz, sp, argp;) 109.2129 Tj 0 -161.3871 Td (5014 struct elfhdr elf;) 109.2129 Tj 0 -170.8805 Td @@ -17489,7 +17547,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/exec.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/exec.c Page 2) 161.635 Tj 0 -28.4801 Td (5050 sz += 4; // argv) 104.8443 Tj 0 -37.9735 Td @@ -17643,7 +17701,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/exec.c Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/exec.c Page 3) 161.635 Tj 0 -28.4801 Td (5100 // Save program name for debugging.) 183.4776 Tj 0 -37.9735 Td @@ -17653,21 +17711,21 @@ q 0 -56.9602 Td (5103 last = s+1;) 96.1073 Tj 0 -66.4535 Td -(5104 safestrcpy\(cp->name, last, sizeof\(cp->name\)\);) 227.1628 Tj +(5104 safestrcpy\(proc->name, last, sizeof\(proc->name\)\);) 244.6368 Tj 0 -75.9469 Td (5105 ) 21.8426 Tj 0 -85.4403 Td (5106 // Commit to the new image.) 148.5295 Tj 0 -94.9336 Td -(5107 kfree\(cp->mem, cp->sz\);) 131.0554 Tj +(5107 kfree\(proc->mem, proc->sz\);) 148.5295 Tj 0 -104.427 Td -(5108 cp->mem = mem;) 91.7388 Tj +(5108 proc->mem = mem;) 100.4758 Tj 0 -113.9203 Td -(5109 cp->sz = sz;) 83.0018 Tj +(5109 proc->sz = sz;) 91.7388 Tj 0 -123.4137 Td -(5110 cp->tf->eip = elf.entry; // main) 174.7406 Tj +(5110 proc->tf->eip = elf.entry; // main) 183.4776 Tj 0 -132.9071 Td -(5111 cp->tf->esp = sp;) 104.8443 Tj +(5111 proc->tf->esp = sp;) 113.5814 Tj 0 -142.4004 Td (5112 usegment\(\);) 78.6333 Tj 0 -151.8938 Td @@ -17762,7 +17820,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/pipe.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/pipe.c Page 1) 161.635 Tj 0 -28.4801 Td (5150 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -17774,86 +17832,86 @@ q 0 -66.4535 Td (5154 #include "proc.h") 96.1073 Tj 0 -75.9469 Td -(5155 #include "file.h") 96.1073 Tj +(5155 #include "fs.h") 87.3703 Tj 0 -85.4403 Td -(5156 #include "spinlock.h") 113.5814 Tj +(5156 #include "file.h") 96.1073 Tj 0 -94.9336 Td -(5157 ) 21.8426 Tj +(5157 #include "spinlock.h") 113.5814 Tj 0 -104.427 Td -(5158 #define PIPESIZE 512) 109.2129 Tj +(5158 ) 21.8426 Tj 0 -113.9203 Td -(5159 ) 21.8426 Tj +(5159 #define PIPESIZE 512) 109.2129 Tj 0 -123.4137 Td -(5160 struct pipe {) 78.6333 Tj +(5160 ) 21.8426 Tj 0 -132.9071 Td -(5161 struct spinlock lock;) 122.3184 Tj +(5161 struct pipe {) 78.6333 Tj 0 -142.4004 Td -(5162 char data[PIPESIZE];) 117.9499 Tj +(5162 struct spinlock lock;) 122.3184 Tj 0 -151.8938 Td -(5163 uint nread; // number of bytes read) 200.9517 Tj +(5163 char data[PIPESIZE];) 117.9499 Tj 0 -161.3871 Td -(5164 uint nwrite; // number of bytes written) 214.0572 Tj +(5164 uint nread; // number of bytes read) 200.9517 Tj 0 -170.8805 Td -(5165 int readopen; // read fd is still open) 205.3202 Tj +(5165 uint nwrite; // number of bytes written) 214.0572 Tj 0 -180.3739 Td -(5166 int writeopen; // write fd is still open) 209.6887 Tj +(5166 int readopen; // read fd is still open) 205.3202 Tj 0 -189.8672 Td -(5167 };) 30.5796 Tj +(5167 int writeopen; // write fd is still open) 209.6887 Tj 0 -199.3606 Td -(5168 ) 21.8426 Tj +(5168 };) 30.5796 Tj 0 -208.8539 Td -(5169 int) 34.9481 Tj +(5169 ) 21.8426 Tj 0 -218.3473 Td -(5170 pipealloc\(struct file **f0, struct file **f1\)) 218.4257 Tj +(5170 int) 34.9481 Tj 0 -227.8407 Td -(5171 {) 26.2111 Tj +(5171 pipealloc\(struct file **f0, struct file **f1\)) 218.4257 Tj 0 -237.334 Td -(5172 struct pipe *p;) 96.1073 Tj +(5172 {) 26.2111 Tj 0 -246.8274 Td -(5173 ) 21.8426 Tj +(5173 struct pipe *p;) 96.1073 Tj 0 -256.3207 Td -(5174 p = 0;) 56.7907 Tj +(5174 ) 21.8426 Tj 0 -265.8141 Td -(5175 *f0 = *f1 = 0;) 91.7388 Tj +(5175 p = 0;) 56.7907 Tj 0 -275.3075 Td -(5176 if\(\(*f0 = filealloc\(\)\) == 0 || \(*f1 = filealloc\(\)\ -\) == 0\)) 275.2164 Tj +(5176 *f0 = *f1 = 0;) 91.7388 Tj 0 -284.8008 Td -(5177 goto bad;) 78.6333 Tj +(5177 if\(\(*f0 = filealloc\(\)\) == 0 || \(*f1 = filealloc\(\)\ +\) == 0\)) 275.2164 Tj 0 -294.2942 Td -(5178 if\(\(p = \(struct pipe*\)kalloc\(PAGE\)\) == 0\)) 209.6887 Tj +(5178 goto bad;) 78.6333 Tj 0 -303.7875 Td -(5179 goto bad;) 78.6333 Tj +(5179 if\(\(p = \(struct pipe*\)kalloc\(PAGE\)\) == 0\)) 209.6887 Tj 0 -313.2809 Td -(5180 p->readopen = 1;) 100.4758 Tj +(5180 goto bad;) 78.6333 Tj 0 -322.7743 Td -(5181 p->writeopen = 1;) 104.8443 Tj +(5181 p->readopen = 1;) 100.4758 Tj 0 -332.2676 Td -(5182 p->nwrite = 0;) 91.7388 Tj +(5182 p->writeopen = 1;) 104.8443 Tj 0 -341.761 Td -(5183 p->nread = 0;) 87.3703 Tj +(5183 p->nwrite = 0;) 91.7388 Tj 0 -351.2543 Td -(5184 initlock\(&p->lock, "pipe"\);) 148.5295 Tj +(5184 p->nread = 0;) 87.3703 Tj 0 -360.7477 Td -(5185 \(*f0\)->type = FD_PIPE;) 126.6869 Tj +(5185 initlock\(&p->lock, "pipe"\);) 148.5295 Tj 0 -370.2411 Td -(5186 \(*f0\)->readable = 1;) 117.9499 Tj +(5186 \(*f0\)->type = FD_PIPE;) 126.6869 Tj 0 -379.7344 Td -(5187 \(*f0\)->writable = 0;) 117.9499 Tj +(5187 \(*f0\)->readable = 1;) 117.9499 Tj 0 -389.2278 Td -(5188 \(*f0\)->pipe = p;) 100.4758 Tj +(5188 \(*f0\)->writable = 0;) 117.9499 Tj 0 -398.7211 Td -(5189 \(*f1\)->type = FD_PIPE;) 126.6869 Tj +(5189 \(*f0\)->pipe = p;) 100.4758 Tj 0 -408.2145 Td -(5190 \(*f1\)->readable = 0;) 117.9499 Tj +(5190 \(*f1\)->type = FD_PIPE;) 126.6869 Tj 0 -417.7079 Td -(5191 \(*f1\)->writable = 1;) 117.9499 Tj +(5191 \(*f1\)->readable = 0;) 117.9499 Tj 0 -427.2012 Td -(5192 \(*f1\)->pipe = p;) 100.4758 Tj +(5192 \(*f1\)->writable = 1;) 117.9499 Tj 0 -436.6946 Td -(5193 return 0;) 69.8962 Tj +(5193 \(*f1\)->pipe = p;) 100.4758 Tj 0 -446.1879 Td -(5194 ) 21.8426 Tj +(5194 return 0;) 69.8962 Tj 0 -455.6813 Td (5195 ) 21.8426 Tj 0 -465.1747 Td @@ -17913,7 +17971,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/pipe.c Page 2) 161.635 Tj +(Aug 30 21:46 2009 xv6/pipe.c Page 2) 161.635 Tj 0 -28.4801 Td (5200 bad:) 43.6851 Tj 0 -37.9735 Td @@ -17989,7 +18047,7 @@ q 0 -370.2411 Td (5236 while\(p->nwrite == p->nread + PIPESIZE\) { ) 227.1628 Tj 0 -379.7344 Td -(5237 if\(p->readopen == 0 || cp->killed\){) 200.9517 Tj +(5237 if\(p->readopen == 0 || proc->killed\){) 209.6887 Tj 0 -389.2278 Td (5238 release\(&p->lock\);) 135.4239 Tj 0 -398.7211 Td @@ -18032,7 +18090,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/pipe.c Page 3) 161.635 Tj +(Aug 30 21:46 2009 xv6/pipe.c Page 3) 161.635 Tj 0 -28.4801 Td (5250 int) 34.9481 Tj 0 -37.9735 Td @@ -18048,7 +18106,7 @@ q 0 -85.4403 Td (5256 while\(p->nread == p->nwrite && p->writeopen\){ ) 235.8998 Tj 0 -94.9336 Td -(5257 if\(cp->killed\){) 104.8443 Tj +(5257 if\(proc->killed\){) 113.5814 Tj 0 -104.427 Td (5258 release\(&p->lock\);) 126.6869 Tj 0 -113.9203 Td @@ -18182,7 +18240,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/string.c Page 1) 170.3721 Tj +(Aug 30 21:46 2009 xv6/string.c Page 1) 170.3721 Tj 0 -28.4801 Td (5300 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -18301,7 +18359,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/string.c Page 2) 170.3721 Tj +(Aug 30 21:46 2009 xv6/string.c Page 2) 170.3721 Tj 0 -28.4801 Td (5350 int) 34.9481 Tj 0 -37.9735 Td @@ -18451,7 +18509,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mp.h Page 1) 152.898 Tj +(Aug 30 21:46 2009 xv6/mp.h Page 1) 152.898 Tj 0 -28.4801 Td (5400 // See MultiProcessor Specification Version 1.[14]) 240.2683 Tj 0 -37.9735 Td @@ -18575,7 +18633,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mp.h Page 2) 152.898 Tj +(Aug 30 21:46 2009 xv6/mp.h Page 2) 152.898 Tj 0 -28.4801 Td (5450 // Table entry types) 109.2129 Tj 0 -37.9735 Td @@ -18725,7 +18783,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mp.c Page 1) 152.898 Tj +(Aug 30 21:46 2009 xv6/mp.c Page 1) 152.898 Tj 0 -28.4801 Td (5500 // Multiprocessor bootstrap.) 144.161 Tj 0 -37.9735 Td @@ -18846,7 +18904,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mp.c Page 2) 152.898 Tj +(Aug 30 21:46 2009 xv6/mp.c Page 2) 152.898 Tj 0 -28.4801 Td (5550 // Search for the MP Floating Pointer Structure, which acc\ ording to the) 332.0071 Tj @@ -18999,7 +19057,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/mp.c Page 3) 152.898 Tj +(Aug 30 21:46 2009 xv6/mp.c Page 3) 152.898 Tj 0 -28.4801 Td (5600 void) 39.3166 Tj 0 -37.9735 Td @@ -19019,90 +19077,91 @@ q 0 -104.427 Td (5608 ) 21.8426 Tj 0 -113.9203 Td -(5609 bcpu = &cpus[ncpu];) 113.5814 Tj +(5609 bcpu = &cpus[0];) 100.4758 Tj 0 -123.4137 Td (5610 if\(\(conf = mpconfig\(&mp\)\) == 0\)) 166.0035 Tj 0 -132.9071 Td (5611 return;) 69.8962 Tj 0 -142.4004 Td -(5612 ) 21.8426 Tj +(5612 ismp = 1;) 69.8962 Tj 0 -151.8938 Td -(5613 ismp = 1;) 69.8962 Tj +(5613 lapic = \(uint*\)conf->lapicaddr;) 166.0035 Tj 0 -161.3871 Td -(5614 lapic = \(uint*\)conf->lapicaddr;) 166.0035 Tj -0 -170.8805 Td -(5615 ) 21.8426 Tj -0 -180.3739 Td -(5616 for\(p=\(uchar*\)\(conf+1\), e=\(uchar*\)conf+conf->leng\ +(5614 for\(p=\(uchar*\)\(conf+1\), e=\(uchar*\)conf+conf->leng\ th; papicid\) {) 161.635 Tj 0 -208.8539 Td -(5619 proc = \(struct mpproc*\)p;) 157.2665 Tj +(5619 cprintf\("mpinit: ncpu=%d apicpid=%d", ncpu, proc-\ +>apicid\);) 310.1645 Tj 0 -218.3473 Td -(5620 cpus[ncpu].apicid = proc->apicid;) 192.2146 Tj +(5620 panic\("mpinit"\);) 126.6869 Tj 0 -227.8407 Td -(5621 if\(proc->flags & MPBOOT\)) 152.898 Tj +(5621 }) 52.4222 Tj 0 -237.334 Td -(5622 bcpu = &cpus[ncpu];) 139.7925 Tj +(5622 if\(proc->flags & MPBOOT\)) 152.898 Tj 0 -246.8274 Td -(5623 ncpu++;) 78.6333 Tj +(5623 bcpu = &cpus[ncpu];) 139.7925 Tj 0 -256.3207 Td -(5624 p += sizeof\(struct mpproc\);) 166.0035 Tj +(5624 cpus[ncpu].id = ncpu;) 139.7925 Tj 0 -265.8141 Td -(5625 continue;) 87.3703 Tj +(5625 ncpu++;) 78.6333 Tj 0 -275.3075 Td -(5626 case MPIOAPIC:) 100.4758 Tj +(5626 p += sizeof\(struct mpproc\);) 166.0035 Tj 0 -284.8008 Td -(5627 ioapic = \(struct mpioapic*\)p;) 174.7406 Tj +(5627 continue;) 87.3703 Tj 0 -294.2942 Td -(5628 ioapicid = ioapic->apicno;) 161.635 Tj +(5628 case MPIOAPIC:) 100.4758 Tj 0 -303.7875 Td -(5629 p += sizeof\(struct mpioapic\);) 174.7406 Tj +(5629 ioapic = \(struct mpioapic*\)p;) 174.7406 Tj 0 -313.2809 Td -(5630 continue;) 87.3703 Tj +(5630 ioapicid = ioapic->apicno;) 161.635 Tj 0 -322.7743 Td -(5631 case MPBUS:) 87.3703 Tj +(5631 p += sizeof\(struct mpioapic\);) 174.7406 Tj 0 -332.2676 Td -(5632 case MPIOINTR:) 100.4758 Tj +(5632 continue;) 87.3703 Tj 0 -341.761 Td -(5633 case MPLINTR:) 96.1073 Tj +(5633 case MPBUS:) 87.3703 Tj 0 -351.2543 Td -(5634 p += 8;) 78.6333 Tj +(5634 case MPIOINTR:) 100.4758 Tj 0 -360.7477 Td -(5635 continue;) 87.3703 Tj +(5635 case MPLINTR:) 96.1073 Tj 0 -370.2411 Td -(5636 default:) 74.2647 Tj +(5636 p += 8;) 78.6333 Tj 0 -379.7344 Td -(5637 cprintf\("mpinit: unknown config type %x\\n", *p\);) 257.7424 Tj +(5637 continue;) 87.3703 Tj 0 -389.2278 Td -(5638 panic\("mpinit"\);) 117.9499 Tj +(5638 default:) 74.2647 Tj 0 -398.7211 Td -(5639 }) 43.6851 Tj +(5639 cprintf\("mpinit: unknown config type %x\\n", *p\);) 257.7424 Tj 0 -408.2145 Td -(5640 }) 34.9481 Tj +(5640 panic\("mpinit"\);) 117.9499 Tj 0 -417.7079 Td -(5641 ) 21.8426 Tj +(5641 }) 43.6851 Tj 0 -427.2012 Td -(5642 if\(mp->imcrp\){) 91.7388 Tj +(5642 }) 34.9481 Tj 0 -436.6946 Td -(5643 // Bochs doesn't support IMCR, so this doesn't run on \ -Bochs.) 301.4275 Tj +(5643 if\(mp->imcrp\){) 91.7388 Tj 0 -446.1879 Td -(5644 // But it would on real hardware.) 183.4776 Tj +(5644 // Bochs doesn't support IMCR, so this doesn't run on \ +Bochs.) 301.4275 Tj 0 -455.6813 Td -(5645 outb\(0x22, 0x70\); // Select IMCR) 187.8461 Tj +(5645 // But it would on real hardware.) 183.4776 Tj 0 -465.1747 Td -(5646 outb\(0x23, inb\(0x23\) | 1\); // Mask external inter\ -rupts.) 283.9534 Tj +(5646 outb\(0x22, 0x70\); // Select IMCR) 187.8461 Tj 0 -474.668 Td -(5647 }) 34.9481 Tj +(5647 outb\(0x23, inb\(0x23\) | 1\); // Mask external inter\ +rupts.) 283.9534 Tj 0 -484.1614 Td -(5648 }) 26.2111 Tj +(5648 }) 34.9481 Tj 0 -493.6547 Td -(5649 ) 21.8426 Tj +(5649 }) 26.2111 Tj 0 -522.1348 Td (Sheet 56) 34.9481 Tj Q @@ -19121,7 +19180,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/lapic.c Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/lapic.c Page 1) 166.0035 Tj 0 -28.4801 Td (5650 // The local APIC manages internal \(non-I/O\) interrupts.) 266.4794 Tj 0 -37.9735 Td @@ -19282,7 +19341,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/lapic.c Page 2) 166.0035 Tj +(Aug 30 21:46 2009 xv6/lapic.c Page 2) 166.0035 Tj 0 -28.4801 Td (5700 void) 39.3166 Tj 0 -37.9735 Td @@ -19405,11 +19464,11 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/lapic.c Page 3) 166.0035 Tj +(Aug 30 21:46 2009 xv6/lapic.c Page 3) 166.0035 Tj 0 -28.4801 Td (5750 int) 34.9481 Tj 0 -37.9735 Td -(5751 cpu\(void\)) 61.1592 Tj +(5751 cpunum\(void\)) 74.2647 Tj 0 -47.4668 Td (5752 {) 26.2111 Tj 0 -56.9602 Td @@ -19558,7 +19617,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/lapic.c Page 4) 166.0035 Tj +(Aug 30 21:46 2009 xv6/lapic.c Page 4) 166.0035 Tj 0 -28.4801 Td (5800 #define IO_RTC 0x70) 109.2129 Tj 0 -37.9735 Td @@ -19686,7 +19745,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ioapic.c Page 1) 170.3721 Tj +(Aug 30 21:46 2009 xv6/ioapic.c Page 1) 170.3721 Tj 0 -28.4801 Td (5850 // The I/O APIC manages hardware interrupts for an SMP sys\ tem.) 292.6905 Tj @@ -19845,7 +19904,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/ioapic.c Page 2) 170.3721 Tj +(Aug 30 21:46 2009 xv6/ioapic.c Page 2) 170.3721 Tj 0 -28.4801 Td (5900 void) 39.3166 Tj 0 -37.9735 Td @@ -19967,7 +20026,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/picirq.c Page 1) 170.3721 Tj +(Aug 30 21:46 2009 xv6/picirq.c Page 1) 170.3721 Tj 0 -28.4801 Td (5950 // Intel 8259A programmable interrupt controllers.) 240.2683 Tj 0 -37.9735 Td @@ -20120,7 +20179,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/picirq.c Page 2) 170.3721 Tj +(Aug 30 21:46 2009 xv6/picirq.c Page 2) 170.3721 Tj 0 -28.4801 Td (6000 // ICW3: \(master PIC\) bit mask of IR lines connected \ to slaves) 305.796 Tj @@ -20245,7 +20304,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/picirq.c Page 3) 170.3721 Tj +(Aug 30 21:46 2009 xv6/picirq.c Page 3) 170.3721 Tj 0 -28.4801 Td (6050 // Blank page.) 83.0018 Tj 0 -37.9735 Td @@ -20395,7 +20454,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kbd.h Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/kbd.h Page 1) 157.2665 Tj 0 -28.4801 Td (6100 // PC keyboard interface constants) 170.3721 Tj 0 -37.9735 Td @@ -20515,7 +20574,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kbd.h Page 2) 157.2665 Tj +(Aug 30 21:46 2009 xv6/kbd.h Page 2) 157.2665 Tj 0 -28.4801 Td (6150 static uchar normalmap[256] =) 148.5295 Tj 0 -37.9735 Td @@ -20665,7 +20724,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kbd.h Page 3) 157.2665 Tj +(Aug 30 21:46 2009 xv6/kbd.h Page 3) 157.2665 Tj 0 -28.4801 Td (6200 static uchar ctlmap[256] =) 135.4239 Tj 0 -37.9735 Td @@ -20791,7 +20850,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/kbd.c Page 1) 157.2665 Tj +(Aug 30 21:46 2009 xv6/kbd.c Page 1) 157.2665 Tj 0 -28.4801 Td (6250 #include "types.h") 100.4758 Tj 0 -37.9735 Td @@ -20941,7 +21000,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 1) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 1) 174.7406 Tj 0 -28.4801 Td (6300 // Console input and output.) 144.161 Tj 0 -37.9735 Td @@ -20961,85 +21020,85 @@ q 0 -104.427 Td (6308 #include "spinlock.h") 113.5814 Tj 0 -113.9203 Td -(6309 #include "file.h") 96.1073 Tj +(6309 #include "fs.h") 87.3703 Tj 0 -123.4137 Td -(6310 #include "mmu.h") 91.7388 Tj +(6310 #include "file.h") 96.1073 Tj 0 -132.9071 Td -(6311 #include "proc.h") 96.1073 Tj +(6311 #include "mmu.h") 91.7388 Tj 0 -142.4004 Td -(6312 #include "x86.h") 91.7388 Tj +(6312 #include "proc.h") 96.1073 Tj 0 -151.8938 Td -(6313 ) 21.8426 Tj +(6313 #include "x86.h") 91.7388 Tj 0 -161.3871 Td -(6314 static void consputc\(int\);) 135.4239 Tj +(6314 ) 21.8426 Tj 0 -170.8805 Td -(6315 ) 21.8426 Tj +(6315 static void consputc\(int\);) 135.4239 Tj 0 -180.3739 Td -(6316 static int panicked = 0;) 126.6869 Tj +(6316 ) 21.8426 Tj 0 -189.8672 Td -(6317 ) 21.8426 Tj +(6317 static int panicked = 0;) 126.6869 Tj 0 -199.3606 Td -(6318 static struct {) 87.3703 Tj +(6318 ) 21.8426 Tj 0 -208.8539 Td -(6319 ) 21.8426 Tj --1504.73 TJm -(struct spinlock lock;) 91.7388 Tj +(6319 static struct {) 87.3703 Tj 0 -218.3473 Td (6320 ) 21.8426 Tj -1504.73 TJm -(int locking;) 52.4222 Tj +(struct spinlock lock;) 91.7388 Tj 0 -227.8407 Td -(6321 } cons;) 52.4222 Tj +(6321 ) 21.8426 Tj +-1504.73 TJm +(int locking;) 52.4222 Tj 0 -237.334 Td -(6322 ) 21.8426 Tj +(6322 } cons;) 52.4222 Tj 0 -246.8274 Td -(6323 static void) 69.8962 Tj +(6323 ) 21.8426 Tj 0 -256.3207 Td -(6324 printint\(int xx, int base, int sgn\)) 174.7406 Tj +(6324 static void) 69.8962 Tj 0 -265.8141 Td -(6325 {) 26.2111 Tj +(6325 printint\(int xx, int base, int sgn\)) 174.7406 Tj 0 -275.3075 Td -(6326 static char digits[] = "0123456789abcdef";) 214.0572 Tj +(6326 {) 26.2111 Tj 0 -284.8008 Td -(6327 char buf[16];) 87.3703 Tj +(6327 static char digits[] = "0123456789abcdef";) 214.0572 Tj 0 -294.2942 Td -(6328 int i = 0, neg = 0;) 113.5814 Tj +(6328 char buf[16];) 87.3703 Tj 0 -303.7875 Td -(6329 uint x;) 61.1592 Tj +(6329 int i = 0, neg = 0;) 113.5814 Tj 0 -313.2809 Td -(6330 ) 21.8426 Tj +(6330 uint x;) 61.1592 Tj 0 -322.7743 Td -(6331 if\(sgn && xx < 0\){) 109.2129 Tj +(6331 ) 21.8426 Tj 0 -332.2676 Td -(6332 neg = 1;) 74.2647 Tj +(6332 if\(sgn && xx < 0\){) 109.2129 Tj 0 -341.761 Td -(6333 x = -xx;) 74.2647 Tj +(6333 neg = 1;) 74.2647 Tj 0 -351.2543 Td -(6334 } else) 56.7907 Tj +(6334 x = -xx;) 74.2647 Tj 0 -360.7477 Td -(6335 x = xx;) 69.8962 Tj +(6335 } else) 56.7907 Tj 0 -370.2411 Td -(6336 ) 21.8426 Tj +(6336 x = xx;) 69.8962 Tj 0 -379.7344 Td -(6337 do{) 43.6851 Tj +(6337 ) 21.8426 Tj 0 -389.2278 Td -(6338 buf[i++] = digits[x % base];) 161.635 Tj +(6338 do{) 43.6851 Tj 0 -398.7211 Td -(6339 }while\(\(x /= base\) != 0\);) 139.7925 Tj +(6339 buf[i++] = digits[x % base];) 161.635 Tj 0 -408.2145 Td -(6340 if\(neg\)) 61.1592 Tj +(6340 }while\(\(x /= base\) != 0\);) 139.7925 Tj 0 -417.7079 Td -(6341 buf[i++] = '-';) 104.8443 Tj +(6341 if\(neg\)) 61.1592 Tj 0 -427.2012 Td -(6342 ) 21.8426 Tj +(6342 buf[i++] = '-';) 104.8443 Tj 0 -436.6946 Td -(6343 while\(--i >= 0\)) 96.1073 Tj +(6343 ) 21.8426 Tj 0 -446.1879 Td -(6344 consputc\(buf[i]\);) 113.5814 Tj +(6344 while\(--i >= 0\)) 96.1073 Tj 0 -455.6813 Td -(6345 }) 26.2111 Tj +(6345 consputc\(buf[i]\);) 113.5814 Tj 0 -465.1747 Td -(6346 ) 21.8426 Tj +(6346 }) 26.2111 Tj 0 -474.668 Td (6347 ) 21.8426 Tj 0 -484.1614 Td @@ -21064,7 +21123,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 2) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 2) 174.7406 Tj 0 -28.4801 Td (6350 // Print to the console. only understands %d, %x, %p, %s.) 270.8479 Tj 0 -37.9735 Td @@ -21090,7 +21149,7 @@ q 0 -132.9071 Td (6361 ) 21.8426 Tj 0 -142.4004 Td -(6362 argp = \(uint*\)\(void*\)&fmt + 1;) 161.635 Tj +(6362 argp = \(uint*\)\(void*\)\(&fmt + 1\);) 170.3721 Tj 0 -151.8938 Td (6363 state = 0;) 74.2647 Tj 0 -161.3871 Td @@ -21214,7 +21273,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 3) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 3) 174.7406 Tj 0 -28.4801 Td (6400 void) 39.3166 Tj 0 -37.9735 Td @@ -21232,7 +21291,7 @@ q 0 -94.9336 Td (6407 cons.locking = 0;) 104.8443 Tj 0 -104.427 Td -(6408 cprintf\("cpu%d: panic: ", cpu\(\)\);) 174.7406 Tj +(6408 cprintf\("cpu%d: panic: ", cpu->id\);) 183.4776 Tj 0 -113.9203 Td (6409 cprintf\(s\);) 78.6333 Tj 0 -123.4137 Td @@ -21333,7 +21392,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 4) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 4) 174.7406 Tj 0 -28.4801 Td (6450 #define BACKSPACE 0x100) 122.3184 Tj 0 -37.9735 Td @@ -21484,7 +21543,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 5) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 5) 174.7406 Tj 0 -28.4801 Td (6500 #define INPUT_BUF 128) 113.5814 Tj 0 -37.9735 Td @@ -21605,7 +21664,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 6) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 6) 174.7406 Tj 0 -28.4801 Td (6550 int) 34.9481 Tj 0 -37.9735 Td @@ -21629,7 +21688,7 @@ q 0 -123.4137 Td (6560 while\(input.r == input.w\){) 152.898 Tj 0 -132.9071 Td -(6561 if\(cp->killed\){) 113.5814 Tj +(6561 if\(proc->killed\){) 122.3184 Tj 0 -142.4004 Td (6562 release\(&input.lock\);) 148.5295 Tj 0 -151.8938 Td @@ -21755,7 +21814,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/console.c Page 7) 174.7406 Tj +(Aug 30 21:46 2009 xv6/console.c Page 7) 174.7406 Tj 0 -28.4801 Td (6600 int) 34.9481 Tj 0 -37.9735 Td @@ -21874,7 +21933,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/timer.c Page 1) 166.0035 Tj +(Aug 30 21:46 2009 xv6/timer.c Page 1) 166.0035 Tj 0 -28.4801 Td (6650 // Intel 8253/8254/82C54 Programmable Interval Timer \(PIT\ \).) 279.5849 Tj @@ -22028,7 +22087,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/initcode.S Page 1) 179.1091 Tj +(Aug 30 21:46 2009 xv6/initcode.S Page 1) 179.1091 Tj 0 -28.4801 Td (6700 # Initial process execs /init.) 152.898 Tj 0 -37.9735 Td @@ -22147,7 +22206,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/usys.S Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/usys.S Page 1) 161.635 Tj 0 -28.4801 Td (6750 #include "syscall.h") 109.2129 Tj 0 -37.9735 Td @@ -22297,7 +22356,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/init.c Page 1) 161.635 Tj +(Aug 30 21:46 2009 xv6/init.c Page 1) 161.635 Tj 0 -28.4801 Td (6800 // init: The initial user-level program) 192.2146 Tj 0 -37.9735 Td @@ -22416,7 +22475,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 1) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 1) 152.898 Tj 0 -28.4801 Td (6850 // Shell.) 61.1592 Tj 0 -37.9735 Td @@ -22566,7 +22625,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 2) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 2) 152.898 Tj 0 -28.4801 Td (6900 int fork1\(void\); // Fork but panics on failure.) 231.5313 Tj 0 -37.9735 Td @@ -22685,7 +22744,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 3) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 3) 152.898 Tj 0 -28.4801 Td (6950 case PIPE:) 74.2647 Tj 0 -37.9735 Td @@ -22835,7 +22894,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 4) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 4) 152.898 Tj 0 -28.4801 Td (7000 int) 34.9481 Tj 0 -37.9735 Td @@ -22955,7 +23014,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 5) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 5) 152.898 Tj 0 -28.4801 Td (7050 // Constructors) 87.3703 Tj 0 -37.9735 Td @@ -23106,7 +23165,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 6) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 6) 152.898 Tj 0 -28.4801 Td (7100 struct cmd*) 69.8962 Tj 0 -37.9735 Td @@ -23225,7 +23284,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 7) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 7) 152.898 Tj 0 -28.4801 Td (7150 // Parsing) 65.5277 Tj 0 -37.9735 Td @@ -23376,7 +23435,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 8) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 8) 152.898 Tj 0 -28.4801 Td (7200 int) 34.9481 Tj 0 -37.9735 Td @@ -23495,7 +23554,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 9) 152.898 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 9) 152.898 Tj 0 -28.4801 Td (7250 struct cmd*) 69.8962 Tj 0 -37.9735 Td @@ -23645,7 +23704,7 @@ q [0 -0.9679 1 0 564.72 738.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 10) 157.2665 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 10) 157.2665 Tj 0 -28.4801 Td (7300 struct cmd*) 69.8962 Tj 0 -37.9735 Td @@ -23764,7 +23823,7 @@ q [0 -0.9679 1 0 564.72 392.865] Tm 0 0 Td /F8_0 8.7022 Tf -(Aug 8 01:04 2009 xv6/sh.c Page 11) 157.2665 Tj +(Aug 30 21:46 2009 xv6/sh.c Page 11) 157.2665 Tj 0 -28.4801 Td (7350 // NUL-terminate all the counted strings.) 200.9517 Tj 0 -37.9735 Td @@ -23877,5 +23936,5 @@ pdfEndPage %%Trailer end %%DocumentSuppliedResources: -%%+ font YLWBJI+LucidaSans-Typewriter83 +%%+ font APYGPQ+LucidaSans-Typewriter83 %%EOF