Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/rump/librump Make the device node creation routines func...



details:   https://anonhg.NetBSD.org/src/rev/923e1ea0f71e
branches:  trunk
changeset: 785310:923e1ea0f71e
user:      pooka <pooka%NetBSD.org@localhost>
date:      Thu Mar 07 22:12:34 2013 +0000

description:
Make the device node creation routines function pointers which default
to nullop without VFS.  This relaxes the dependency between VFS and many
components, some of which can be used perfectly fine without VFS.

diffstat:

 sys/rump/librump/rumpkern/rump.c            |   8 ++++++--
 sys/rump/librump/rumpvfs/devnodes.c         |  15 +++++++++------
 sys/rump/librump/rumpvfs/rump_vfs_private.h |   9 +++++----
 3 files changed, 20 insertions(+), 12 deletions(-)

diffs (104 lines):

diff -r b099c8b38a5f -r 923e1ea0f71e sys/rump/librump/rumpkern/rump.c
--- a/sys/rump/librump/rumpkern/rump.c  Thu Mar 07 21:54:04 2013 +0000
+++ b/sys/rump/librump/rumpkern/rump.c  Thu Mar 07 22:12:34 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rump.c,v 1.253 2013/03/07 18:33:27 pooka Exp $ */
+/*     $NetBSD: rump.c,v 1.254 2013/03/07 22:12:34 pooka Exp $ */
 
 /*
  * Copyright (c) 2007-2011 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.253 2013/03/07 18:33:27 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rump.c,v 1.254 2013/03/07 22:12:34 pooka Exp $");
 
 #include <sys/systm.h>
 #define ELFSIZE ARCH_ELFSIZE
@@ -128,6 +128,10 @@
 
 void (*rump_vfs_drainbufs)(int);
 void (*rump_vfs_fini)(void);
+int  (*rump_vfs_makeonedevnode)(dev_t, const char *,
+                               devmajor_t, devminor_t) = (void *)nullop;
+int  (*rump_vfs_makedevnodes)(dev_t, const char *, char,
+                             devmajor_t, devminor_t, int) = (void *)nullop;
 
 int rump__unavailable(void);
 int rump__unavailable() {return EOPNOTSUPP;}
diff -r b099c8b38a5f -r 923e1ea0f71e sys/rump/librump/rumpvfs/devnodes.c
--- a/sys/rump/librump/rumpvfs/devnodes.c       Thu Mar 07 21:54:04 2013 +0000
+++ b/sys/rump/librump/rumpvfs/devnodes.c       Thu Mar 07 22:12:34 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: devnodes.c,v 1.7 2012/09/21 16:38:54 joerg Exp $       */
+/*     $NetBSD: devnodes.c,v 1.8 2013/03/07 22:12:34 pooka Exp $       */
 
 /*
  * Copyright (c) 2009 Antti Kantee.  All Rights Reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: devnodes.c,v 1.7 2012/09/21 16:38:54 joerg Exp $");
+__KERNEL_RCSID(0, "$NetBSD: devnodes.c,v 1.8 2013/03/07 22:12:34 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -40,8 +40,8 @@
 #include "rump_vfs_private.h"
 
 /* realqvik(tm) "devfs" */
-int
-rump_vfs_makeonedevnode(dev_t devtype, const char *devname,
+static int
+makeonedevnode(dev_t devtype, const char *devname,
        devmajor_t majnum, devminor_t minnum)
 {
        register_t retval;
@@ -55,8 +55,8 @@
        return 0;
 }
 
-int
-rump_vfs_makedevnodes(dev_t devtype, const char *basename, char minchar,
+static int
+makedevnodes(dev_t devtype, const char *basename, char minchar,
        devmajor_t maj, devminor_t minnum, int nnodes)
 {
        int error = 0;
@@ -175,6 +175,9 @@
        size_t i;
        int v1, v2;
 
+       rump_vfs_makeonedevnode = makeonedevnode;
+       rump_vfs_makedevnodes = makedevnodes;
+
        for (i = 0; i < dcvecsize; i++) {
                dc = &dcvec[i];
 
diff -r b099c8b38a5f -r 923e1ea0f71e sys/rump/librump/rumpvfs/rump_vfs_private.h
--- a/sys/rump/librump/rumpvfs/rump_vfs_private.h       Thu Mar 07 21:54:04 2013 +0000
+++ b/sys/rump/librump/rumpvfs/rump_vfs_private.h       Thu Mar 07 22:12:34 2013 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: rump_vfs_private.h,v 1.16 2013/01/14 16:45:47 pooka Exp $      */
+/*     $NetBSD: rump_vfs_private.h,v 1.17 2013/03/07 22:12:34 pooka Exp $      */
 
 /*
  * Copyright (c) 2008 Antti Kantee.  All Rights Reserved.
@@ -43,11 +43,12 @@
 
 void   rump_biodone(void *, size_t, int);
 
-int     rump_vfs_makeonedevnode(dev_t, const char *, devmajor_t, devminor_t);
-int     rump_vfs_makedevnodes(dev_t, const char *, char,
-                             devmajor_t, devminor_t, int);
 void   rump_vfs_builddevs(struct devsw_conv *, size_t numelem);
 
+extern int     (*rump_vfs_makeonedevnode)(dev_t, const char *,
+                                          devmajor_t, devminor_t);
+extern int     (*rump_vfs_makedevnodes)(dev_t, const char *, char,
+                                        devmajor_t, devminor_t, int);
 extern void    (*rump_vfs_drainbufs)(int);
 extern void    (*rump_vfs_fini)(void);
 



Home | Main Index | Thread Index | Old Index