rsc
f0721f1be4
tweaks
2007-08-22 06:20:10 +00:00
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
fbf9103952
remove namelen parameter
2007-08-21 19:58:55 +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
e2a620da49
checkpoint - simpler namei interface
2007-08-20 19:37:15 +00:00
rsc
bcca6c6bde
shuffle fs.c in bottom-up order
2007-08-20 18:23:52 +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
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
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
d80b06a1e0
iincref returns new ref
2007-08-08 09:30:42 +00:00
rsc
5f0c20ec14
fix . .. unlink bug
2007-08-08 09:08:29 +00:00
kaashoek
8e1d1ec934
some comment changes
2006-09-08 14:36:44 +00:00
rsc
be29b8e263
++
2006-09-08 14:26:16 +00:00
rsc
d911d83ca1
fix various comments
2006-09-08 13:55:43 +00:00
rsc
1542186378
allow long names again
2006-09-07 15:34:28 +00:00
rsc
0d6bbd3172
clean namei search loop
2006-09-07 15:15:32 +00:00
rsc
bb207a1d42
comments
2006-09-07 14:28:12 +00:00
rsc
1dca3afbbb
remove _ prefixes
2006-09-07 13:08:23 +00:00
rsc
0cfc7290e8
wrap long lines
2006-09-06 19:08:14 +00:00
rsc
db8fb62e4d
for vs while
2006-09-06 18:47:51 +00:00
rsc
48b824703b
break single-line if statements
2006-09-06 17:57:47 +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
rsc
a650c606fe
spacing fixes: no tabs, 2-space indents (for rtm)
2006-09-06 17:04:06 +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
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
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
rtm
bcfb84b6a9
big directory test
2006-08-24 19:21:19 +00:00
kaashoek
1be7668537
fix bugs in indirect-file code
...
clean up test program
2006-08-24 17:28:01 +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
8787cd01df
chdir
...
cd in shell
nits in mkdir, ls, etc.
2006-08-19 23:41:34 +00:00
kaashoek
e958c538fa
commented out code for cwd
2006-08-15 15:53:46 +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
rtm
e4bcd2a3a9
wdir now uses readi/writei
2006-08-13 20:06:42 +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
kaashoek
c372e8dc34
zero freed blocks
...
multi-block directories
track size of directory (size = number entries in use)
should namei (and other code that scans through directories) scan through all blocks of a directory and not use size?
2006-08-13 05:28:04 +00:00
rtm
9e5970d596
link()
2006-08-13 02:12:44 +00:00
rtm
05e975511b
zero out all of dirent.name when creating
...
don't increase length of directory
2006-08-12 22:44:26 +00:00
rtm
cd93074e5b
LRU disk cache replacement
2006-08-12 22:34:13 +00:00
kaashoek
22bac2cb9d
free inode only when noone is holding a pointer to it. should fix open-unlink-
...
read problem, but untested
2006-08-12 22:03:01 +00:00
rtm
7ce01cf9be
mknod set nlink = 1
...
usertests for concurrent create/delete, and read() after unlink()
2006-08-12 16:47:48 +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