Module Name: src Committed By: pooka Date: Mon Dec 13 14:13:22 UTC 2010
Modified Files: src/usr.bin/rump_allserver: rump_allserver.c Log Message: Add -m which can be used to load modules (which is a completely different code path than using dlopen() before rump_init(), since the former uses the in-kernel linker and the latter links the object in rtld). So: golem> ./rump_server -l librumpvfs.so -m /sys/modules/tmpfs/tmpfs.kmod unix:///tmp/commsuck ==> golem> env RUMP_SERVER=unix:///tmp/commsuck rump.modstat NAME CLASS SOURCE REFS SIZE REQUIRES suser secmodel builtin 0 - - tmpfs vfs filesys 0 16713 - wapbl vfs builtin 0 - - Source is filesys instead of builtin, as expected. Notably, for -m you *must* use -l librumpvfs.so. This is because you need VFS in your kernel to be able to load modules from the file system. In a regular kernel "librumpvfs.so" is linked at kernel build time and loaded by the bootloader. Here we use dlopen() for both effects (the other choices would have been to link rump_server with -lrumpvfs, but that would limit the flexibility, or link tmpfs.kmod directly into the binary, but that would limit the flexibility even more). To generate a diff of this commit: cvs rdiff -u -r1.6 -r1.7 src/usr.bin/rump_allserver/rump_allserver.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.