rsc
773159fbee
make code match comment
2007-08-27 23:53:50 +00:00
rsc
3a2310f746
make code match comment
2007-08-27 23:53:17 +00:00
rsc
558ab49f13
delete unnecessary #include lines
2007-08-27 23:26:33 +00:00
rsc
efc12b8e61
Replace yield system call with sleep.
2007-08-27 13:34:35 +00:00
rsc
97ac612fb1
nits
2007-08-24 20:28:08 +00:00
rsc
4bcd0f6a77
Add yield system call, for zombie test program (bad idea?).
2007-08-24 20:04:53 +00:00
rtm
902b13f5d6
simplify ide queuing
...
nits in comments
2007-08-24 19:32:36 +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
f1f8dd91bc
formatting
2007-08-14 18:42:34 +00:00
rsc
b6095304b7
Make cp a magic symbol.
2007-08-10 16:37:27 +00:00
rsc
9583b476bf
try to use cp only for curproc[cpu()]
2007-08-09 17:32:40 +00:00
rsc
453c6a65a2
convert syscall dispatch to table
2007-08-08 09:41:21 +00:00
rsc
224f6598c1
refactor syscall code
2006-09-07 14:13:26 +00:00
rsc
05a7bbe08b
comment fixes
2006-09-07 13:07:52 +00:00
rsc
db8fb62e4d
for vs while
2006-09-06 18:47:51 +00:00
rsc
9936bffa45
fd.* -> file.*
2006-09-06 18:40:28 +00:00
rsc
2685309fb4
split syscall.c into sysfile.c and sysproc.c
2006-09-06 18:19:11 +00:00
rsc
d4c64e5d43
writeable => writable
2006-09-06 18:06:04 +00:00
rsc
f552738889
no /* */ comments
2006-09-06 17:50:20 +00:00
rsc
9e9bcaf143
standardize various * conventions
2006-09-06 17:27:19 +00:00
rtm
2aa4c3bc29
complain if no disk 1
...
lots of cleanup
2006-08-30 18:55:06 +00:00
rtm
7a37578e9e
clear killed flag in exit
...
idecref cwd in exit
2006-08-29 19:59:52 +00:00
rtm
dfcc5b997c
prune unneeded panics and debug output
2006-08-29 19:06:37 +00:00
rtm
3b95801add
i broke sbrk, fix it
2006-08-29 17:01:40 +00:00
rtm
2b19190c13
clean up stale error checks and panics
...
delete unused functions
a few comments
2006-08-29 14:45:45 +00:00
rtm
03c70cc2e6
consistently ignore more than 14 chars in path component
...
forbid create or write of existing directory
mkdir("d1/d2/d3"), .. should refer to d2, not cwd
mkdir increase parent link count
2006-08-26 16:31:05 +00:00
rtm
a6c28c9779
mkdir check error from mknod
...
chdir return -1 if target not a dir
2006-08-26 15:06:59 +00:00
rtm
5051da6de3
inode addrs[NDIRECT] -> NADDRS
...
fix race in mknod / creat
use last component in dirent in mknod, not path
2006-08-25 01:11:30 +00:00
kaashoek
ea2909b6b5
user-level malloc (untested)
...
nit in sbrk
indirect block
fix dup to share fd struct
2006-08-24 02:44:41 +00:00
kaashoek
8b58e81077
i/o redirection in sh
...
better parsing of sh commands (copied from jos sh)
cat: read from 1 if no args
sbrk system call, but untested
getpid system call
moved locks in keyboard intr, but why do we get intr w. null characters from keyboard?
2006-08-23 01:09:24 +00:00
kaashoek
f18ab5c04e
compiling, but untested dup
2006-08-20 03:33:01 +00:00
kaashoek
16083d4462
removed block system call
...
renumber system calls (run gmake clean!)
skeleton for dup system call
2006-08-20 03:08:54 +00:00
kaashoek
8787cd01df
chdir
...
cd in shell
nits in mkdir, ls, etc.
2006-08-19 23:41:34 +00:00
kaashoek
bdb6643303
set size for directories correctly in wdir and mkfs
...
mkdir
ls shows stat info for each dir entry
2006-08-14 14:13:52 +00:00
kaashoek
d15f0d1033
start on mkdir
...
stat
2006-08-14 03:00:13 +00:00
rtm
17e3cf15ba
fix iget() bug that allocated in-use inode[] entries
2006-08-13 15:51:58 +00:00
rtm
211ff0c67e
namei returns locked parent dir inode for create / unlink
...
don't hold fd table lock across idecref() (latter does block i/o)
idecref calls iput() in case last ref -> freeing inode
dir size is 512 * # blocks, so readi/writei &c work
unlink deletes dirent even if ip->nlink > 0
2006-08-13 12:22:44 +00:00
rtm
9e5970d596
link()
2006-08-13 02:12:44 +00:00
rtm
4357207237
fix getblk to actually lock the block
...
no more cons_put system calls
usertests tests two processes writing files
2006-08-12 11:38:57 +00:00
kaashoek
1f544842ce
fstat
...
primitive ls
2006-08-12 04:33:50 +00:00
kaashoek
0633b9715e
unlink,mknod,create with multi-component pathnames should work now
...
remove console init code from userfs
2006-08-12 01:25:45 +00:00
kaashoek
24437cd554
fix deadlock---iput(dp) asap
...
working unlink, but doesn't free dir blocks that become empty
remove out-of-date comment in ioapic
2006-08-11 18:18:38 +00:00
rtm
17a856577f
init creates console, opens 0/1/2, runs sh
...
sh accepts 0-argument commands (like userfs)
reads from console
2006-08-11 13:55:18 +00:00
rtm
8a8be1b8c3
low-level keyboard input (not hooked up to /dev yet)
...
fix acquire() to cli() *before* incrementing nlock
make T_SYSCALL a trap gate, not an interrupt gate
sadly, various crashes if you hold down a keyboard key...
2006-08-10 02:07:10 +00:00
kaashoek
28d9ef04dd
printf
...
convert userfs to use printf
bfree
ifree
writei
start on unlink
2006-08-10 01:28:57 +00:00
kaashoek
939f9edeac
iread for T_DEV
...
O_RDWR, etc.
create file
2006-08-09 19:25:20 +00:00
kaashoek
2601de0032
fix test program: don't close before writing
...
set fd to writeable on open for write
2006-08-09 17:25:10 +00:00
kaashoek
6fa5ffb56f
devsw
...
checkpoint: write(fd,"hello\n",6) where fd is a console dev almost works
2006-08-09 16:04:04 +00:00
rtm
0e84a0ec6e
fix race in holding() check in acquire()
...
give cpu1 a TSS and gdt for when it enters scheduler()
and a pseudo proc[] entry for each cpu
cpu0 waits for each other cpu to start up
read() for files
2006-08-08 19:58:06 +00:00
kaashoek
e8d11c2e84
mknod,ialloc,iupdate
2006-08-08 18:07:37 +00:00