Source-Changes-HG archive

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

[src/trunk]: src/sys/ufs Make mfs_initminiroot() mandatory. Allows to remove...



details:   https://anonhg.NetBSD.org/src/rev/28cb061af9dd
branches:  trunk
changeset: 752629:28cb061af9dd
user:      pooka <pooka%NetBSD.org@localhost>
date:      Tue Mar 02 17:20:02 2010 +0000

description:
Make mfs_initminiroot() mandatory.  Allows to remove #ifdef MFS.

diffstat:

 sys/ufs/files.ufs          |   3 +-
 sys/ufs/mfs/mfs_extern.h   |   4 ++-
 sys/ufs/mfs/mfs_miniroot.c |  68 ++++++++++++++++++++++++++++++++++++++++++++++
 sys/ufs/mfs/mfs_vfsops.c   |  30 ++-----------------
 4 files changed, 77 insertions(+), 28 deletions(-)

diffs (167 lines):

diff -r 00da1b77ed8d -r 28cb061af9dd sys/ufs/files.ufs
--- a/sys/ufs/files.ufs Tue Mar 02 16:44:08 2010 +0000
+++ b/sys/ufs/files.ufs Tue Mar 02 17:20:02 2010 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: files.ufs,v 1.21 2010/03/02 16:43:48 pooka Exp $
+#      $NetBSD: files.ufs,v 1.22 2010/03/02 17:23:36 pooka Exp $
 
 deffs                                  FFS
 deffs                                  EXT2FS
@@ -50,6 +50,7 @@
 
 file   ufs/mfs/mfs_vfsops.c            mfs
 file   ufs/mfs/mfs_vnops.c             mfs
+file   ufs/mfs/mfs_miniroot.c
 
 file   ufs/ufs/ufs_bmap.c              ffs | lfs | mfs | ext2fs
 file   ufs/ufs/ufs_dirhash.c           (ffs | lfs | mfs | ext2fs) & ufs_dirhash
diff -r 00da1b77ed8d -r 28cb061af9dd sys/ufs/mfs/mfs_extern.h
--- a/sys/ufs/mfs/mfs_extern.h  Tue Mar 02 16:44:08 2010 +0000
+++ b/sys/ufs/mfs/mfs_extern.h  Tue Mar 02 17:20:02 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mfs_extern.h,v 1.30 2008/06/28 01:34:05 rumble Exp $   */
+/*     $NetBSD: mfs_extern.h,v 1.31 2010/03/02 17:20:02 pooka Exp $    */
 
 /*-
  * Copyright (c) 1991, 1993
@@ -69,6 +69,8 @@
 #include <sys/mutex.h>
 
 extern kmutex_t        mfs_lock;
+extern void *mfs_rootbase;
+extern u_long mfs_rootsize;
 
 #endif
 
diff -r 00da1b77ed8d -r 28cb061af9dd sys/ufs/mfs/mfs_miniroot.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/sys/ufs/mfs/mfs_miniroot.c        Tue Mar 02 17:20:02 2010 +0000
@@ -0,0 +1,68 @@
+/*     $NetBSD: mfs_miniroot.c,v 1.1 2010/03/02 17:20:02 pooka Exp $   */
+
+/*
+ * Copyright (c) 1989, 1990, 1993, 1994
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)mfs_vfsops.c        8.11 (Berkeley) 6/19/95
+ */
+
+#include <sys/cdefs.h>
+__KERNEL_RCSID(0, "$NetBSD: mfs_miniroot.c,v 1.1 2010/03/02 17:20:02 pooka Exp $");
+
+#include <sys/param.h>
+
+#include <ufs/mfs/mfs_extern.h>
+#include <ufs/ffs/fs.h>
+
+void * mfs_rootbase;   /* address of mini-root in kernel virtual memory */
+u_long mfs_rootsize;   /* size of mini-root in bytes */
+
+/*
+ * This is called early in boot to set the base address and size
+ * of the mini-root.
+ */
+int
+mfs_initminiroot(void *base)
+{
+       struct fs *fs = (struct fs *)((char *)base + SBLOCK_UFS1);
+       static bool inited = false;
+
+       if (inited)
+               panic("mfs_initminiroot() called more than once");
+       inited = true;
+
+       /* check for valid super block */
+       if (fs->fs_magic != FS_UFS1_MAGIC || fs->fs_bsize > MAXBSIZE ||
+           fs->fs_bsize < sizeof(struct fs))
+               return (0);
+       rootfstype = MOUNT_MFS;
+       mfs_rootbase = base;
+       mfs_rootsize = fs->fs_fsize * fs->fs_size;
+       rootdev = makedev(255, 0);
+       return (mfs_rootsize);
+}
diff -r 00da1b77ed8d -r 28cb061af9dd sys/ufs/mfs/mfs_vfsops.c
--- a/sys/ufs/mfs/mfs_vfsops.c  Tue Mar 02 16:44:08 2010 +0000
+++ b/sys/ufs/mfs/mfs_vfsops.c  Tue Mar 02 17:20:02 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: mfs_vfsops.c,v 1.101 2009/01/13 13:35:54 yamt Exp $    */
+/*     $NetBSD: mfs_vfsops.c,v 1.102 2010/03/02 17:20:02 pooka Exp $   */
 
 /*
  * Copyright (c) 1989, 1990, 1993, 1994
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mfs_vfsops.c,v 1.101 2009/01/13 13:35:54 yamt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mfs_vfsops.c,v 1.102 2010/03/02 17:20:02 pooka Exp $");
 
 #if defined(_KERNEL_OPT)
 #include "opt_compat_netbsd.h"
@@ -68,11 +68,10 @@
 
 MODULE(MODULE_CLASS_VFS, mfs, "ffs");
 
-void * mfs_rootbase;   /* address of mini-root in kernel virtual memory */
-u_long mfs_rootsize;   /* size of mini-root in bytes */
 kmutex_t mfs_lock;     /* global lock */
 
-static int mfs_minor;  /* used for building internal dev_t */
+/* used for building internal dev_t, minor == 0 reserved for miniroot */
+static int mfs_minor = 1;
 static int mfs_initcnt;
 
 extern int (**mfs_vnodeop_p)(void *);
@@ -241,27 +240,6 @@
 }
 
 /*
- * This is called early in boot to set the base address and size
- * of the mini-root.
- */
-int
-mfs_initminiroot(void *base)
-{
-       struct fs *fs = (struct fs *)((char *)base + SBLOCK_UFS1);
-
-       /* check for valid super block */
-       if (fs->fs_magic != FS_UFS1_MAGIC || fs->fs_bsize > MAXBSIZE ||
-           fs->fs_bsize < sizeof(struct fs))
-               return (0);
-       rootfstype = MOUNT_MFS;
-       mfs_rootbase = base;
-       mfs_rootsize = fs->fs_fsize * fs->fs_size;
-       rootdev = makedev(255, mfs_minor);
-       mfs_minor++;
-       return (mfs_rootsize);
-}
-
-/*
  * VFS Operations.
  *
  * mount system call



Home | Main Index | Thread Index | Old Index