Name |
Date |
Size |
#Lines |
LOC |
||
---|---|---|---|---|---|---|
.. | - | - | ||||
dev/ | H | - | - | 4,951 | 2,827 | |
fs/ | H | - | - | 889 | 440 | |
include/ | H | - | - | 4,524 | 3,249 | |
kern/ | H | - | - | 4,445 | 3,342 | |
librump/ | H | - | - | 25,110 | 19,072 | |
net/ | H | - | - | 5,950 | 3,581 | |
share/ | H | - | - | 1,065 | 1,050 | |
Makefile | H A D | 09-Nov-2014 | 161 | 10 | 5 | |
Makefile.rump | H A D | 20-May-2024 | 8.6 KiB | 283 | 184 | |
README.compileopts | H A D | 05-Jul-2023 | 3.9 KiB | 138 | 91 | |
README.dirs | H A D | 08-Jan-2013 | 2.5 KiB | 69 | 51 | |
TODO | H A D | 08-Sep-2015 | 1,023 | 20 | 18 | |
ldscript.rump | H A D | 21-Mar-2020 | 949 | 43 | 37 | |
ldscript_sun.rump | H A D | 15-Mar-2013 | 2.4 KiB | 68 | 58 | |
linksyms_sun.c | H A D | 15-Mar-2013 | 2.6 KiB | 66 | 54 | |
listsrcdirs | H A D | 25-Apr-2020 | 4.7 KiB | 172 | 120 | |
makerumpsyscalls.sh | H A D | 26-Jan-2016 | 2.2 KiB | 113 | 67 | |
rump.sysmap | H A D | 20-May-2024 | 15.7 KiB | 225 | 224 | |
sunldgen.sh | H A D | 15-Mar-2013 | 1.7 KiB | 39 | 23 |
README.compileopts
1 $NetBSD: README.compileopts,v 1.17 2023/07/05 16:40:34 lukem Exp $ 2 3This file describes compile-time options for rump kernels. 4 5Additionally, NetBSD build options will have an effect; see mk.conf(5) 6and src/share/mk/bsd.README for a description of NetBSD build options. 7 8Note: after changing an option, do a clean build. 9 10Global options: 11 12 13 RUMP_DIAGNOSTIC 14 15values: yes|no 16defval: yes 17effect: Iff "yes", build with -DDIAGNOSTIC. 18 19 20 RUMP_DEBUG 21 22values: <defined> / <undefined> 23defval: <undefined> 24effect: Iff defined, build with -DDEBUG. 25 26 27 RUMP_LOCKDEBUG 28 29values: <defined> / <undefined> 30defval: <undefined> 31effect: Iff defined, build with -DLOCKDEBUG. 32 33 34 RUMP_VNODE_LOCKDEBUG 35 36values: <defined> / <undefined> 37defval: <undefined> 38effect: Iff defined, build with -DVNODE_LOCKDEBUG. 39 40 41 RUMP_KTRACE 42 43values: yes|no 44defval: yes 45effect: Iff "yes", build with -DKTRACE. 46 47 48 RUMP_LOCKS_UP 49 50values: yes|no 51defval: no 52effect: If "yes", build rump kernel with uniprocess-optimized locking. 53 An implication of this is that RUMP_NCPU==1 is required at 54 runtime. If "no", build with multiprocessor-capable locking. 55 56 57 RUMP_VIRTIF 58 59values: yes|no 60defval: yes 61effect: Iff "yes", build the virt(4) network interface. Turning this 62 off may be necessary on systems that lack the necessary headers, 63 e.g. musl libc based Linux. 64 65 66 RUMP_CURLWP 67 68values: hypercall/__thread/register or <undefined> 69defval: <undefined> 70effect: Control how curlwp is obtained in a rump kernel. This is 71 a very frequently accessed thread-local variable, and optimizing 72 access has a significant performance impact. Note that all 73 options are not available on hosts/machine architectures. 74 <undefined> - use default implementation (currently "hypercall") 75 hypercall - use a hypercall to fetch the value 76 __thread - use the __thread feature to fetch value via TLS 77 register - use a dedicated register (implies -ffixed) 78 79 80 RUMP_NBCOMPAT 81 82values: comma-separated list of releases; e.g. "60,70"; 83 or "all" or "default" or "none". Currently default == all (but 84 might not be so in the future) 85defval: all 86effect: Builds NetBSD COMPAT_nn code for each of the elements in the list. 87 This option is useful only when building rump kernels for 88 NetBSD userspace, and an empty value may be supplied elsewhere. 89 90 91================================================================================ 92 93Per-component options: 94 95 RUMP_SYM_NORENAME 96 97values: regexp matching symbol names 98defval: <undefined> 99effect: Causes matching symbols from the component to not be renamed 100 into the rump kernel symbol namespace (rumpns_). This option 101 can only be used in embedded environments where there is full 102 control over the platform's namespace. Conversely, this option 103 cannot be used in kernel components which are not meant to be 104 tied to a specific platform. Note: the value is processed by 105 make and must be appropriately escaped. example: 106 RUMP_SYM_NORENAME=HYPERVISOR_|block$$ 107 will not rename "^HYPERVISOR_" or "^block$" 108 109 110================================================================================ 111 112 113The rest of the options described in this file are not intended to be 114set by users, but by the package building rump kernels. 115 116 117 RUMP_KERNEL_IS_LIBC 118 119values: defined / not defined 120effect: Iff defined, export normal system call symbols from libc. 121 For example, without this option rump_sys_open() is exported. 122 With this option, both open() and rump_sys_open() are exported. 123 This option is meant for building systems where a rump kernel 124 is the only operating system like component. 125 126 127 RUMP_LDSCRIPT 128 129values: no/GNU/sun/ctor 130defval: GNU 131effect: Select the linker script to be used for linking rump kernel shared 132 library components. 133 no - do not use a linker script 134 GNU - use a linker script for GNU ld 2.18 and later 135 sun - use a linker script for the Solaris linker 136 ctor - do not use a linker script, make the code 137 generate __attribute__((constructor)) 138
README.dirs
1 $NetBSD: README.dirs,v 1.12 2013/01/08 13:12:26 pooka Exp $ 2 3 4The following is a quick rundown of the current directory structure. 5First, components in the kernel namespace, i.e. compiled with -D_KERNEL 6 7sys/rump/librump - rump kernel base and factions 8 /rumpkern - kernel core, e.g. syscall, interrupt and lock support 9 10 /rumpdev - device support, e.g. autoconf subsystem 11 /rumpnet - networking support and sockets layer 12 /rumpvfs - file system support 13 14sys/rump/include 15 /machine - used for architectures where the rump kernel ABI is not yet the 16 same as the kernel module ABI. will eventually disappear 17 completely 18 /rump - kernel headers installed to userspace 19 20sys/rump/dev - device components, e.g. audio, raidframe, usb drivers 21 22sys/rump/fs - file system components 23 /lib/lib${fs} - kernel file system code 24 25sys/rump/net - networking components 26 /lib/libnet - subroutines from sys/net, e.g. route and if_ethersubr 27 /lib/libnetinet - TCP/IP 28 /lib/libvirtif - a virtual interface which uses host tap(4) to shovel 29 packets. This is used by netinet and if_ethersubr. 30 /lib/libshmif - a virtual interface which uses a memory mapped file 31 as an ethernet bus. works completely unprivileged. 32 /lib/libsockin - implements PF_INET using host kernel sockets. This is 33 mutually exclusive with net, netinet and virtif. 34 35 36 37The rest are out-of-kernel components (i.e. no -D_KERNEL). 38 39hypercall interface: 40src/lib/librumpuser 41 The "rumpuser" hypercall interfaces are used by a rump kernel to 42 access host resources. 43 44remote client interface: 45src/lib/librumpclient 46 The rumpclient library provides remote access to rump kernel servers. 47 48system call hijacking: 49src/lib/librumphijack 50 The rumphijack library allows intercepting system calls and redirecting 51 them to a rump kernel server instead of the host kernel. In other 52 words, it allows existing binaries to request indicated services from 53 a rump kernel instead of from the host kernel. 54 55Users: 56src/lib 57 /libp2k - puffs-to-vfs adaption layer, userspace namespace 58 /libukfs - user kernel file system, a library to access file system 59 images (or devices) directly in userspace without going 60 through a system call and puffs. It provides a slightly 61 higher interface than syscalls. 62 63src/usr.sbin/puffs 64 rump_$fs - userspace file system daemons using the kernel fs code 65 66src/share/examples/rump 67 Various examples detailing use of rump kernels in different scenarios. 68 These are provided source-only. 69