Module Name: src Committed By: pooka Date: Thu Dec 3 12:35:35 UTC 2009
Modified Files: src/sys/rump/librump/rumpkern: emul.c rump.c rump_private.h src/sys/rump/librump/rumpvfs: rump_vfs.c rump_vfs_private.h rumpfs.c Log Message: Decide it's not worth the fuss to have rumpfs as a module and just hardcode attach into rump_vfs_init(). Saves us from a lot of pingpong init bouncing from one component to another to get the order right. To generate a diff of this commit: cvs rdiff -u -r1.111 -r1.112 src/sys/rump/librump/rumpkern/emul.c cvs rdiff -u -r1.143 -r1.144 src/sys/rump/librump/rumpkern/rump.c cvs rdiff -u -r1.38 -r1.39 src/sys/rump/librump/rumpkern/rump_private.h cvs rdiff -u -r1.38 -r1.39 src/sys/rump/librump/rumpvfs/rump_vfs.c cvs rdiff -u -r1.8 -r1.9 src/sys/rump/librump/rumpvfs/rump_vfs_private.h cvs rdiff -u -r1.34 -r1.35 src/sys/rump/librump/rumpvfs/rumpfs.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/librump/rumpkern/emul.c diff -u src/sys/rump/librump/rumpkern/emul.c:1.111 src/sys/rump/librump/rumpkern/emul.c:1.112 --- src/sys/rump/librump/rumpkern/emul.c:1.111 Tue Dec 1 09:52:29 2009 +++ src/sys/rump/librump/rumpkern/emul.c Thu Dec 3 12:35:34 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: emul.c,v 1.111 2009/12/01 09:52:29 pooka Exp $ */ +/* $NetBSD: emul.c,v 1.112 2009/12/03 12:35:34 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: emul.c,v 1.111 2009/12/01 09:52:29 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: emul.c,v 1.112 2009/12/03 12:35:34 pooka Exp $"); #include <sys/param.h> #include <sys/null.h> @@ -123,10 +123,7 @@ device_class(device_t dev) { - if (dev != RUMP_VFSROOTDEV) - panic("%s: dev != root_device not supported", __func__); - - return DV_VIRTUAL; + return dev->dv_class; } void Index: src/sys/rump/librump/rumpkern/rump.c diff -u src/sys/rump/librump/rumpkern/rump.c:1.143 src/sys/rump/librump/rumpkern/rump.c:1.144 --- src/sys/rump/librump/rumpkern/rump.c:1.143 Tue Dec 1 09:50:51 2009 +++ src/sys/rump/librump/rumpkern/rump.c Thu Dec 3 12:35:34 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rump.c,v 1.143 2009/12/01 09:50:51 pooka Exp $ */ +/* $NetBSD: rump.c,v 1.144 2009/12/03 12:35:34 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -28,7 +28,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.143 2009/12/01 09:50:51 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.144 2009/12/03 12:35:34 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -36,6 +36,7 @@ #include <sys/callout.h> #include <sys/conf.h> #include <sys/cpu.h> +#include <sys/device.h> #include <sys/evcnt.h> #include <sys/event.h> #include <sys/exec_elf.h> @@ -102,6 +103,10 @@ sigset_t sigcantmask; +struct device rump_rootdev = { + .dv_class = DV_VIRTUAL +}; + #ifdef RUMP_WITHOUT_THREADS int rump_threads = 0; #else @@ -124,7 +129,6 @@ int rump__unavailable() {return EOPNOTSUPP;} __weak_alias(rump_net_init,rump__unavailable); __weak_alias(rump_vfs_init,rump__unavailable); -__weak_alias(rump_vfs_init2,rump__unavailable); __weak_alias(rump_dev_init,rump__unavailable); __weak_alias(rump_vfs_fini,rump__unavailable); @@ -308,9 +312,6 @@ rumpuser_dl_module_bootstrap(rump_module_init, rump_kernelfsym_load); - /* mount rootfs, etcetc. */ - rump_vfs_init2(); - rumpuser_gethostname(hostname, MAXHOSTNAMELEN, &error); hostnamelen = strlen(hostname); Index: src/sys/rump/librump/rumpkern/rump_private.h diff -u src/sys/rump/librump/rumpkern/rump_private.h:1.38 src/sys/rump/librump/rumpkern/rump_private.h:1.39 --- src/sys/rump/librump/rumpkern/rump_private.h:1.38 Wed Dec 2 08:31:56 2009 +++ src/sys/rump/librump/rumpkern/rump_private.h Thu Dec 3 12:35:34 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_private.h,v 1.38 2009/12/02 08:31:56 uebayasi Exp $ */ +/* $NetBSD: rump_private.h,v 1.39 2009/12/03 12:35:34 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -32,6 +32,7 @@ #include <sys/param.h> #include <sys/cpu.h> +#include <sys/device.h> #include <sys/lwp.h> #include <sys/proc.h> #include <sys/systm.h> @@ -54,9 +55,9 @@ #define UIO_VMSPACE_SYS (&rump_vmspace) #define RUMP_LMUTEX_MAGIC ((kmutex_t *)0x101) -#define RUMP_VFSROOTDEV ((struct device *)-11) extern int rump_threads; +extern struct device rump_rootdev; extern struct sysent rump_sysent[]; Index: src/sys/rump/librump/rumpvfs/rump_vfs.c diff -u src/sys/rump/librump/rumpvfs/rump_vfs.c:1.38 src/sys/rump/librump/rumpvfs/rump_vfs.c:1.39 --- src/sys/rump/librump/rumpvfs/rump_vfs.c:1.38 Tue Dec 1 09:56:59 2009 +++ src/sys/rump/librump/rumpvfs/rump_vfs.c Thu Dec 3 12:35:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_vfs.c,v 1.38 2009/12/01 09:56:59 pooka Exp $ */ +/* $NetBSD: rump_vfs.c,v 1.39 2009/12/03 12:35:35 pooka Exp $ */ /* * Copyright (c) 2008 Antti Kantee. All Rights Reserved. @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rump_vfs.c,v 1.38 2009/12/01 09:56:59 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rump_vfs.c,v 1.39 2009/12/03 12:35:35 pooka Exp $"); #include <sys/param.h> #include <sys/buf.h> @@ -75,6 +75,7 @@ void rump_vfs_init(void) { + extern struct vfsops rumpfs_vfsops; char buf[64]; int error; int rv, i; @@ -105,30 +106,16 @@ rumpuser_biothread, rump_biodone, NULL, "rmpabio")) != 0) panic("syncer thread create failed: %d", rv); } -} - -void -rump_vfs_init2() -{ - extern struct vfsops rumpfs_vfsops; - int rv; rootfstype = ROOT_FSTYPE_ANY; - root_device = RUMP_VFSROOTDEV; + root_device = &rump_rootdev; /* bootstrap cwdi (rest done in vfs_mountroot() */ rw_init(&cwdi0.cwdi_lock); proc0.p_cwdi = &cwdi0; proc0.p_cwdi = cwdinit(); - /* - * XXX: make sure rumpfs is attached. The opposite can - * happen e.g. on Linux where the dynlinker doesn't work - * like we would want it to. - */ - if (!vfs_getopsbyname(MOUNT_RUMPFS)) - vfs_attach(&rumpfs_vfsops); - + vfs_attach(&rumpfs_vfsops); vfs_mountroot(); rump_proc_vfs_init = pvfs_init; Index: src/sys/rump/librump/rumpvfs/rump_vfs_private.h diff -u src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.8 src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.9 --- src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.8 Thu Nov 26 20:58:51 2009 +++ src/sys/rump/librump/rumpvfs/rump_vfs_private.h Thu Dec 3 12:35:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_vfs_private.h,v 1.8 2009/11/26 20:58:51 pooka Exp $ */ +/* $NetBSD: rump_vfs_private.h,v 1.9 2009/12/03 12:35:35 pooka Exp $ */ /* * Copyright (c) 2008 Antti Kantee. All Rights Reserved. @@ -31,7 +31,6 @@ #include <sys/types.h> void rump_vfs_init(void); -void rump_vfs_init2(void); void rump_vfs_fini(void); void rumpfs_init(void); Index: src/sys/rump/librump/rumpvfs/rumpfs.c diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.34 src/sys/rump/librump/rumpvfs/rumpfs.c:1.35 --- src/sys/rump/librump/rumpvfs/rumpfs.c:1.34 Mon Nov 30 12:32:13 2009 +++ src/sys/rump/librump/rumpvfs/rumpfs.c Thu Dec 3 12:35:35 2009 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpfs.c,v 1.34 2009/11/30 12:32:13 pooka Exp $ */ +/* $NetBSD: rumpfs.c,v 1.35 2009/12/03 12:35:35 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.34 2009/11/30 12:32:13 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.35 2009/12/03 12:35:35 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -900,19 +900,3 @@ return 0; } - -MODULE(MODULE_CLASS_VFS, rumpfs, NULL); - -static int -rumpfs_modcmd(modcmd_t cmd, void *arg) -{ - - switch (cmd) { - case MODULE_CMD_INIT: - return vfs_attach(&rumpfs_vfsops); - case MODULE_CMD_FINI: - return vfs_detach(&rumpfs_vfsops); - default: - return ENOTTY; - } -}