Commit Graph

58 Commits

Author SHA1 Message Date
pooka a1c82d9717 * Give rump_vfs_root() the option of returning the vnode unlocked.
* initialize syncdelay
* implement io_sync handler
2007-09-02 13:29:50 +00:00
pooka 3f3cac88a3 Make bioops a pointer and point it to the softdeps struct in softdep
init.  Decouples "options SOFTDEP" from the main kernel and ffs code.
2007-09-01 23:40:21 +00:00
pooka eb606989ed avoid uninitialized warning from impossible enum 2007-09-01 22:10:10 +00:00
pooka 292192fe0a * fill struct buf a little better
* hop, skip & jump to make uvm_pageratop work
2007-09-01 21:45:19 +00:00
pooka 34ab6399f3 * add a very crude version of uvm_pageatop()
* add biodone/aiodone
2007-09-01 21:40:58 +00:00
pooka ebf393b89f vinvalbuf in vrecycle 2007-09-01 21:39:46 +00:00
pooka 59a7b3704a define FFS 2007-08-26 23:53:24 +00:00
pooka dbce9b9f2c few panicky functions 2007-08-26 23:51:08 +00:00
pooka 9157302845 split implemented lock stuff out of lock_stub.c into lock.c 2007-08-26 23:49:42 +00:00
pooka c869e534dd very rudimentary recursive lock support 2007-08-26 23:46:47 +00:00
pooka 1cf445da3e Don't play rename & typecast games with kauth_cred_t, but rather
declare the type in rump.h only if necessary with the help of ifdef
magic.
2007-08-25 10:22:31 +00:00
pooka faafe7834a Implement credentials. Access control is now similar to if the file
system were run in the kernel.
2007-08-21 13:57:17 +00:00
pooka a86741016f add rump private parts I forgot to commit earlier today 2007-08-20 23:05:46 +00:00
pooka b49c4f6b0b g/c comment invalidated by previous 2007-08-20 22:59:17 +00:00
pooka 4224c1d885 * in getpages, make sure we always align our buffer size to the page size
* in putpages, make sure we don't try attempt to push data in a page
  after eof.  also, skip blocks which bmap can't locate (see comment
  in code).

the effect: file systems with fs_bsize < PAGE_SIZE now work r/w
2007-08-20 22:58:03 +00:00
pooka 3c2765f1a3 Hide NetBSD kernel headers completely from ukfs. This includes creating
accessors for:
  * struct mount & VFS ops
  * struct uio
  * struct vnode
  * struct vattr

and some namespace games for:
  * namei flags
  * VOPs
  * enum vtype

Also, split rump services into two categories: library private and public
(rump_private.h and rump.h, respectively).

As a result, it is now possible to compile and use the NetBSD kernel
file systems on Linux (and probably other systems too with very
little work), although the makefiles need a bit of work to make it
a pleasureable experience.
2007-08-20 15:58:13 +00:00
pooka 34980d5637 Namespace management: do not call VOP_FOO directly from ukfs or
p2k, but rather make the calls go through librump.  This avoids
having to include NetBSD kernel headers in userspace programs.
Stay tuned for some more mods of the same sort ...
2007-08-19 21:24:21 +00:00
pooka 8657b11ebd jump through rename hoops (hi ad!) 2007-08-16 21:26:21 +00:00
pooka aecd6d8924 tweaks 2007-08-16 19:50:19 +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 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 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 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 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 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 39afc34cc7 * compile subr_time.c from kern/
* some pmap stubs
2007-08-09 07:42:07 +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 7772c7295b * compile param.c
* move opts to a separate directory
2007-08-08 09:06:11 +00:00
pooka 034104770f add microtime 2007-08-08 07:50:33 +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
pooka 711e2ec866 always compile with -g for now 2007-08-07 20:39:54 +00:00
pooka 3c4d6d00f7 * adjust device block number based on if we're putting pages to a
fs block boudary or not
* round writes to DEV_BSIZE, just to be kosher
2007-08-07 19:43:56 +00:00
pooka 44eee227b6 remove the allocstorage param from makepage - not needed 2007-08-07 19:40:17 +00:00
pooka 7d41c1505d track dirty vm objects 2007-08-07 19:37:05 +00:00
pooka 34c0850533 When doing "ubc faults", truncate offsets to page boundary to get
the last page also if it's accessed from the middle of the page.
2007-08-07 19:14:51 +00:00