Module Name: src Committed By: pooka Date: Thu Mar 7 22:12:35 UTC 2013
Modified Files: src/sys/rump/librump/rumpkern: rump.c src/sys/rump/librump/rumpvfs: devnodes.c rump_vfs_private.h Log Message: 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. To generate a diff of this commit: cvs rdiff -u -r1.253 -r1.254 src/sys/rump/librump/rumpkern/rump.c cvs rdiff -u -r1.7 -r1.8 src/sys/rump/librump/rumpvfs/devnodes.c cvs rdiff -u -r1.16 -r1.17 src/sys/rump/librump/rumpvfs/rump_vfs_private.h 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/rump.c diff -u src/sys/rump/librump/rumpkern/rump.c:1.253 src/sys/rump/librump/rumpkern/rump.c:1.254 --- src/sys/rump/librump/rumpkern/rump.c:1.253 Thu Mar 7 18:33:27 2013 +++ src/sys/rump/librump/rumpkern/rump.c Thu Mar 7 22:12:34 2013 @@ -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 @@ static int rump_inited; 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;} Index: src/sys/rump/librump/rumpvfs/devnodes.c diff -u src/sys/rump/librump/rumpvfs/devnodes.c:1.7 src/sys/rump/librump/rumpvfs/devnodes.c:1.8 --- src/sys/rump/librump/rumpvfs/devnodes.c:1.7 Fri Sep 21 16:38:54 2012 +++ src/sys/rump/librump/rumpvfs/devnodes.c Thu Mar 7 22:12:34 2013 @@ -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 @@ __KERNEL_RCSID(0, "$NetBSD: devnodes.c,v #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 @@ rump_vfs_makeonedevnode(dev_t devtype, c 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 @@ rump_vfs_builddevs(struct devsw_conv *dc size_t i; int v1, v2; + rump_vfs_makeonedevnode = makeonedevnode; + rump_vfs_makedevnodes = makedevnodes; + for (i = 0; i < dcvecsize; i++) { dc = &dcvec[i]; Index: src/sys/rump/librump/rumpvfs/rump_vfs_private.h diff -u src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.16 src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.17 --- src/sys/rump/librump/rumpvfs/rump_vfs_private.h:1.16 Mon Jan 14 16:45:47 2013 +++ src/sys/rump/librump/rumpvfs/rump_vfs_private.h Thu Mar 7 22:12:34 2013 @@ -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 @@ int rumpblk_init(void); 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);