NetBSD/sys/rump
pooka f2c144d595 Create rump public interfaces from description tables. This allows
us to control and wrap all entry points from "userspace" into rump.
This in turn is necessary for the upcoming rump cpu scheduler.

For each interface "foo" a public wrapper called "rump_foo" is
created.  It calls the internal implementation "rumppriv_foo".  In
case foo is to be called from inside of rump kernel space, the
private interface "rumppriv_foo" is used -- the userspace wrapper
prototypes are not even exported into the rump kernel namespace.
Needless to say, the rump kernel internal interfaces are not exported
for users.

Now, three classes of interfaces fight for control of rump:
  + the noble local control interfaces (which this commit addresses)
  + the insidious rump system calls (which are generated from syscalls.master)
  + and the evil vnode interfaces (which are generated from vnode_if.src)
2009-10-14 17:17:00 +00:00
..
dev add one more passthrough 2009-10-13 18:36:48 +00:00
fs
include regen: fix rump varargs syscalls prototypes 2009-10-13 21:57:52 +00:00
librump Create rump public interfaces from description tables. This allows 2009-10-14 17:17:00 +00:00
net Bump iovec lazy bum magic value to 32: nfsd likes to write mbufs 2009-10-12 02:25:44 +00:00
Makefile
Makefile.rump
README.dirs
TODO

	$NetBSD: README.dirs,v 1.9 2009/09/04 10:54:44 pooka Exp $

    Runnable Userspace Meta Programs

Quick rundown of the current directory structure:

sys/rump/librump - kernel runtime emulation
  /rumpkern	- kernel core, e.g. syscall, interrupt and lock support
  /rumpuser	- userspace namespace support for rump, *NO* -D_KERNEL
		  provides e.g. malloc() and some syscalls

  /rumpcrypto	- kernel cryptographic routines
  /rumpdev	- device support, e.g. autoconf subsystem
  /rumpnet	- networking support and sockets layer
  /rumpvfs	- file system support

sys/rump/include
  /machine - used for architectures where the rump ABI is not yet the
	     same as the kernel module ABI.  will eventually disappear
	     completely
  /rump    - rump headers installed to userspace

sys/rump/dev - device components

sys/rump/fs - file system components
  /lib/lib${fs}  - kernel file system code compiled out of /sys with -D_KERNEL

sys/rump/net - networking components
  /lib/libnet	  - subroutines from sys/net, e.g. route and if_ethersubr
  /lib/libnetinet - TCP/IP
  /lib/libvirtif  - a virtual interface which uses host tap(4) to shovel
		    packets.  This is used by netinet and if_ethersubr.
  /lib/libsockin  - implements PF_INET using host kernel sockets.  This is
		    mutually exclusive with net, netinet and virtif.

Users:
src/lib
  /libp2k  - puffs-to-vfs adaption layer, userspace namespace
  /libukfs - user kernel file system, a library to access file system
	     images (or devices) directly in userspace without going
	     through a system call and puffs

src/usr.sbin/puffs
  rump_$fs - userspace file system daemons using the kernel fs code