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