Module Name:    src
Committed By:   pooka
Date:           Mon Mar  1 13:12:21 UTC 2010

Modified Files:
        src/sys/rump: ldscript.rump
        src/sys/rump/dev/lib: Makefile.inc
        src/sys/rump/dev/lib/libbpf: component.c
        src/sys/rump/dev/lib/libcgd: component.c
        src/sys/rump/dev/lib/libdm: component.c
        src/sys/rump/dev/lib/libnetsmb: component.c
        src/sys/rump/dev/lib/libraidframe: component.c
        src/sys/rump/dev/lib/librnd: component.c
        src/sys/rump/dev/lib/libsysmon: component.c
        src/sys/rump/dev/lib/libucom: ucom_at_usb.c
        src/sys/rump/dev/lib/libulpt: ulpt_at_usb.c
        src/sys/rump/dev/lib/libumass: sd_at_scsibus_at_umass.c
        src/sys/rump/dev/lib/libwscons: component.c
        src/sys/rump/include/rump: rumpuser.h
        src/sys/rump/librump/rumpdev: rump_dev.c rump_dev_private.h
        src/sys/rump/librump/rumpkern: rump.c rump_private.h
        src/sys/rump/librump/rumpnet: rump_net.c rump_net_private.h
        src/sys/rump/net/lib: Makefile.inc
        src/sys/rump/net/lib/liblocal: component.c
        src/sys/rump/net/lib/libnet: component.c
        src/sys/rump/net/lib/libnetinet: component.c
        src/sys/rump/net/lib/libsockin: component.c
        src/sys/rump/net/lib/libvirtif: component.c

Log Message:
Introduce RUMP_COMPONENT.  It behaves mostly like a simplified
module which is linked into the kernel and cannot be unloaded.
The main purpose is to get the proper constructors run and create
any /dev nodes necessary for said component.  Once more of the
kernel (e.g. networking stack and device drivers) are converted to
MODULE and devfs pops up from somewhere, rump components can be
retired.


To generate a diff of this commit:
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/ldscript.rump
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/Makefile.inc
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/libbpf/component.c
cvs rdiff -u -r1.5 -r1.6 src/sys/rump/dev/lib/libcgd/component.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libdm/component.c
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/dev/lib/libnetsmb/component.c
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/dev/lib/libraidframe/component.c
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/librnd/component.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libsysmon/component.c
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/dev/lib/libucom/ucom_at_usb.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c
cvs rdiff -u -r1.1 -r1.2 \
    src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/dev/lib/libwscons/component.c
cvs rdiff -u -r1.36 -r1.37 src/sys/rump/include/rump/rumpuser.h
cvs rdiff -u -r1.14 -r1.15 src/sys/rump/librump/rumpdev/rump_dev.c
cvs rdiff -u -r1.9 -r1.10 src/sys/rump/librump/rumpdev/rump_dev_private.h
cvs rdiff -u -r1.153 -r1.154 src/sys/rump/librump/rumpkern/rump.c
cvs rdiff -u -r1.42 -r1.43 src/sys/rump/librump/rumpkern/rump_private.h
cvs rdiff -u -r1.11 -r1.12 src/sys/rump/librump/rumpnet/rump_net.c
cvs rdiff -u -r1.4 -r1.5 src/sys/rump/librump/rumpnet/rump_net_private.h
cvs rdiff -u -r1.3 -r1.4 src/sys/rump/net/lib/Makefile.inc
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/net/lib/liblocal/component.c
cvs rdiff -u -r1.2 -r1.3 src/sys/rump/net/lib/libnet/component.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/net/lib/libnetinet/component.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/net/lib/libsockin/component.c
cvs rdiff -u -r1.1 -r1.2 src/sys/rump/net/lib/libvirtif/component.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/ldscript.rump
diff -u src/sys/rump/ldscript.rump:1.1 src/sys/rump/ldscript.rump:1.2
--- src/sys/rump/ldscript.rump:1.1	Sat Dec 12 17:10:19 2009
+++ src/sys/rump/ldscript.rump	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ldscript.rump,v 1.1 2009/12/12 17:10:19 pooka Exp $	*/
+/*	$NetBSD: ldscript.rump,v 1.2 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * From binutils 2.19 onwards (in NetBSD) binutils ld PROVIDEs
@@ -24,5 +24,12 @@
 		*(link_set_domains);
 		__stop_link_set_domains = .;
 	}
+
+	link_set_rump_components :
+	{
+		__start_link_set_rump_components = .;
+		*(link_set_rump_components);
+		__stop_link_set_rump_components = .;
+	}
 }
 INSERT AFTER .data;

Index: src/sys/rump/dev/lib/Makefile.inc
diff -u src/sys/rump/dev/lib/Makefile.inc:1.2 src/sys/rump/dev/lib/Makefile.inc:1.3
--- src/sys/rump/dev/lib/Makefile.inc:1.2	Fri Sep  4 17:21:34 2009
+++ src/sys/rump/dev/lib/Makefile.inc	Mon Mar  1 13:12:19 2010
@@ -1,7 +1,8 @@
-#	$NetBSD: Makefile.inc,v 1.2 2009/09/04 17:21:34 pooka Exp $
+#	$NetBSD: Makefile.inc,v 1.3 2010/03/01 13:12:19 pooka Exp $
 #
 
 RUMPTOP=	${.CURDIR}/../../..
-CPPFLAGS+=	-I${RUMPTOP}/librump/rumpdev -I${RUMPTOP}/librump/rumpdev/opt
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpkern -I${RUMPTOP}/librump/rumpdev \
+		-I${RUMPTOP}/librump/rumpdev/opt
 
 .include "${RUMPTOP}/Makefile.rump"

Index: src/sys/rump/dev/lib/libbpf/component.c
diff -u src/sys/rump/dev/lib/libbpf/component.c:1.2 src/sys/rump/dev/lib/libbpf/component.c:1.3
--- src/sys/rump/dev/lib/libbpf/component.c:1.2	Tue Jan 26 17:50:02 2010
+++ src/sys/rump/dev/lib/libbpf/component.c	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.2 2010/01/26 17:50:02 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.3 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/01/26 17:50:02 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.3 2010/03/01 13:12:19 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -36,11 +36,10 @@
 
 #include <net/bpf.h>
 
-#include "rump_dev_private.h"
+#include "rump_private.h"
 #include "rump_vfs_private.h"
 
-void
-rump_dev_bpf_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
         extern const struct cdevsw bpf_cdevsw;
 	devmajor_t bmaj, cmaj;

Index: src/sys/rump/dev/lib/libcgd/component.c
diff -u src/sys/rump/dev/lib/libcgd/component.c:1.5 src/sys/rump/dev/lib/libcgd/component.c:1.6
--- src/sys/rump/dev/lib/libcgd/component.c:1.5	Wed Jan 13 00:31:57 2010
+++ src/sys/rump/dev/lib/libcgd/component.c	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.5 2010/01/13 00:31:57 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.6 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,18 +26,17 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.5 2010/01/13 00:31:57 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.6 2010/03/01 13:12:19 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
 #include <sys/device.h>
 #include <sys/stat.h>
 
-#include "rump_dev_private.h"
+#include "rump_private.h"
 #include "rump_vfs_private.h"
 
-void
-rump_dev_cgd_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct bdevsw cgd_bdevsw;
 	extern const struct cdevsw cgd_cdevsw;

Index: src/sys/rump/dev/lib/libdm/component.c
diff -u src/sys/rump/dev/lib/libdm/component.c:1.1 src/sys/rump/dev/lib/libdm/component.c:1.2
--- src/sys/rump/dev/lib/libdm/component.c:1.1	Fri Dec  4 22:13:59 2009
+++ src/sys/rump/dev/lib/libdm/component.c	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2009/12/04 22:13:59 haad Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/12/04 22:13:59 haad Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:19 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -36,14 +36,13 @@
 
 #include <sys/vfs_syscalls.h>
 
-
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
 void dmattach(int);
 
-void
-rump_dev_dm_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct bdevsw dm_bdevsw;
 	extern const struct cdevsw dm_cdevsw;

Index: src/sys/rump/dev/lib/libnetsmb/component.c
diff -u src/sys/rump/dev/lib/libnetsmb/component.c:1.3 src/sys/rump/dev/lib/libnetsmb/component.c:1.4
--- src/sys/rump/dev/lib/libnetsmb/component.c:1.3	Thu Dec  3 15:06:04 2009
+++ src/sys/rump/dev/lib/libnetsmb/component.c	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.3 2009/12/03 15:06:04 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.4 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,20 +28,20 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.3 2009/12/03 15:06:04 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.4 2010/03/01 13:12:19 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
 #include <sys/device.h>
 #include <sys/stat.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
 void nsmbattach(int); /* XXX */
 
-void
-rump_dev_netsmb_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct cdevsw nsmb_cdevsw;
 	devmajor_t bmaj, cmaj;

Index: src/sys/rump/dev/lib/libraidframe/component.c
diff -u src/sys/rump/dev/lib/libraidframe/component.c:1.4 src/sys/rump/dev/lib/libraidframe/component.c:1.5
--- src/sys/rump/dev/lib/libraidframe/component.c:1.4	Thu Dec  3 15:06:04 2009
+++ src/sys/rump/dev/lib/libraidframe/component.c	Mon Mar  1 13:12:19 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.5 2010/03/01 13:12:19 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,13 +26,14 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.4 2009/12/03 15:06:04 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.5 2010/03/01 13:12:19 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
 #include <sys/device.h>
 #include <sys/stat.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
@@ -40,8 +41,7 @@
 
 void raidattach(int);
 
-void
-rump_dev_raidframe_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct bdevsw raid_bdevsw;
 	extern const struct cdevsw raid_cdevsw;

Index: src/sys/rump/dev/lib/librnd/component.c
diff -u src/sys/rump/dev/lib/librnd/component.c:1.2 src/sys/rump/dev/lib/librnd/component.c:1.3
--- src/sys/rump/dev/lib/librnd/component.c:1.2	Thu Dec  3 15:06:04 2009
+++ src/sys/rump/dev/lib/librnd/component.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.2 2009/12/03 15:06:04 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.3 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2009/12/03 15:06:04 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.3 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -34,13 +34,13 @@
 #include <sys/rnd.h>
 #include <sys/stat.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
 void rndattach(int);
 
-void
-rump_dev_rnd_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct cdevsw rnd_cdevsw;
 	devmajor_t bmaj, cmaj;

Index: src/sys/rump/dev/lib/libsysmon/component.c
diff -u src/sys/rump/dev/lib/libsysmon/component.c:1.1 src/sys/rump/dev/lib/libsysmon/component.c:1.2
--- src/sys/rump/dev/lib/libsysmon/component.c:1.1	Sun Jan 31 03:06:59 2010
+++ src/sys/rump/dev/lib/libsysmon/component.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2010/01/31 03:06:59 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2010 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2010/01/31 03:06:59 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -36,13 +36,13 @@
 #include <dev/sysmon/sysmon_taskq.h>
 #include <dev/sysmon/sysmonvar.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
 void swwdogattach(int);
 
-void
-rump_dev_sysmon_init()
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern const struct cdevsw sysmon_cdevsw;
 	devmajor_t bmaj, cmaj;

Index: src/sys/rump/dev/lib/libucom/ucom_at_usb.c
diff -u src/sys/rump/dev/lib/libucom/ucom_at_usb.c:1.2 src/sys/rump/dev/lib/libucom/ucom_at_usb.c:1.3
--- src/sys/rump/dev/lib/libucom/ucom_at_usb.c:1.2	Mon Mar  1 11:34:27 2010
+++ src/sys/rump/dev/lib/libucom/ucom_at_usb.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ucom_at_usb.c,v 1.2 2010/03/01 11:34:27 pooka Exp $	*/
+/*	$NetBSD: ucom_at_usb.c,v 1.3 2010/03/01 13:12:20 pooka Exp $	*/
 
 #include <sys/param.h>
 #include <sys/types.h>
@@ -9,6 +9,7 @@
 
 #include "ioconf.c"
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
@@ -21,8 +22,7 @@
 
 void tty_init(void);
 
-void
-rump_device_configuration(void)
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern struct cdevsw ucom_cdevsw;
 	devmajor_t cmaj, bmaj;

Index: src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c
diff -u src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c:1.1 src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c:1.2
--- src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c:1.1	Thu Feb 11 02:22:09 2010
+++ src/sys/rump/dev/lib/libulpt/ulpt_at_usb.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: ulpt_at_usb.c,v 1.1 2010/02/11 02:22:09 pooka Exp $	*/
+/*	$NetBSD: ulpt_at_usb.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * MACHINE GENERATED: DO NOT EDIT
@@ -381,6 +381,7 @@
     { NULL,		NULL,		 0, 0,    NULL,      0, NULL }
 };
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
@@ -391,8 +392,7 @@
 		panic("\"%s\" failed", #call);				\
 } while (/*CONSTCOND*/0)
 
-void
-rump_device_configuration(void)
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern struct cfattach usb_ca, uhub_ca, uroothub_ca, ulpt_ca;
 	extern struct cdevsw ulpt_cdevsw;

Index: src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c
diff -u src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c:1.1 src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c:1.2
--- src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c:1.1	Thu Feb 11 02:22:09 2010
+++ src/sys/rump/dev/lib/libumass/sd_at_scsibus_at_umass.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: sd_at_scsibus_at_umass.c,v 1.1 2010/02/11 02:22:09 pooka Exp $	*/
+/*	$NetBSD: sd_at_scsibus_at_umass.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
 
 #include <sys/param.h>
 #include <sys/conf.h>
@@ -8,6 +8,7 @@
 
 #include "ioconf.c"
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
@@ -18,8 +19,7 @@
 		panic("\"%s\" failed", #call);				\
 } while (/*CONSTCOND*/0)
 
-void
-rump_device_configuration(void)
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern struct cfattach ugenhc_ca;
 	extern struct cfattach usb_ca, uhub_ca, uroothub_ca, umass_ca;

Index: src/sys/rump/dev/lib/libwscons/component.c
diff -u src/sys/rump/dev/lib/libwscons/component.c:1.1 src/sys/rump/dev/lib/libwscons/component.c:1.2
--- src/sys/rump/dev/lib/libwscons/component.c:1.1	Thu Feb 11 02:22:10 2010
+++ src/sys/rump/dev/lib/libwscons/component.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2010/02/11 02:22:10 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * MACHINE GENERATED: DO NOT EDIT
@@ -421,6 +421,7 @@
 
 #include <sys/stat.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 #include "rump_vfs_private.h"
 
@@ -431,8 +432,7 @@
 		panic("\"%s\" failed", #call);				\
 } while (/*CONSTCOND*/0)
 
-void
-rump_wscons_configuration(void)
+RUMP_COMPONENT(RUMP_COMPONENT_DEV)
 {
 	extern struct cfattach wskbd_ca, wsmouse_ca;
 	extern struct cdevsw wskbd_cdevsw, wsmouse_cdevsw;

Index: src/sys/rump/include/rump/rumpuser.h
diff -u src/sys/rump/include/rump/rumpuser.h:1.36 src/sys/rump/include/rump/rumpuser.h:1.37
--- src/sys/rump/include/rump/rumpuser.h:1.36	Fri Feb 26 15:23:20 2010
+++ src/sys/rump/include/rump/rumpuser.h	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rumpuser.h,v 1.36 2010/02/26 15:23:20 pooka Exp $	*/
+/*	$NetBSD: rumpuser.h,v 1.37 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007 Antti Kantee.  All Rights Reserved.
@@ -198,8 +198,11 @@
 #endif
 
 struct modinfo;
+struct rump_component;
 typedef int (*rump_modinit_fn)(struct modinfo *, prop_dictionary_t);
 typedef int (*rump_symload_fn)(void *, uint64_t, char *, uint64_t);
+typedef void (*rump_component_init_fn)(struct rump_component *, int);
 void rumpuser_dl_bootstrap(rump_modinit_fn, rump_symload_fn);
+void rumpuser_dl_component_init(int, rump_component_init_fn);
 
 #endif /* _RUMP_RUMPUSER_H_ */

Index: src/sys/rump/librump/rumpdev/rump_dev.c
diff -u src/sys/rump/librump/rumpdev/rump_dev.c:1.14 src/sys/rump/librump/rumpdev/rump_dev.c:1.15
--- src/sys/rump/librump/rumpdev/rump_dev.c:1.14	Wed Feb  3 21:35:22 2010
+++ src/sys/rump/librump/rumpdev/rump_dev.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_dev.c,v 1.14 2010/02/03 21:35:22 pooka Exp $	*/
+/*	$NetBSD: rump_dev.c,v 1.15 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,25 +26,17 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump_dev.c,v 1.14 2010/02/03 21:35:22 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump_dev.c,v 1.15 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
 
+#include "rump_private.h"
 #include "rump_dev_private.h"
 
 void nocomponent(void);
 void nocomponent() {}
-__weak_alias(rump_dev_bpf_init,nocomponent);
-__weak_alias(rump_dev_cgd_init,nocomponent);
-__weak_alias(rump_dev_dm_init,nocomponent);
-__weak_alias(rump_dev_raidframe_init,nocomponent);
-__weak_alias(rump_dev_netsmb_init,nocomponent);
-__weak_alias(rump_dev_rnd_init,nocomponent);
-__weak_alias(rump_dev_sysmon_init,nocomponent);
-
-__weak_alias(rump_device_configuration,nocomponent);
-__weak_alias(rump_wscons_configuration,nocomponent);
+__weak_alias(rump_device_components,nocomponent);
 
 const char *rootspec = "rump0a"; /* usually comes from config */
 
@@ -59,21 +51,13 @@
 
 	config_init_mi();
 
-	rump_dev_bpf_init();
-	rump_dev_cgd_init();
-	rump_dev_dm_init();
-	rump_dev_raidframe_init();
-	rump_dev_netsmb_init();
-	rump_dev_rnd_init();
-	rump_dev_sysmon_init();
+	rump_component_init(RUMP_COMPONENT_DEV);
+	rump_device_components();
 
 	rump_pdev_finalize();
 
-	rump_device_configuration();
-	rump_wscons_configuration();
-
 	cold = 0;
-	if (rump_device_configuration != nocomponent) {
+	if (rump_component_count(RUMP_COMPONENT_DEV) > 0) {
 		if (config_rootfound("mainbus", NULL) == NULL)
 			panic("no mainbus");
 

Index: src/sys/rump/librump/rumpdev/rump_dev_private.h
diff -u src/sys/rump/librump/rumpdev/rump_dev_private.h:1.9 src/sys/rump/librump/rumpdev/rump_dev_private.h:1.10
--- src/sys/rump/librump/rumpdev/rump_dev_private.h:1.9	Sun Jan 31 03:07:00 2010
+++ src/sys/rump/librump/rumpdev/rump_dev_private.h	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_dev_private.h,v 1.9 2010/01/31 03:07:00 pooka Exp $	*/
+/*	$NetBSD: rump_dev_private.h,v 1.10 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -30,21 +30,11 @@
 
 void	rump_dev_init(void);
 
+void	rump_device_components(void);
+
 void	rump_pdev_add(void (*fn)(int), int);
 void	rump_pdev_finalize(void);
 
-void 	rump_dev_bpf_init(void);
-void 	rump_dev_cgd_init(void);
-void 	rump_dev_dm_init(void);
-void 	rump_dev_raidframe_init(void);
-void 	rump_dev_netsmb_init(void);
-void 	rump_dev_rnd_init(void);
-void	rump_dev_rumpusbhc_init(void);
-void	rump_dev_sysmon_init(void);
-
-void	rump_device_configuration(void);
-void	rump_wscons_configuration(void);
-
 struct mainbus_attach_args {
 	int maa_unit;
 };

Index: src/sys/rump/librump/rumpkern/rump.c
diff -u src/sys/rump/librump/rumpkern/rump.c:1.153 src/sys/rump/librump/rumpkern/rump.c:1.154
--- src/sys/rump/librump/rumpkern/rump.c:1.153	Fri Feb 26 15:23:20 2010
+++ src/sys/rump/librump/rumpkern/rump.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump.c,v 1.153 2010/02/26 15:23:20 pooka Exp $	*/
+/*	$NetBSD: rump.c,v 1.154 2010/03/01 13:12:20 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.153 2010/02/26 15:23:20 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.154 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/atomic.h>
@@ -584,6 +584,34 @@
 	return retid;
 }
 
+static int compcounter[RUMP_COMPONENT_MAX];
+
+static void
+rump_component_init_cb(struct rump_component *rc, int type)
+{
+
+	KASSERT(type < RUMP_COMPONENT_MAX);
+	if (rc->rc_type == type) {
+		rc->rc_init();
+		compcounter[type]++;
+	}
+}
+
+int
+rump_component_count(enum rump_component_type type)
+{
+
+	KASSERT(type <= RUMP_COMPONENT_MAX);
+	return compcounter[type];
+}
+
+void
+rump_component_init(enum rump_component_type type)
+{
+
+	rumpuser_dl_component_init(type, rump_component_init_cb);
+}
+
 #define ERROUT(err) do { rv = err; goto out; } while (/*CONSTCOND*/0)
 int
 rump_module_init(struct modinfo *mi, prop_dictionary_t props)

Index: src/sys/rump/librump/rumpkern/rump_private.h
diff -u src/sys/rump/librump/rumpkern/rump_private.h:1.42 src/sys/rump/librump/rumpkern/rump_private.h:1.43
--- src/sys/rump/librump/rumpkern/rump_private.h:1.42	Sat Dec  5 13:01:31 2009
+++ src/sys/rump/librump/rumpkern/rump_private.h	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_private.h,v 1.42 2009/12/05 13:01:31 pooka Exp $	*/
+/*	$NetBSD: rump_private.h,v 1.43 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2007 Antti Kantee.  All Rights Reserved.
@@ -59,6 +59,28 @@
 
 extern struct sysent rump_sysent[];
 
+enum rump_component_type {
+	RUMP_COMPONENT_DEV,
+	RUMP_COMPONENT_NET, RUMP_COMPONENT_NET_ROUTE, RUMP_COMPONENT_NET_IF,
+	RUMP_COMPONENT_VFS,
+	RUMP_COMPONENT_MAX,
+};
+struct rump_component {
+	enum rump_component_type rc_type;
+	void (*rc_init)(void);
+};
+#define RUMP_COMPONENT(type)				\
+static void rumpcompinit(void);				\
+static const struct rump_component rumpcomp = {		\
+	.rc_type = type,				\
+	.rc_init = rumpcompinit,			\
+};							\
+__link_set_add_rodata(rump_components, rumpcomp);	\
+static void rumpcompinit(void)
+
+void		rump_component_init(enum rump_component_type);
+int		rump_component_count(enum rump_component_type);
+
 void		rumpvm_init(void);
 struct vm_page	*rumpvm_makepage(struct uvm_object *, voff_t);
 

Index: src/sys/rump/librump/rumpnet/rump_net.c
diff -u src/sys/rump/librump/rumpnet/rump_net.c:1.11 src/sys/rump/librump/rumpnet/rump_net.c:1.12
--- src/sys/rump/librump/rumpnet/rump_net.c:1.11	Tue Jan 19 22:08:18 2010
+++ src/sys/rump/librump/rumpnet/rump_net.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_net.c,v 1.11 2010/01/19 22:08:18 pooka Exp $	*/
+/*	$NetBSD: rump_net.c,v 1.12 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump_net.c,v 1.11 2010/01/19 22:08:18 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump_net.c,v 1.12 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 
@@ -38,15 +38,12 @@
 #include <net/radix.h>
 #include <net/route.h>
 
+#include "rump_private.h"
 #include "rump_net_private.h"
 
 void nocomponent(void);
 void nocomponent() {}
-__weak_alias(rump_net_net_init,nocomponent);
-__weak_alias(rump_net_inet_init,nocomponent);
-__weak_alias(rump_net_local_init,nocomponent);
-__weak_alias(rump_net_sockin_init,nocomponent);
-__weak_alias(rump_net_virtif_init,nocomponent);
+__weak_alias(rump_net_components,nocomponent);
 
 void
 rump_net_init(void)
@@ -58,17 +55,11 @@
 	soinit();
 
 	domaininit(false);
-	/*
-	 * Add rest of the domains we failed to add in domaininit()
-	 * due to linkset lossage.
-	 */
-	rump_net_inet_init();
-	rump_net_local_init();
-	rump_net_sockin_init();
-	/* Note: should be last _domain_ due to calling of rn_init() */
-	rump_net_net_init();
 
-	rump_net_virtif_init();
+	rump_component_init(RUMP_COMPONENT_NET);
+	rump_component_init(RUMP_COMPONENT_NET_ROUTE);
+	rump_component_init(RUMP_COMPONENT_NET_IF);
+	rump_net_components();
 
 	rump_netisr_init();
 }

Index: src/sys/rump/librump/rumpnet/rump_net_private.h
diff -u src/sys/rump/librump/rumpnet/rump_net_private.h:1.4 src/sys/rump/librump/rumpnet/rump_net_private.h:1.5
--- src/sys/rump/librump/rumpnet/rump_net_private.h:1.4	Wed Oct 14 17:29:20 2009
+++ src/sys/rump/librump/rumpnet/rump_net_private.h	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: rump_net_private.h,v 1.4 2009/10/14 17:29:20 pooka Exp $	*/
+/*	$NetBSD: rump_net_private.h,v 1.5 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -38,11 +38,7 @@
         }								\
 } while (/*CONSTCOND*/0)
 
-void 		rump_net_net_init(void);
-void 		rump_net_inet_init(void);
-void 		rump_net_local_init(void);
-void 		rump_net_sockin_init(void);
-void 		rump_net_virtif_init(void);
+void		rump_net_components(void);
 
 void		rump_dummyif_create(void);
 

Index: src/sys/rump/net/lib/Makefile.inc
diff -u src/sys/rump/net/lib/Makefile.inc:1.3 src/sys/rump/net/lib/Makefile.inc:1.4
--- src/sys/rump/net/lib/Makefile.inc:1.3	Wed May 27 23:41:20 2009
+++ src/sys/rump/net/lib/Makefile.inc	Mon Mar  1 13:12:20 2010
@@ -1,7 +1,8 @@
-#	$NetBSD: Makefile.inc,v 1.3 2009/05/27 23:41:20 pooka Exp $
+#	$NetBSD: Makefile.inc,v 1.4 2010/03/01 13:12:20 pooka Exp $
 #
 
 RUMPTOP=	${.CURDIR}/../../..
-CPPFLAGS+=	-I${RUMPTOP}/librump/rumpnet -I${RUMPTOP}/librump/rumpnet/opt
+CPPFLAGS+=	-I${RUMPTOP}/librump/rumpkern -I${RUMPTOP}/librump/rumpnet \
+		-I${RUMPTOP}/librump/rumpnet/opt
 
 .include "${RUMPTOP}/Makefile.rump"

Index: src/sys/rump/net/lib/liblocal/component.c
diff -u src/sys/rump/net/lib/liblocal/component.c:1.1 src/sys/rump/net/lib/liblocal/component.c:1.2
--- src/sys/rump/net/lib/liblocal/component.c:1.1	Thu May 28 00:02:16 2009
+++ src/sys/rump/net/lib/liblocal/component.c	Mon Mar  1 13:12:20 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:20 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,18 +28,16 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:20 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/domain.h>
 #include <sys/protosw.h>
 
-#include <net/route.h>
-
+#include "rump_private.h"
 #include "rump_net_private.h"
 
-void
-rump_net_local_init()
+RUMP_COMPONENT(RUMP_COMPONENT_NET)
 {
 	extern struct domain unixdomain;
 

Index: src/sys/rump/net/lib/libnet/component.c
diff -u src/sys/rump/net/lib/libnet/component.c:1.2 src/sys/rump/net/lib/libnet/component.c:1.3
--- src/sys/rump/net/lib/libnet/component.c:1.2	Wed Sep 16 15:08:53 2009
+++ src/sys/rump/net/lib/libnet/component.c	Mon Mar  1 13:12:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.2 2009/09/16 15:08:53 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.3 2010/03/01 13:12:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2009/09/16 15:08:53 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.3 2010/03/01 13:12:21 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/domain.h>
@@ -37,10 +37,10 @@
 #include <net/if.h>
 #include <net/route.h>
 
+#include "rump_private.h"
 #include "rump_net_private.h"
 
-void
-rump_net_net_init()
+RUMP_COMPONENT(RUMP_COMPONENT_NET_ROUTE)
 {
 	extern struct domain routedomain;
 

Index: src/sys/rump/net/lib/libnetinet/component.c
diff -u src/sys/rump/net/lib/libnetinet/component.c:1.1 src/sys/rump/net/lib/libnetinet/component.c:1.2
--- src/sys/rump/net/lib/libnetinet/component.c:1.1	Thu May 28 00:02:16 2009
+++ src/sys/rump/net/lib/libnetinet/component.c	Mon Mar  1 13:12:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,18 +28,16 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/domain.h>
 #include <sys/protosw.h>
 
-#include <net/route.h>
-
+#include "rump_private.h"
 #include "rump_net_private.h"
 
-void
-rump_net_inet_init()
+RUMP_COMPONENT(RUMP_COMPONENT_NET)
 {
 	extern struct domain arpdomain, inetdomain, inet6domain;
 

Index: src/sys/rump/net/lib/libsockin/component.c
diff -u src/sys/rump/net/lib/libsockin/component.c:1.1 src/sys/rump/net/lib/libsockin/component.c:1.2
--- src/sys/rump/net/lib/libsockin/component.c:1.1	Thu May 28 00:02:16 2009
+++ src/sys/rump/net/lib/libsockin/component.c	Mon Mar  1 13:12:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,18 +28,16 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/05/28 00:02:16 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/domain.h>
 #include <sys/protosw.h>
 
-#include <net/route.h>
-
+#include "rump_private.h"
 #include "rump_net_private.h"
 
-void
-rump_net_sockin_init()
+RUMP_COMPONENT(RUMP_COMPONENT_NET)
 {
 	extern struct domain sockindomain;
 

Index: src/sys/rump/net/lib/libvirtif/component.c
diff -u src/sys/rump/net/lib/libvirtif/component.c:1.1 src/sys/rump/net/lib/libvirtif/component.c:1.2
--- src/sys/rump/net/lib/libvirtif/component.c:1.1	Thu May 28 00:02:17 2009
+++ src/sys/rump/net/lib/libvirtif/component.c	Mon Mar  1 13:12:21 2010
@@ -1,4 +1,4 @@
-/*	$NetBSD: component.c,v 1.1 2009/05/28 00:02:17 pooka Exp $	*/
+/*	$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $	*/
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -28,18 +28,16 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.1 2009/05/28 00:02:17 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: component.c,v 1.2 2010/03/01 13:12:21 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/domain.h>
 #include <sys/protosw.h>
 
-#include <net/route.h>
-
+#include "rump_private.h"
 #include "rump_net_private.h"
 
-void
-rump_net_virtif_init()
+RUMP_COMPONENT(RUMP_COMPONENT_NET_IF)
 {
 
 	rump_dummyif_create();

Reply via email to