f2c144d595
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) |
||
---|---|---|
.. | ||
dev | ||
fs | ||
include | ||
librump | ||
net | ||
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