Commit Graph

674 Commits

Author SHA1 Message Date
pooka
b5d970336b disable strict aliasing to mirror kernel build flags 2009-01-01 22:16:35 +00:00
pooka
bd4f61f139 add missing "arch/" as noted by a few people 2009-01-01 20:30:45 +00:00
pooka
3945d47397 Purge multiple kernel opt files. 2009-01-01 19:43:57 +00:00
pooka
69a1713a8e fix format 2009-01-01 19:33:40 +00:00
pooka
afadc531af missed cvs add in previous commit:
Define MODULAR for rump core components.  This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
2009-01-01 19:11:18 +00:00
pooka
9a722ef702 Define MODULAR for rump core components. This enables module
loading via the kernel module framework (instead of dlopen()).
For now it only works on amd64 and i386, but for the rest it should
just be a matter of including the relevant kobj_machdep.c modules
from the kernel sources.
2009-01-01 19:07:43 +00:00
pooka
360af828c1 Rename i386 and amd64 {cpu,spl}.c to rump{cpu,spl}.c to avoid
name collisions with other source files in the kernel tree.
2009-01-01 16:50:30 +00:00
pooka
c26a0d893f update description of include 2008-12-31 13:18:06 +00:00
pooka
94dc15e204 Include rb.c instead of relying on it being in libc. 2008-12-31 13:08:57 +00:00
pooka
cb118e551d yank debug printf from previous 2008-12-31 00:57:45 +00:00
pooka
e8b4276abd Reset proc0 cwdi after unmount. Makes is possible to mount/unmount/mount
in one process.
(XXX: this code is still horrible)

problem reported by stacktic
2008-12-31 00:57:15 +00:00
pooka
dfa6b36e0e Move list of rump-uses-kmod archs to bsd.own.mk for wider consumption. 2008-12-30 21:31:10 +00:00
pooka
3b189207d8 Switch amd64 rumps to the kernel ABI. 2008-12-30 19:05:40 +00:00
pooka
593f6357c6 -I${RUMPTOP}/librump/rumpkern so that build from src/lib works.
noted by Geoff Wing on current-users
2008-12-30 09:49:21 +00:00
pooka
9c5307acaa properly handle kthread_exit() 2008-12-30 00:36:38 +00:00
pooka
9fd33357b3 Provide ifunit stub in the same place as others. 2008-12-29 23:18:35 +00:00
pooka
8a1a1e1e27 * make features match those of the nfs module just to have them in-sync
* remove stubs.c since all are now provided by rumpnet
2008-12-29 23:17:42 +00:00
pooka
14d6fd5a0b __weak_alias some more networking symbols for the benefit of the
nfs boot code in case not using the full networking stack.
2008-12-29 23:12:11 +00:00
pooka
f8829b7dcb Switch i386 away from rump/include/machine. This means that rump
on i386 now uses the native kernel ABI.  This in turn means that
rump modules and kernel modules are binary equivalent and can be
used interchangeably.
2008-12-29 22:16:15 +00:00
pooka
d19a006d1c Register a dummy block device for rump, since some file systems do
a sanity check to see if the block device exists.  This dummy block
device should eventually replace rump specfs.
2008-12-29 20:39:49 +00:00
pooka
b03bd9bf49 We are conseptually a module, so -D_MODULE. Group CPPFLAGS better. 2008-12-29 18:53:57 +00:00
pooka
614c33507f include subr_devsw in rumpkern 2008-12-29 17:45:55 +00:00
pooka
8583cae233 Rename specfs_lock as device_lock and move it from specfs to devsw.
Relaxes kernel dependency on vfs.
2008-12-29 17:41:18 +00:00
pooka
841fb873aa sprinkle static 2008-12-29 14:35:05 +00:00
cegger
beb4d1e5cc undo turn malloc flags to enums.
Requested by christos.

Keep malloc flag defines in kernel section.
2008-12-21 17:49:55 +00:00
cegger
c9114d086d Turn malloc flags into an enum. Fixes build breakage. 2008-12-20 09:17:55 +00:00
pgoyette
9c68331911 Store config(1)'s root filesystem type as a text string rather than
embedding the address of its xxx_mountroot() in swapnetbsd.c.  This
permits booting of kernels with hard-wired filesystem type even if the
filesystem is in a loadable module (ie, not linked into the kernel
image).

Discussed on current-users.  Tested on amd64 and i386 with both hard-
wired and '?' filesystem times, and on both modular and monolithic
kernels.

Thanks to pooka@ for code review and suggestions.

Addresses my PR kern/40167
2008-12-19 17:11:57 +00:00
pooka
e222420f88 CTASSERT kcondvar size 2008-12-19 09:50:04 +00:00
pooka
cf6dee5091 fix build
(hi thorpej!  the first one is always free ;)
2008-12-19 09:33:40 +00:00
pooka
7b7b68ba71 include vfs_xattr.c 2008-12-19 00:57:24 +00:00
pooka
52d070140e include snprintb 2008-12-18 11:16:36 +00:00
pooka
74bf412512 .PATH maintenance 2008-12-18 11:09:34 +00:00
pooka
a768afd60b __KERNEL_RCSID 2008-12-18 00:24:12 +00:00
pooka
08c8c2d4d4 __RCSID 2008-12-18 00:21:52 +00:00
pooka
df8e80be1a Separate the timer thread and soft interrut workers. Use a dynamic
size pool of workers to make sure there are enough for processing
the scheduled soft interrupts.
2008-12-18 00:12:00 +00:00
pooka
c60be09da1 If available (__NetBSD__), use pthread_setname_np() to set the
thread name for kthread_create().
2008-12-17 20:16:28 +00:00
pooka
b1e593bee5 Pick PPC_OEA over PPC_IBM4XX. I've decided I like it more.
(plus it hopefully builds without source changes)
2008-12-16 23:49:48 +00:00
pooka
49751f013b remove some completed TODO items and add new ones 2008-12-16 23:34:28 +00:00
pooka
abe4c2aeb6 liberate trailing whitespace 2008-12-16 23:17:17 +00:00
pooka
994144641d -Isys/arch is used in kernel builds 2008-12-16 23:16:46 +00:00
pooka
f5ffdf8399 Mark pages busy during VOP_PUTPAGES(). Deals with KASSERT in nfs write. 2008-12-16 14:48:31 +00:00
pooka
1355265509 Make rumpflushva flush only the atop info for a certain uvm object.
Better, but still not completely race-free (if two threads call
RUMP_VOP_PUTPAGES() directly for the same vm object).
2008-12-16 14:07:25 +00:00
pooka
af473973e4 Also assign a value to pmap_extract_p.
(3rd time's the charm, maybe i finally got it right?)
2008-12-15 00:12:54 +00:00
pooka
864681f9a5 Fix another error in sparc pmap_extract_p, as prompted by mrg 2008-12-15 00:10:48 +00:00
pooka
649c12eb68 If the arch uses __BSWAP_RENAME, provide non-namespaced kernel
symbols which just call the libc symbols.  Allows to get rid of
rump machine/bswap.h.

XXX:
1) this is unlikely to work on non-NetBSD
==>
2) should look into including libkern in librump
2008-12-14 19:58:29 +00:00
pooka
5ca3e3371e * fix pmap_extract() prototype
* sparc64 also defines __sparc__.  deal with it
2008-12-13 17:11:34 +00:00
pooka
1bc395ab02 Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).

(forgot to commmit with others)
2008-12-13 15:37:13 +00:00
pooka
22c85f18af Get rid of local machine/{mutex,rwlock}.h files by treating the
object storage as a single pointer (all archs have at least one
uintptr_t in the objects).
2008-12-13 15:34:48 +00:00
pooka
0d12ba9def Add a few MD ifdefs into the rump pmap stubs to enable us to get
rid of the local pmap.h and unify the pmap ABI with the kernel.
(XXX: compiles but doesn't work on vax)

Thanks once again to Greg Oster for helping with testbuilds.
2008-12-12 18:46:43 +00:00
pooka
0e6117b96f Apparently some ports rely on cpu.h including machine/pcb.h. 2008-12-11 16:25:23 +00:00
pooka
7243af74cb Make non-mpsafe threads KERNEL_LOCK() before starting execution. 2008-12-10 18:47:01 +00:00
pooka
37e12a5643 Make kernel biglock recursecount volatile. 2008-12-10 14:55:25 +00:00
pooka
ee352f3d33 Make kernel_pmap_ptr a const. Requested by steve_martin. 2008-12-10 11:10:17 +00:00
pooka
29d439f898 Make pmap_kernel() a MI macro for struct pmap *kernel_pmap_ptr,
which is now the "API" provided by the pmap module.  pmap_kernel()
remains as the syntactic sugar.

Bonus cosmetics round: move all the pmap_t pointer typedefs into
uvm_pmap.h.

Thanks to Greg Oster for providing cpu muscle for doing test builds.
2008-12-09 20:45:44 +00:00
pooka
6a5161dfcb Remove rump cpu_counter.h in favour of the arch native one. I'm
sure there was a reason why I originally added this, but I can't
find what would break without it now.  If something does pop up,
I'll fix it properly this time instead of adding silly headers.
2008-12-08 13:31:58 +00:00
pooka
316be31a2e Instead of punishing all archs for a fake vmparam.h, punish only
evbppc for its insolence and pick a ppc cpu family at random in
Makefile.rump.
2008-12-08 12:57:33 +00:00
pooka
839034650f * hang all mountpoints from rootvnode in our virtual mount hierarchy
* set VV_ROOT for the rootvnode to make getcwd realize it has met
  its journey's end
2008-11-27 16:40:40 +00:00
pooka
31b0163f0d Add nfs server rump library.
(not descended into on purpose)
2008-11-27 14:14:30 +00:00
pooka
35861926cc Link in a networking domain, required by nfs. 2008-11-27 11:31:59 +00:00
pooka
f50af27351 Move more vfs-related vm routines from rumpkern to rumpvfs. 2008-11-27 08:13:15 +00:00
pooka
2ee7b4e103 Remove the whole magic ubc window thingie. All file systems use
ubc_uiomove() now, so we can hook ourselves there.
2008-11-27 08:05:27 +00:00
pooka
23046e71b2 Add a few symbols required by nfsd 2008-11-26 15:04:02 +00:00
pooka
e40a46d006 regen 2008-11-26 15:02:05 +00:00
pooka
eaff187ca4 Add dummy pr_ctloutput. I'm sure I had one at some point, since
it's required for rump_nfs to work, but I guess I lost it somewhere.
(yes, it should actually be implemented also)
2008-11-26 07:19:48 +00:00
pooka
d6457e83e1 Make sockin radix-capable. 2008-11-25 20:42:01 +00:00
pooka
eebcd28057 Support PRU_BIND / PRU_LISTEN / PRU_ACCEPT in sockin. 2008-11-25 20:39:57 +00:00
pooka
50176705eb Take reference for proc0 rootdir vnode. 2008-11-25 20:35:46 +00:00
pooka
e346dcad76 "Manually" call rn_init() to make sure it's done. The real kernel
hooks it up with domain constructors in a fascinating way.
2008-11-25 18:44:05 +00:00
pooka
ec538307e6 fix comment (no functional change) 2008-11-25 18:38:08 +00:00
pooka
922d39c2b2 Heave-ho radix.c from librumpnet_net to librumpnet. 2008-11-25 18:36:08 +00:00
pooka
dbeec14d9d Make sure we write a positive length of data. 2008-11-21 18:02:17 +00:00
pooka
bedcc68e65 rump_vfs_load() is really rump_module_load(), so call it that and
move it from rumpvfs to rumpkern.
2008-11-21 06:09:51 +00:00
ad
92ce8c6a3d Make the emulations, exec formats, coredump, NFS, and the NFS server
into modules. By and large this commit:

- shuffles header files and ifdefs
- splits code out where necessary to be modular
- adds module glue for each of the components
- adds/replaces hooks for things that can be installed at runtime
2008-11-19 18:35:57 +00:00
pooka
e10fef6cd2 Split vfs out of rumpkern into rumpvfs. Non-fs rumps no longer
include the file system code.  File system rumps explicitly need
to include rumpvfs from now on.
2008-11-19 14:10:48 +00:00
ad
20514c29be +evcnt_detach 2008-11-19 12:20:40 +00:00
pooka
7fca80b0ff note rumpnet 2008-11-18 13:08:34 +00:00
pooka
72b66cb31e Pass biodone() to rumpuser as a callback instead of hardcoding it.
Also, explicitly init rumpuser async io thread.
2008-11-18 12:39:35 +00:00
pooka
48d146fba6 cwd is logically a vfs concept, so take it out from the bosom of
kern_descrip and into vfs_cwd.  No functional change.
2008-11-18 11:36:58 +00:00
pooka
d76a9369e5 Remove rump_vp locking interfaces, use RUMP_VOP instead. 2008-11-17 13:24:14 +00:00
pooka
11a6424f3c regen 2008-11-17 13:20:39 +00:00
pooka
b81cfcf61f adjust comments out of lock.h 2008-11-17 13:20:22 +00:00
pooka
a1e0d479f4 regen 2008-11-17 13:11:24 +00:00
pooka
aab859210b include those appetizing lockmanger flags 2008-11-17 13:10:44 +00:00
pooka
50cbbdb2d5 No need to .WAIT anymore: headers are done in a separate pass and
binaries are no longer in this subtree.
2008-11-17 10:21:44 +00:00
pooka
e349d81775 Tune CFLAGS to a consistent default. 2008-11-17 09:03:51 +00:00
pooka
fa86dc99d5 reregen to get those most important rcsids right 2008-11-17 08:59:33 +00:00
pooka
e45e5fef43 Descend into include/rump and install headers. 2008-11-17 08:54:39 +00:00
pooka
20a993658a Move rump public headers to include/rump 2008-11-17 08:53:12 +00:00
pooka
85eff24b94 regen 2008-11-17 08:52:18 +00:00
pooka
0a380919d5 Add script to statically generate rumpdefs.h instead of doing it buildtime. 2008-11-17 08:49:55 +00:00
pooka
e5da604114 Add more verbose commentage to the module thread non-creation. 2008-11-17 08:43:41 +00:00
pooka
80610738b1 Ignore the module unload thread. 2008-11-17 08:41:28 +00:00
pooka
98bf46c51a <sys/buf.h> police 2008-11-16 18:44:07 +00:00
pooka
9c3d490eb5 regen 2008-11-16 18:41:05 +00:00
pooka
ab7329f0f7 explicitly include <sys/buf.h> since we explicitly use it 2008-11-16 18:37:28 +00:00
pooka
e6f5280c8d Add comments on how to do tap and bridging required for sensible
full networking stack operation.
2008-11-14 14:24:00 +00:00
pooka
1941578e57 slap some sort of copyright here 2008-11-14 14:17:53 +00:00
pooka
fe762e15b2 Clearly state that VOP_BMAP panic in putpages is because I'm a lazy bum.
(although I can't really think of any scenario where VOP_BMAP could
legally fail)
2008-11-14 11:57:07 +00:00
christos
d296aa9163 fix compilation and lint warnings. 2008-10-30 01:54:24 +00:00
minskim
13a938dd6c Remove trailing whitespace. 2008-10-26 18:39:01 +00:00
apb
f46c1de7cb Use ${TOOL_SED} instead if plain sed in Makefiles. 2008-10-25 22:27:34 +00:00
pooka
afbf917f75 Alpha requires 8k pages for mbuf size calculation to work (maybe
sparc64 too?).  Make it so.
2008-10-16 22:05:12 +00:00
wrstuden
7e10f527c2 Regen syscall tables. I forgot to do it after revivesa. While pooka
did some, not all are regenerated. Do them all at once for consistency.
2008-10-16 20:12:23 +00:00
christos
75e8ce56c6 revert stack protector change. 2008-10-16 19:35:07 +00:00
pooka
7555810672 regen: ioctl 2008-10-16 19:33:11 +00:00
pooka
6d68e64d68 Add an example of how to configure the virtual interface address
and the default gateway.

(this will probably go into some library eventually, but now it'll
just sit here as an example)
2008-10-16 19:28:26 +00:00
pooka
710b373bce Before I sort all the COMPAT_RIDICULOUSLYPREHISTORIC ioctl stuff
out, add a weak alias for ifunit() so that utils can be linked with
sockin.
2008-10-16 19:27:24 +00:00
pooka
a208c2294a Deal with the ld.so/linkset brokenness and compile all of libnet
and libnetinet into a big bunch for now.  If they were separate
libraries, the DOMAIN_DEFINE() in the latter on the linkline would
not get noticed at "boot" time because of the abovementioned
brokenness.  One of these days I'll add code to dlopen() the
libraries and resplit them, but this will allow things to work
until then.
2008-10-16 19:14:51 +00:00
pooka
2690ed220b Ignore stack-protector, since with nfs_bio.c it gets its life force
drained out.  Yes, this is a quick kludge, should rather fix
nfs_bio.c to be less silly.
2008-10-16 19:06:40 +00:00
pooka
19b5350e77 call rump_netisr_init() 2008-10-16 16:41:07 +00:00
pooka
346ffecff3 ...... except that the compat converter is actually supposed to convert
the ioctl, not return random garbage.  It returning random garbage
causes an interface with an interesting netmask to get set and
hence a very interesting effect when you try to add a route for
your system.

All in all, a very healthy debugging session (if you're a vampire
or a wraith).
2008-10-16 16:40:39 +00:00
pooka
a60de16dcb ... except that compat_ifioctl() must know how to route the
commands further.
2008-10-16 15:02:10 +00:00
pooka
61c2d7025c Add a few compat stubs. They shouldn't be required at all, but I
don't currently have the time to wage a holy war against how the
kernel decides it wants them.
2008-10-16 14:38:39 +00:00
pooka
8447026c71 appease 64bit gcc 2008-10-16 13:36:06 +00:00
pooka
37b61acf1e * descend into rump/net
* descend into fs/lib/libnfs
2008-10-16 09:29:43 +00:00
pooka
ce2bb4bac6 Add a prototype to allow this to build (will be moved to a better
place later).
2008-10-16 09:25:30 +00:00
pooka
e66325797b kill default DBG=-g 2008-10-16 09:24:51 +00:00
pooka
47c581b572 nfs_boot calls some networking stack routines directly. Since rump
will not invoke nfs_boot in the foreseeable future, provide those
routines as stubs in case sockin is used instead of the real
networking stack.
2008-10-15 22:25:26 +00:00
pooka
2d1a1a1ecf Don't descend into rumptest automatically. Otherwise a manual
"make install" in this directory does some funnies.
2008-10-15 20:41:11 +00:00
pooka
1ff56ab29e One more init I happened to forget: iostat_init() 2008-10-15 20:15:37 +00:00
pooka
cf82732ba2 Revert weird revivesa merge botch. (Hi Bill!) 2008-10-15 13:57:03 +00:00
pooka
edfec78484 add -lrumpnet 2008-10-15 13:11:45 +00:00
pooka
8fb0c4b043 Add support bits necessary for rumpnet functionality. 2008-10-15 13:04:26 +00:00
pooka
f7c6dc5e73 provide rumpuser_net_connect() 2008-10-15 13:02:29 +00:00
pooka
687fd3f77a regen: few networking calls 2008-10-15 13:02:01 +00:00
pooka
ab368d7178 Add the basic rump networking library, which provides e.g. sockets
and mbufs.  This is required by all network-using rump applications.
2008-10-15 13:00:39 +00:00
pooka
ba12d8328e Call rump_sys_setsockopt(SO_RCVTIMEO) for el-cheapo "async" socket i/o. 2008-10-15 11:45:35 +00:00
pooka
7dd6651a0a Mostly support TCP, mostly meaning "client-side TCP", since listen,
accept etc. is not supported yet.  Disconnect is not really supported
either, but doesn't matter in most cases.
2008-10-15 11:43:38 +00:00
ad
1ec58d56ef - Rename cpu_lookup_byindex() to cpu_lookup(). The hardware ID isn't of
interest to MI code. No functional change.
- Change /dev/cpu to operate on cpu index, not hardware ID. Now cpuctl
  shouldn't print confused output.
2008-10-15 08:13:17 +00:00
wrstuden
4fb41e761e Merge wrstuden-revivesa into HEAD. Catch some files that I forgot
to revive on HEAD in previous commit.
2008-10-15 06:52:38 +00:00
wrstuden
fc7511b00e Merge wrstuden-revivesa into HEAD. 2008-10-15 06:51:17 +00:00
pooka
fe413fd0f6 +IPL_SOFTNET 2008-10-14 14:09:29 +00:00
pooka
6fd4c68b67 Add some more trivial emulations. 2008-10-14 10:42:27 +00:00
pooka
a48233737f score some stubs 2008-10-14 10:32:38 +00:00
pooka
8a7a4b8184 Add a simple example of how to use rump networking facilities.
This just contacts www.NetBSD.org, does GET / and displays the
result.

It either uses the host kernel socket provided PF_INET or the kernel
TCP/IP stack running in userspace (via if_virt and /dev/tap),
depending on the libraries it's linked with.

(not built yet, as I need to commit some more bits from my local
tree for it work)
2008-10-14 00:56:24 +00:00
pooka
65f822a3e5 Make the "something random" ethernet address ETHER_IS_LOCAL
(address assignment probably needs some more work if we want to
support multiple interfaces).

hat tip to Quentin Garnier
2008-10-14 00:50:44 +00:00
pooka
5ca4322cea Add tcp debugging as a build option. 2008-10-13 22:24:06 +00:00
pooka
e6b645ca82 Dear diary: an ethernet address with 0x01 set in the first octet
is an ethernet multicast address.  TCP does not like ethernet
multicast addresses.
2008-10-13 22:05:15 +00:00
pooka
1c4adfb91b award unlimited sbsize rlimit 2008-10-13 19:41:13 +00:00
pooka
c4be8eb459 regen: properly create weak references to sys_foo() 2008-10-13 18:17:43 +00:00
pooka
0473281d9b rump_enosys() is autogenerated into rump_syscalls (makes things
actually work)
2008-10-13 18:17:07 +00:00
pooka
c65f514a40 Add uid_init() I managed to miss earlier. 2008-10-13 18:03:53 +00:00
pooka
d10342d64b regen - weak aliasing for default syscall 2008-10-13 16:25:52 +00:00
pooka
42349670d9 add rump_enosys() 2008-10-13 16:20:09 +00:00
pooka
28f7a87951 Provide psignal() so that we don't get linked against psignal(3).
As there is no real process model currently, just "trap" the signals
appropriately.
2008-10-13 11:14:14 +00:00
pooka
fac4c8d11a Add some shameful kludges for the vax build. Eventually I'd like
to use the native kernel machine directory, so don't waste too much
effort fighting this now.
2008-10-12 22:08:08 +00:00
pooka
123cb9861c Add callout inits which I managed to not commit earlier with the
rest of the callout stuff.

problem noticed by Arnaud Ysmal
2008-10-12 18:52:56 +00:00
pooka
2027ca6b58 Include <machine/cpu> for the benefit of archs where it doesn't happen
accidentally automagically.

Pointed out by Havard.
2008-10-11 16:23:24 +00:00
pooka
7e5aba5af0 Move uidinfo to its own module in kern_uidinfo.c and include in rump.
No functional change to uidinfo.
2008-10-11 13:40:57 +00:00
pooka
be7784b146 Provide time_uptime and push it forward every now and then if we happen
to have the timer thread.  rump uptime - woohoo.
2008-10-10 21:00:30 +00:00
pooka
1fbd8b20a8 * implement uvm_km_alloc/free_poolpage()
* add silly stubs for uvm_lwp_hold/rele()
2008-10-10 20:51:44 +00:00
pooka
02758afb77 reorganize routines a bit better. no functional change 2008-10-10 20:45:21 +00:00
pooka
b34df86410 remember to call percpu_init() 2008-10-10 20:24:10 +00:00
pooka
0337729dd1 Add a simple percpu implementation (which isn't actually percpu at
all, since we don't currently have the notion of "real" cpu in
rump...but that's beyond the point).
2008-10-10 20:19:35 +00:00
pooka
963a1891c7 fix brainfart: kthread_create() sets curlwp 2008-10-10 20:13:58 +00:00
pooka
b33ee0fb5c Support callouts and call callout_hardclock() from the timer
interrupt thread.

The sleepq implementation required for callouts is horrible, kludged
only for callouts, and generally unacceptable.  It needs revisiting,
but I'm not sure yet should rump or kern_timeout be improved.  It's
almost untested as of now, but committing this will give me some
maneuvering space while letting application compile.
2008-10-10 13:14:41 +00:00
pooka
a868d2c97b add kern_rate, subr_iostat and subr_once 2008-10-09 21:30:06 +00:00
pooka
f3efa1ae96 Reorganize SRCS+= into smaller chunks to make adding new files
easier.  No functional change.
2008-10-09 21:25:50 +00:00
pooka
f88be1435b Rewrite interrupts to provide better softintr support, i.e. not
execute them simply in the context of the scheduling code, as this
does not work for all applications (e.g. networking soft interrupts).
Rather, schedule them and execute them from a separate context.

Also provide a timer which for now executes just hardclock_callout()
(well, at least after callouts are included in librump, which is
soon).
2008-10-09 19:40:52 +00:00
pooka
d22cdb027a No point in having our private atomic ops, just use the ones now
available in libc.
2008-10-09 17:58:33 +00:00
pooka
c453d67e49 Compile all rump kernel portions with -DMULTIPROCESSOR. 2008-10-09 13:40:38 +00:00
pooka
25a1a46f4b Unsupport ltsleep() called with an interlock. Not that it was
really supported before either, since without MULTIPROCESSOR it's
just a nop.
2008-10-09 13:39:59 +00:00
pooka
287270f554 Bump virtual page shift from 10 to 12. Otherwise the mbuf generating
macros fail to operate properly due to M_EXT_MAXPAGES being too
large and hence struct _m_ext being over MSIZE already by itself.
2008-10-09 12:34:36 +00:00
pooka
8ffd7b368a document libraries in rump/net/lib 2008-10-09 11:50:08 +00:00
pooka
02100cd42d Wrap potentially blocking operations to drop and retake the kernel
giant lock.
2008-10-09 01:19:06 +00:00
pooka
01f8a524d4 Rewrite kernel lockus maximus handling to be correct. 2008-10-09 01:17:48 +00:00
pooka
ea7f1c6709 check return value of rump_init() 2008-10-08 11:01:28 +00:00
pooka
f4ce96e86b check rump_init() return value 2008-10-07 23:22:05 +00:00
pooka
5877c6dc5e Embed library build version into the init call and refuse to init
if they don't match.  In other words, this is a lightweight library
major number.
2008-10-07 23:16:59 +00:00
pooka
e15435197f Make libnfs compile. 2008-10-06 01:00:57 +00:00
pooka
f4c6b13e6b Locally descend into new directories (build does not descend here yet). 2008-10-06 00:32:02 +00:00
pooka
61e869be3c Implement a virtual userspace networking interface. This is required
for any sensible operation when running the entire TCP/IP stack in
userspace (as opposed to libsockin which uses host kernel networking
to provide PF_INET).

While this basically works (although it is quite barebones), it
depends on some bit of cleanup in librump and is not built by
default yet.
2008-10-06 00:30:32 +00:00
pooka
86cf71862e Provide the TCP/IP as a rump library. 2008-10-06 00:27:48 +00:00
pooka
8fb9f99bba Provide essentially sys/net as a rump library. 2008-10-06 00:27:06 +00:00
pooka
ad9bbd7b26 Add a very simplistic PF_INET/SOCK_DGRAM domain/proto implementation,
which delegates the work to host kernel sockets.  This does not
run the entire kernel TCP/IP stack in userspace and therefore does
not require the ability to send or receive raw packets.  This
implies that root priviledges are not required.  As already said
above, only supports UDPv4 for now.  Extending should be easy.
2008-10-02 21:59:19 +00:00
pooka
982852e71e Add some routines related to networking. 2008-10-02 21:37:59 +00:00
pooka
fc745dffe8 Remove rumpuser_yield(). Not only doesn't it really make sense
here, some kind soul made it completely empty.
2008-10-02 19:37:23 +00:00
pooka
43242e6cbe Make spec_fsync() a do-nothing instead of a do-panic. Some file
systems have it directly in the specfs op vector.
2008-09-30 21:47:33 +00:00
pooka
85ca5618f1 Check that we apply the previous kludge only to the root vnode. 2008-09-30 21:00:39 +00:00
pooka
24fd6139c3 When paging in data, do not try to read past "disk" EOF. This
fixes reads for file systems which are not bound by such mundane
limitations as block size (example: nfs).
2008-09-30 20:08:23 +00:00
pooka
4fb0fb162c Make sure proc0.p_vmspace qualifies as VMSPACE_IS_KERNEL_P(). 2008-09-30 19:50:16 +00:00
pooka
44e0ae2322 Switch to std kern_auth. 2008-09-30 19:25:56 +00:00
pooka
8bf6577840 Always set HASBUF when creating a componentname. 2008-09-30 16:51:26 +00:00
pooka
eb50fe2242 Add an unspeakable kludge for nfs, which keeps an explicit reference
to the root vnode.  Properly fixing this would require fixing p2k,
which would require fixing puffs, which has some optimizations,
which are incompatible with kernel file systems...  guess my Eyes
of the Overworld were misplaced at that time.
2008-09-30 15:26:54 +00:00
reinoud
19eb6cb8aa Remove the not anymore used UDF_READWRITE flag. 2008-09-28 09:02:45 +00:00
pooka
2208b2d0df add WARNS=4 2008-09-27 20:49:55 +00:00
pooka
9db630e082 Help out reinoud a bit with the challenge of adding vfs_dirhash.c here 2008-09-27 16:03:30 +00:00
pooka
dd1721fa8d Move global malloc types from kern_malloc into a separate module. 2008-09-25 16:23:45 +00:00
pooka
e90eb67076 * fsync after !B_ASYNC write
* replace some b_flags magic with BUF_ISREAD/WRITE()
2008-09-11 13:42:35 +00:00
tron
b8771f491d Fix build problem with puffs enabled caused by the fix for PR kern/39493.
Problem noted by Thomas Klausner, patch provided by Juan RP.
2008-09-09 19:22:00 +00:00
pooka
e63b31a974 Give lwp0 an fd table and cwd. Allows easier direct use of rump. 2008-09-07 20:17:03 +00:00
pooka
429abb75bf regen: return -1 for error 2008-09-07 19:28:29 +00:00
pooka
aa224b94d6 fix broken break (oh the irony) 2008-09-05 10:42:09 +00:00
pooka
795cda8d6a Add rump support for sysvbfs. 2008-09-04 12:21:25 +00:00
pooka
827e91dd6f Make syspuffs mount code supply mount_syspuffs_parseargs() like
the other mount binaries do.  Now syspuffs can be used to run all
puffs file systems as utilities.  This includes fuse file systems
and becomes interesting with the fs-utils project.  We can now do
e.g. this:

  ReFUSE ntfs-3g:
golem> echo hello | fsu_write/fsu_write ntfs-3g puffs ~/img/ntfs.img dafile
golem> fsu_cat/fsu_cat ntfs-3g puffs ~/img/ntfs.img dafile
hello
golem>

  puffs sysctlfs:
golem> fsu_ls/fsu_ls mount_sysctlfs puffs sysctl -l ddb
total 0
-r-xr-xr-x  1 pooka  users  1 Sep  2 22:11 commandonenter
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 fromconsole
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 lines
-r-xr-xr-x  1 pooka  users  8 Sep  2 22:11 maxoff
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 maxwidth
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 onpanic
-r-xr-xr-x  1 pooka  users  3 Sep  2 22:11 radix
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tabstops
-r-xr-xr-x  1 pooka  users  2 Sep  2 22:11 tee_msgbuf

Same works for psshfs etcetc.

In other words, this provides total integration for "normal"
in-kernel file systems and puffs/fuse file systems on the ukfs
library level.

Note: implementation is still "first stab" and the fs-utils usage
will no doubt change.
2008-09-02 19:38:25 +00:00
pooka
38b7d91d61 Add IPL_SOFTCLOCK, something required it (although I can't quite
recall what, this has been floating in my tree for a while)
2008-09-02 19:27:35 +00:00
pooka
4b9a5d92cf Since putter wants complete frames, make sure we can hand them to it. 2008-08-15 15:02:28 +00:00
pooka
4b5f80486c Make it possible to control starting of threads per env variable
instead of only at compile-time.
2008-08-12 10:04:57 +00:00
pooka
96a0d293a7 Don't create a new proc structure for kthreads (pid == 0).
XXX: this routine should probably do better accounting and consistency
checks as well.
2008-08-08 14:40:07 +00:00
pooka
0fca7fa92c minor nit: fix header #ifndef namespacing 2008-08-08 13:57:59 +00:00