1index: 2 SEG_NULL, SEG_ASM not in the index 3 4runoff.list: 5 bootmain.c missing 6 7mmu.h: 8 funny \ alignment in mmu.h 9 10main.c: 11 should use static int bcpu to avoid having live 12 stack variable across the asm volatile that 13 changes %esp and %ebp. 14 15 cpus[0] -> cpus[bcpu] 16 17init.c: 18 should while(wait() >= 0); 19 not just wait(); 20 21proc.c: 22 comment at top of scheduler() should say 23 via longjmp back to the scheduler 24 not 25 via longjmp back to the top of scheduler 26 27 sched should panic if state == RUNNING. 28 29 forkret comment should say "Return" not "return" 30 31 as a consequence of the implementation of proc_kill, 32 any loop calling sleep should check for p->killed 33 and be able to break out with an error return. 34 35 can swap procdump up after proc_kill 36 and then have proc_exit and proc_wait on same sheet 37 38 proc_exit should wake up proc[1] if any 39 reparenting was done. 40 41 sched -> switch2scheduler? or just switch? 42 43 factor out switching and scheduling code from process code 44 45trap.c 46 if spin locks are ever held without cli, 47 trap should call yield() only if nlock == 0 48 49main.c, proc.c, trap.c: 50 use a constant for 3 (USER). 51 52ide.c: synchronous disk write -> polling disk write. search for 53 (a)synchronous; xv6 doesn't have asynchronous writes. 54 55fs.c: split all name operations off in name.c? (starting with namei but move 56 wdir keep in fs.c) 57 58 unlink . and .. should be disallowed 59 60ls.c: apply tim's patch 61 62