#include #include #include #include #include #include #include #include void *mountd_main(void *); #include "rump_syspuffs.h" static char *pnullarg[] = { "nullmount", "/usr/src/share/examples/puffs/pnullfs/pnullfs", "/", "/", NULL, }; int main(int argc, char *argv[]) { char canon_dev[MAXPATHLEN], canon_dir[MAXPATHLEN]; struct stat sb; struct syspuffs_args args; pthread_t t; void *hon, *thesym; int rv, error, mntflags; struct ukfs *ukfs; rv = rump_init(); if (ukfs_modload("/usr/lib/librumpfs_syspuffs.so") < 1) errx(1, "modload"); mount_syspuffs_parseargs(__arraycount(pnullarg), pnullarg, &args, &mntflags, canon_dev, canon_dir); if ((ukfs = ukfs_mount(MOUNT_PUFFS, "/", UKFS_DEFAULTMP, MNT_RDONLY, &args, sizeof(args))) == NULL) err(1, "mount"); if (ukfs_modload("/usr/lib/librumpfs_nfsserver.so") < 1) errx(1, "modload"); if (pthread_create(&t, NULL, mountd_main, NULL) == -1) err(1, "mountd"); sleep(1); nfsd_main(argc, argv); }