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;
-	}
-}

Reply via email to