Commit graph

340 commits

Author SHA1 Message Date
rsc eaea18cb9c 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
2007-08-22 06:01:32 +00:00
rsc 3dcf889c1b cleanup 2007-08-22 05:57:39 +00:00
rsc 6bf2e5c898 add ln 2007-08-22 05:54:55 +00:00
rsc c88bf235fe check unlink of non-empty directory 2007-08-22 02:21:22 +00:00
rsc bd39955ecc ARGMAX -> MAXARGS 2007-08-21 20:01:11 +00:00
rsc fbf9103952 remove namelen parameter 2007-08-21 19:58:55 +00:00
rsc 0073beee52 remove dead code 2007-08-21 19:22:27 +00:00
rsc f32f3638f4 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].
2007-08-21 19:22:08 +00:00
rsc 2d61a40b20 bug in usertests! 2007-08-20 21:00:20 +00:00
rsc e2a620da49 checkpoint - simpler namei interface 2007-08-20 19:37:15 +00:00
rsc ef30c2c749 no more w 2007-08-20 18:55:51 +00:00
rsc bcca6c6bde shuffle fs.c in bottom-up order 2007-08-20 18:23:52 +00:00
rsc 0655445ba9 cleanup loop 2007-08-14 19:42:14 +00:00
rsc 2186f88c21 formatting, cleanup 2007-08-14 19:41:56 +00:00
rsc cce27ba9fb formatting 2007-08-14 19:41:38 +00:00
rsc 07ddc0fa82 nit 2007-08-14 19:41:29 +00:00
rsc fe5f50a03d fixes 2007-08-14 19:41:01 +00:00
rsc 5e8c5d8bb8 formatting; split kbd constants into kbd.h 2007-08-14 19:31:16 +00:00
rsc ea6e370964 i cannot prove that release before wakeup is wrong, but i cannot convince myself it is right either 2007-08-14 19:10:57 +00:00
rsc 4bc5056c19 formatting, simplify 2007-08-14 19:05:48 +00:00
rsc 8d0a83565a formatting, sleep bug fix 2007-08-14 18:46:29 +00:00
rsc f1f8dd91bc formatting 2007-08-14 18:42:34 +00:00
rsc 29ff8d495c ide_write unused => gone 2007-08-14 14:24:09 +00:00
rsc 8c4b5fc5b3 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.)
2007-08-14 04:56:30 +00:00
rsc 2ef3a64bb4 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.
2007-08-14 04:55:45 +00:00
rsc 64659055bd ditto 2007-08-14 04:06:02 +00:00
rsc 3163085ace 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.
2007-08-14 04:05:27 +00:00
rsc 5e03dd86c8 add test for rm . 2007-08-10 17:53:09 +00:00
rsc 15b326b630 nit 2007-08-10 17:45:49 +00:00
rsc 8908cc9b15 correct line numbers 2007-08-10 17:45:14 +00:00
rsc 8139713c46 add note 2007-08-10 17:19:15 +00:00
rsc 2715cd3592 and spinlock 2007-08-10 17:17:57 +00:00
rsc dca5b5ca2e avoid assignments in declarations 2007-08-10 17:17:42 +00:00
rsc 6861140a66 replace bogus loops with slightly less bogus loops. 2007-08-10 17:05:46 +00:00
rsc 3d145283a2 tweak kalloc 2007-08-10 17:02:36 +00:00
rsc 9736728d23 cleanup main 2007-08-10 17:00:00 +00:00
rsc 7d4aef6cfd various cleanups 2007-08-10 16:52:31 +00:00
rsc b6095304b7 Make cp a magic symbol. 2007-08-10 16:37:27 +00:00
rsc 3bbbaca14d move variable declaration up 2007-08-10 16:35:01 +00:00
rsc bc01170334 The final curproc[cpu()] is now cp 2007-08-09 19:06:37 +00:00
rsc ab5c2dbb59 Clearer namei 2007-08-09 19:05:00 +00:00
rsc 806f4c11f7 oops 2007-08-09 17:53:03 +00:00
rsc 9583b476bf try to use cp only for curproc[cpu()] 2007-08-09 17:32:40 +00:00
rsc 22330658ff spacing 2007-08-09 16:56:40 +00:00
rsc 4249490230 notes 2007-08-08 10:32:32 +00:00
rsc f2f062da61 check p->killed for long-lived sleeps 2007-08-08 10:29:42 +00:00
rsc 1cb183a987 2007 2007-08-08 10:27:15 +00:00
rsc c65e499f3b help gcc 2007-08-08 10:27:04 +00:00
rsc 95c07f8267 move ialloc body up, avoiding double check for end of loop 2007-08-08 09:53:46 +00:00
rsc 32eea7665a panic like bget 2007-08-08 09:50:46 +00:00