Various cleanup:

- Got rid of dummy proc[0].  Now proc[0] is init.
 - Added initcode.S to exec /init, so that /init is
   just a regular binary.
 - Moved exec out of sysfile to exec.c
 - Moved code dealing with fs guts (like struct inode)
   from sysfile.c to fs.c.  Code dealing with system call
   arguments stays in sysfile.c
 - Refactored directory routines in fs.c; should be simpler.
 - Changed iget to return *unlocked* inode structure.
   This solves the lookup-then-use race in namei
   without introducing deadlocks.
   It also enabled getting rid of the dummy proc[0].
This commit is contained in:
rsc 2007-08-21 19:22:08 +00:00
parent 2d61a40b20
commit f32f3638f4
12 changed files with 456 additions and 415 deletions

24
BUGS
View file

@ -11,14 +11,15 @@ proc.c:
factor out switching and scheduling code from process code
kalloc.c
more cleanups
shuffle for formatting
ide.c: synchronous disk write -> polling disk write. search for
(a)synchronous; xv6 doesn't have asynchronous writes.
syscall.c:
cannot convince runoff1 to split the extern lists to fill previous page completely.
fs.c: split all name operations off in name.c? (starting with namei but move
fs.c: split all name operations off in name.c? (starting with namei but
wdir keep in fs.c)
locking?
shuffle for formatting
pipe.c:
more comments?
@ -31,6 +32,19 @@ sysfile.c:
general:
sizeof parens?
bio.c:
decide odd or even
bwrite doesn't need a second argument
file.c:
move fileincref onto page 1?
L=$HOME/mit/l
(for i in *.c; do xoc -x xgnu -x ./nodecleq.zeta --typesonly $i; done) 2>&1 | grep warning
saw random sharedfd failure.
why does fdalloc consume reference?
why mkdir and create?