proc.c: as a consequence of the implementation of proc_kill, any loop calling sleep should check for p->killed and be able to break out with an error return. it is better if you check *before* sleep. can swap procdump up after proc_kill and then have proc_exit and proc_wait on same sheet sched -> switch2scheduler? or just switch? factor out switching and scheduling code from process code kalloc.c more cleanups ide.c: synchronous disk write -> polling disk write. search for (a)synchronous; xv6 doesn't have asynchronous writes. fs.c: split all name operations off in name.c? (starting with namei but move wdir keep in fs.c) pipe.c: more comments? comment how functions get called? sysfile.c: is the sys_exec picture upside down? can sys_open and sys_exec be simplified any? general: sizeof parens? L=$HOME/mit/l (for i in *.c; do xoc -x xgnu -x ./nodecleq.zeta --typesonly $i; done) 2>&1 | grep warning