NetBSD/sys/rump
chs 890d75f0b8 rump_component_init() is called recursively, so LIST_FOREACH_SAFE is not
actually safe, since the recursive calls can result in elements other than
the current element being removed from the list.  instead use an explicit
marker element to do safe list traversal.
2021-01-17 22:32:25 +00:00
..
dev PR/55789: Ruslan Nikolaev: New rump drivers 2020-11-06 15:35:33 +00:00
fs remove GCC_NO_ADDR_OF_PACKED_MEMBER for several subdir builds 2020-09-07 03:09:53 +00:00
include PR/55781: Ruslan Nikolaev: rump_init() does differentiate when all CPUs are 2020-11-04 22:06:38 +00:00
kern Move address hashing from init_main.c to kern_sysctl.c. 2020-08-27 14:01:36 +00:00
librump rump_component_init() is called recursively, so LIST_FOREACH_SAFE is not 2021-01-17 22:32:25 +00:00
net rumpify vether(4) 2020-09-29 18:33:22 +00:00
share Remove Pp without effect. 2019-03-08 08:24:41 +00:00
Makefile
Makefile.rump Remove in-kernel handling of Router Advertisements 2020-06-12 11:04:44 +00:00
README.compileopts
README.dirs
TODO
ldscript.rump Teach rump how to process __link_set_sysctl_funcs so it can handle 2020-03-21 04:48:37 +00:00
ldscript_sun.rump
linksyms_sun.c
listsrcdirs Merge the bouyer-xenpvh branch, bringing in Xen PV drivers support under HVM 2020-04-25 15:42:14 +00:00
makerumpsyscalls.sh
rump.sysmap regen 2020-11-02 18:56:15 +00:00
sunldgen.sh

README.dirs

	$NetBSD: README.dirs,v 1.12 2013/01/08 13:12:26 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 - rump kernel base and factions
  /rumpkern	- kernel core, e.g. syscall, interrupt and lock support

  /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 kernel ABI is not yet the
	     same as the kernel module ABI.  will eventually disappear
	     completely
  /rump    - kernel 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/libshmif   - a virtual interface which uses a memory mapped file
		    as an ethernet bus.  works completely unprivileged.
  /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).

hypercall interface:
src/lib/librumpuser
  The "rumpuser" hypercall interfaces are used by a rump kernel to
  access host resources.

remote client interface:
src/lib/librumpclient
  The rumpclient library provides remote access to rump kernel servers.

system call hijacking:
src/lib/librumphijack
  The rumphijack library allows intercepting system calls and redirecting
  them to a rump kernel server instead of the host kernel.  In other
  words, it allows existing binaries to request indicated services from
  a rump kernel instead of from the host kernel.

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 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 kernels in different scenarios.
  These are provided source-only.