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
rsc
3f98d050e1
refactor bget to be more like iget - make it clear that sleep loops
2007-08-08 09:50:26 +00:00
rsc
9ad44da676
unused
2007-08-08 09:44:23 +00:00
rsc
c16e0916a7
cleaner table
2007-08-08 09:43:07 +00:00
rsc
19b1f63813
cleaner table
2007-08-08 09:42:36 +00:00
rsc
453c6a65a2
convert syscall dispatch to table
2007-08-08 09:41:21 +00:00
rsc
c664dd5d23
missing void
2007-08-08 09:32:39 +00:00
rsc
61dff66b35
fix error message
2007-08-08 09:30:58 +00:00