pooka
8657b11ebd
jump through rename hoops (hi ad!)
2007-08-16 21:26:21 +00:00
pooka
73dcfa3099
missed a bit
2007-08-16 19:56:22 +00:00
pooka
fb60c8abcc
describe libukfs
2007-08-16 19:53:48 +00:00
pooka
aecd6d8924
tweaks
2007-08-16 19:50:19 +00:00
pooka
6c71c22a44
Add "file system console", which is meant eventually to become a
...
"console" to a file system, i.e. a tool for mounting any file system
image supported by rump and executing various commands on it.
Currently it's just a linear set of calls to ukfs routines and
serves mainly as a simple test program and ukfs usage example.
2007-08-16 19:48:31 +00:00
pooka
71d88cd835
use UKFS_UIOINIT
2007-08-16 19:43:09 +00:00
pooka
55a47971a5
Actually using passed parameters instead of hardcoded ones makes
...
a macro work better ...
2007-08-16 19:42:50 +00:00
pooka
b926b490ec
Add routines for pure userspace file system operation
...
(i.e. no kernel involvement), namely:
* create, mknod, remove, mknod, rmdir, getdents, read, write, and link
Still obviously missing a few, but this is a start (I'm also searching
for the blessed orb of code quality, maybe someone has seen it?).
2007-08-16 19:37:18 +00:00
pooka
85a8716f91
locking fixes
2007-08-16 16:17:42 +00:00
pooka
56accd1ffe
enable UFS_DIRHASH
2007-08-15 22:22:14 +00:00
pooka
cfd4dc8f38
Wrap malloc() so that we catch the kernel arguments (namely M_ZERO)
...
properly. It's fairly amusing that this wasn't noticed until now.
2007-08-15 22:13:15 +00:00
pooka
ba8f4f0ea5
support VOP_LINK
2007-08-15 16:56:44 +00:00
pooka
c360a79960
* split userspace file system access into two separate libraries:
...
+ libp2k: the interface between libpuffs and vfs/vop
+ libukfs: generic user kernel file system library, usable
independent of libp2k and/or puffs
* use file system name (MOUNT_XYZ) instead of vfsops pointer to
mount file system
2007-08-14 15:56:15 +00:00
pooka
b0ae85df19
interrupt headers necessary for vfs_bio
2007-08-14 14:06:12 +00:00
pooka
ea312e5c20
udf support
2007-08-14 13:56:58 +00:00
pooka
243a4686b8
Kill handrolled buffercache and use vfs_bio from the kernel. This is
...
mostly to get the flag jungle in sync with the kernel.
2007-08-14 13:54:14 +00:00
pooka
790f3adcf7
compile in clock_subr.c
2007-08-14 13:24:34 +00:00
pooka
f89f2dc0be
Add some barely staggering code to get more disklabel support.
2007-08-14 13:24:07 +00:00
pooka
0322f263f2
nuke no longer used vm macros
2007-08-13 15:59:47 +00:00
pooka
5e1193986e
opts necessary for vfs_vnops.c missed in previous commit
2007-08-13 13:57:21 +00:00
pooka
7ed98ea083
Add locking assertions to check that file systems comply with the
...
vnode locking protocol.
2007-08-13 13:52:45 +00:00
pooka
787d952790
Use supermarket variety vfs_vnops.c instead of homecooked routines
...
(that's actually a good thing here).
2007-08-13 13:51:39 +00:00
pooka
e09047007b
lock and unlock vnodes according to locking protocol
2007-08-13 12:20:55 +00:00
pooka
66cdfd6744
compile in libkern __assert.c, argument order differs from libc model
2007-08-13 10:52:15 +00:00
pooka
74e8607136
track lockmgr lock status. makes lfs work again
2007-08-12 13:34:11 +00:00
pooka
643e56125f
* move rump_vopwrite_fault() into history - we now support the file
...
system faulting in pages if it does e.g. fragment reallocation
* get rid of rumpvm_findpage() and always use uvm_pagelookup()
* determine a vnode's cleanness by flagging it as being on the work
list if we "take" a write fault and removing it from the worklist
once pages are flushed. There is no work list here, but at least
there is symmetry with the kernel.
2007-08-11 17:52:12 +00:00
pooka
c3bc94628d
Play catchup with ufs/ffs changes: compile subr_specificdata.c
...
and emulate kmem_foo() to support the prior.
2007-08-09 20:57:22 +00:00
pooka
36c0b176cc
Fix it a bit & wait for the dust to settle. Also, enable UBC by default.
...
ffs in userspace on top of puffs/p2k/rump is now stable enough to
host a make -j4 kernel build (well, at least my kernel build ...
but, yes, I am currently running that kernel on my desktop)
2007-08-09 13:53:36 +00:00
pooka
c1649dbc9e
* fix symlink
...
* actually call a couple of VOPs
2007-08-09 11:59:16 +00:00
pooka
0a371e70c2
deal with holes in getpages()
2007-08-09 11:18:13 +00:00
pooka
58b908ae12
Flush file's pages in inactive (they'll still be kept in the kernel
...
page page if it's enabled). This very easily takes care of memory
management problems except for large files.
2007-08-09 09:54:36 +00:00
pooka
37698f56d6
Enable lfs in r/o mode, i.e. does not start lfs_clean-nerd and do
...
any real trickery. Unfortunately this was the easy part; r/w
support is going to make ascending naked, blind, illiterate, without
food and as an atheist look trivial.
2007-08-09 09:19:30 +00:00
pooka
cb6989bfcf
fool some KASSERTs
2007-08-09 09:11:57 +00:00
pooka
c36b0d0bc4
whoops, committed old signature of vrele2()
2007-08-09 09:06:44 +00:00
pooka
2c3d0e9d16
Add some stubs for lfs.
2007-08-09 08:56:44 +00:00
pooka
dfeea3487b
Don't need to use MNT_FORCE here (my original test image was a bit
...
b0rked), but do stuff MNT_RDONLY down the file system's throat.
2007-08-09 08:33:25 +00:00
pooka
39afc34cc7
* compile subr_time.c from kern/
...
* some pmap stubs
2007-08-09 07:42:07 +00:00
pooka
1f47971378
pass mntflags to puffs_mount()
2007-08-08 22:45:51 +00:00
pooka
24c0b6d0d0
Provide rump_getvninfo() and use that in libp2k_lookup() to avoid an
...
extra getattr for stuff the file system already cached in the vnode.
2007-08-08 14:09:07 +00:00
pooka
804db68101
Make genfs_islocked return always 1 instead of 0. But these should
...
really get tracked ...
2007-08-08 14:07:35 +00:00
pooka
427705465b
Provide rumpmachine bswap.h, which makes bswapxx() call rumpuser
...
directly instead of relying on a symbol in rumpkern. I would like
to make it call the libc symbol directly, but I don't currently know
how to make it do that MI.
Makes hfs work (on i386), as it avoids endless recursion in bswap64().
Thanks to dillo for the image!
2007-08-08 13:12:08 +00:00
pooka
bbae7f4e94
Add hfs. Untested, as I couldn't find a hfs+ image for testing,
...
so one would be appreciated. At least it works enough to tell me
this:
hfs: Plain HFS volumes not currently supported
2007-08-08 09:28:53 +00:00
pooka
7772c7295b
* compile param.c
...
* move opts to a separate directory
2007-08-08 09:06:11 +00:00
pooka
258ed3740b
microfrost strikes back
2007-08-08 07:53:54 +00:00
pooka
034104770f
add microtime
2007-08-08 07:50:33 +00:00
pooka
22ca3a326a
Compile kernel stuff with DIAGNOSTIC.
2007-08-07 21:33:13 +00:00
pooka
3ac2af6a15
support ext2fs
2007-08-07 21:26:35 +00:00
pooka
33e8054a43
refuse (not *that* refuse) to mount a r/w file system with
...
bs < PAGE_SIZE, it simply won't work yet.
2007-08-07 21:24:40 +00:00
pooka
f815ddfdf3
flush pages in vflushbuf()
2007-08-07 21:23:19 +00:00
pooka
d70a2a3a9d
realpath() can also fail, take that into account
2007-08-07 20:40:53 +00:00