Commit graph

408 commits

Author SHA1 Message Date
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
14938f9392 buffer cache, fifo replacement 2006-08-12 17:17:35 +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
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
5be0039ce9 interrupts could be recursive since lapic_eoi() called before rti
so fast interrupts overflow the kernel stack
fix: cli() before lapic_eoi()
2006-08-10 22:08:14 +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
kaashoek
6c0e444fcd oops, update directory inode too 2006-08-09 01:19:48 +00:00
kaashoek
241113985f block bitmap
balloc
2006-08-09 01:09:36 +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
kaashoek
104207726b bwrite 2006-08-07 01:38:46 +00:00
kaashoek
8ec6530fee generalize async read to support write too 2006-08-06 20:28:15 +00:00
kaashoek
366189214e nit 2006-08-04 18:23:23 +00:00
kaashoek
c8b29f6d03 better interrupt plan---this one appears to work
ioapic
2006-08-04 18:12:31 +00:00
rtm
32630628a9 open() 2006-07-29 09:35:02 +00:00
kaashoek
e46fb46fcf acquire+release ide_lock in ide_intr 2006-07-29 01:20:15 +00:00
rtm
8455980b27 exec arguments 2006-07-28 22:33:07 +00:00
rtm
c59361f143 primitive exec 2006-07-27 21:10:00 +00:00
rtm
54a4b00346 update 2006-07-26 10:17:39 +00:00
rtm
9d3fb67141 namei 2006-07-21 22:10:40 +00:00
rtm
11a9947f1a bread
iget
mkfs makes a file system image
put this in your .bochsrc:
ata0-slave: type=disk, mode=flat, path="fs.img", cylinders=1024, heads=1, spt=1
2006-07-21 13:18:04 +00:00
rtm
2927081628 uint32_t -> uint &c 2006-07-20 09:07:53 +00:00
rtm
bd228a8156 prevent longjmp / forkret from writing over tf->edi 2006-07-18 19:22:37 +00:00
rsc
0dd4253747 add ide_lock for sleep 2006-07-17 05:00:25 +00:00
rsc
b5f17007f4 standarize on unix-like lowercase struct names 2006-07-17 01:58:13 +00:00
rsc
e0966f459f no more cons_putc; real_cons_putc -> cons_putc 2006-07-17 01:53:43 +00:00
rsc
b5ee516575 add uint and standardize on typedefs instead of unsigned 2006-07-17 01:52:13 +00:00
rsc
857d60cb0c cleaner 2006-07-17 01:51:47 +00:00
rsc
ee9c7f3bfc goodbye PushRegs 2006-07-17 01:36:39 +00:00
rsc
f15a3ae263 cleaner 2006-07-17 01:36:32 +00:00
rsc
c54c79267f nitpicks 2006-07-17 01:25:22 +00:00
rsc
564f787e91 Eliminate annoying Pseudodesc structure.
Eliminate unnecessary parts of mmu.h.
2006-07-16 16:55:52 +00:00
rsc
6e6a1dd7d7 various little fixes that should have been in earlier checkins 2006-07-16 16:06:03 +00:00
rsc
84d79573da more idiomatic c 2006-07-16 16:05:37 +00:00
rsc
96e16b96c9 no memlayout.h 2006-07-16 16:04:44 +00:00
rsc
9692d5add5 was empty; gone 2006-07-16 16:04:15 +00:00
rsc
8a7eb80e47 fix main return type 2006-07-16 16:03:51 +00:00