NetBSD/sys/rump
haad 61583090b2 Add support for compiling ZFS and Solaris modules as RUMP libraries. Add
some locking and rumpcopy primitives and refactor module building Makefiles
to work with both RUMP and kernel modules. This is first part of adding
support for regular test of zfs on NetBSD to hunt some bugs and make it
stable.

Ok by pooka@.
2011-01-18 22:21:22 +00:00
..
dev add drvctl component 2010-12-07 21:38:07 +00:00
fs Add support for compiling ZFS and Solaris modules as RUMP libraries. Add 2011-01-18 22:21:22 +00:00
include regen: more compat syscalls 2011-01-17 18:25:17 +00:00
kern Add support for compiling ZFS and Solaris modules as RUMP libraries. Add 2011-01-18 22:21:22 +00:00
librump Add support for compiling ZFS and Solaris modules as RUMP libraries. Add 2011-01-18 22:21:22 +00:00
net make this happy to compile standalone 2011-01-12 16:12:30 +00:00
Makefile Add infrastructure for kern compnents. This is meant for those 2010-06-10 21:56:42 +00:00
Makefile.rump Support LOCKDEBUG. To use it, compile sys/rump with RUMP_LOCKDEBUG=yes. 2011-01-06 11:22:54 +00:00
README.dirs update slightly 2010-05-11 11:58:14 +00:00
TODO update a bit 2009-11-26 10:10:50 +00:00
ldscript.rump Introduce RUMP_COMPONENT. It behaves mostly like a simplified 2010-03-01 13:12:19 +00:00

README.dirs

	$NetBSD: README.dirs,v 1.11 2010/05/11 11:58:14 pooka Exp $


The following is a quick rundown of the current directory structure.
First, components in the kernel namespace, i.e. compiled with -D_KERNEL

sys/rump/librump - kernel runtime emulation
  /rumpkern	- kernel core, e.g. syscall, interrupt and lock support

  /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, e.g. audio, raidframe, usb drivers

sys/rump/fs - file system components
  /lib/lib${fs}  - kernel file system code

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.



The rest are out-of-kernel components (i.e. no -D_KERNEL)
related to rump.

hypercall interface:
src/lib/librumpuser
  The "rumpuser" set of interfaces is used by rump to communicate
  with the host.

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.  It provides a slightly
	     higher interface than pure rump syscalls.

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

src/share/examples/rump
  Various examples detailing use of rump in different scenarios.
  These are provided source-only.