blob: cf7b83c0411a3e6f7d81fb977eabc0cc0cb1b42e (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 | runoff.list:
	bootmain.c missing
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)
ls.c: apply tim's patch
 |