- Aug 24, 2007
- Aug 23, 2007
- Aug 22, 2007
- Aug 21, 2007
-
-
rsc authored
-
rsc authored
PDF at http://am.lcs.mit.edu/~rsc/xv6.pdf Various changes made while offline. + bwrite sector argument is redundant; use b->sector. + reformatting of files for nicer PDF page breaks + distinguish between locked, unlocked inodes in type signatures + change FD_FILE to FD_INODE + move userinit (nee proc0init) to proc.c + move ROOTDEV to param.h + always parenthesize sizeof argument
-
rsc authored
-
rsc authored
-
rsc authored
-
rsc authored
-
rsc authored
-
rsc authored
-
rsc authored
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].
-
- Aug 20, 2007
- Aug 14, 2007
- Aug 13, 2007
-
-
rsc authored
Gcc expects to be able to pick up the return address off the stack, so put one there for it. (Bug was hidden by bad segment limits.)
-
rsc authored
Because limit gives the address of the last addressable byte in the segment, the limit argument to SEG16 and SEG needs to have 1 subtracted from it.
-
rsc authored
-
rsc authored
Cannot use "g" as an arg constraint because some memory references aren't actually valid and gcc is a bit too smart in parsing (%0) and a bit too dumb in knowing which memory refs are not valid. Using "r" seems to constrain gcc to use a register as in (%eax) and not substitute a memory reference like (-36(%ebp)). No one really understands these things.
-