59 lines
1.4 KiB
Plaintext
59 lines
1.4 KiB
Plaintext
index:
|
|
SEG_NULL, SEG_ASM not in the index
|
|
|
|
mmu.h:
|
|
funny \ alignment in mmu.h
|
|
|
|
main.c:
|
|
should use static int bcpu to avoid having live
|
|
stack variable across the asm volatile that
|
|
changes %esp and %ebp.
|
|
|
|
cpus[0] -> cpus[bcpu]
|
|
|
|
init.c:
|
|
should while(wait() >= 0);
|
|
not just wait();
|
|
|
|
proc.c:
|
|
comment at top of scheduler() should say
|
|
via longjmp back to the scheduler
|
|
not
|
|
via longjmp back to the top of scheduler
|
|
|
|
sched should panic if state == RUNNING.
|
|
|
|
forkret comment should say "Return" not "return"
|
|
|
|
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.
|
|
|
|
can swap procdump up after proc_kill
|
|
and then have proc_exit and proc_wait on same sheet
|
|
|
|
proc_exit should wake up proc[1] if any
|
|
reparenting was done.
|
|
|
|
sched -> switch2scheduler? or just switch?
|
|
|
|
factor out switching and scheduling code from process code
|
|
|
|
trap.c
|
|
if spin locks are ever held without cli,
|
|
trap should call yield() only if nlock == 0
|
|
|
|
main.c, proc.c, trap.c:
|
|
use a constant for 3 (USER).
|
|
|
|
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)
|
|
|
|
unlink . and .. should be disallowed
|
|
|
|
ls.c: apply tim's patch
|
|
|