summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>1995-11-28 03:15:58 +0000
committerpeter <peter@FreeBSD.org>1995-11-28 03:15:58 +0000
commit26bbc85eeec15390ed60e812b369a94e5cccefeb (patch)
tree2929374e3d1b0372e8551201d2a66749ee888e51 /sys/i386
parent3f38119b9aafc5bf51d0db7f98efbadb7d5e2af2 (diff)
downloadFreeBSD-src-26bbc85eeec15390ed60e812b369a94e5cccefeb.zip
FreeBSD-src-26bbc85eeec15390ed60e812b369a94e5cccefeb.tar.gz
After having put on my Asbestos suit, complete the MFS_ROOT part of Terry's
mountroot changes. This means that the mfs_initminiroot functionality into the root mfs_mount....
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/autoconf.c30
1 files changed, 20 insertions, 10 deletions
diff --git a/sys/i386/i386/autoconf.c b/sys/i386/i386/autoconf.c
index afa38fd..8acbe10 100644
--- a/sys/i386/i386/autoconf.c
+++ b/sys/i386/i386/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.41 1995/11/05 04:43:11 gibbs Exp $
+ * $Id: autoconf.c,v 1.42 1995/11/20 12:09:54 phk Exp $
*/
/*
@@ -75,6 +75,9 @@ static void setroot(void);
*/
int dkn; /* number of iostat dk numbers assigned so far */
+#ifdef MFS_ROOT
+extern struct vfsops mfs_vfsops;
+#endif
#ifdef FFS
extern struct vfsops ufs_vfsops;
#endif
@@ -90,11 +93,6 @@ int cd9660_mountroot __P((void *));
#ifdef MSDOSFS
int msdosfs_mountroot __P((void *));
#endif
-#ifdef MFS_ROOT
-int mfs_initminiroot __P((u_char *));
-u_char mfs_root[MFS_ROOT*1024] = "MFS Filesystem goes here";
-u_char end_mfs_root[] = "MFS Filesystem had better STOP here";
-#endif
#include "eisa.h"
#include "isa.h"
@@ -199,10 +197,6 @@ configure(dummy)
cninit_finish();
-#ifdef MFS_ROOT
- mfs_initminiroot(mfs_root); /* XXX UGLY*/
-#endif /* MFS_ROOT */
-
#ifdef CD9660
if ((boothowto & RB_CDROM) && !mountroot)
mountroot = find_cdrom_root;
@@ -213,6 +207,22 @@ configure(dummy)
mountroot = nfs_mountroot;
#endif /* NFS */
+#ifdef MFS_ROOT
+ if (!mountroot) {
+ mountroot = vfs_mountroot; /* XXX goes away*/
+ mountrootvfsops = &mfs_vfsops;
+ /*
+ * Ignore the -a flag if this kernel isn't compiled
+ * with a generic root/swap configuration: if we skip
+ * setroot() and we aren't a generic kernel, chaos
+ * will ensue because setconf() will be a no-op.
+ * (rootdev is always initialized to NODEV in a
+ * generic configuration, so we test for that.)
+ */
+ if ((boothowto & RB_ASKNAME) == 0 || rootdev != NODEV)
+ setroot();
+ }
+#endif
#ifdef FFS
if (!mountroot) {
mountroot = vfs_mountroot; /* XXX goes away*/
OpenPOWER on IntegriCloud