summaryrefslogtreecommitdiffstats
path: root/sys/i386
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1999-04-15 15:35:32 +0000
committerbde <bde@FreeBSD.org>1999-04-15 15:35:32 +0000
commit226b174bb7344aa2e7bb14239c096808a6b34d23 (patch)
tree038e058f2373ccf75392a06c35c2d4649ad12954 /sys/i386
parent2633265e241ab13d0313291561267bfc28dd3843 (diff)
downloadFreeBSD-src-226b174bb7344aa2e7bb14239c096808a6b34d23.zip
FreeBSD-src-226b174bb7344aa2e7bb14239c096808a6b34d23.tar.gz
Removed dead code and cleaned up. setconf() now just asks for the
root device name. The parser for the name is still too simple (it forces slice = none, partition = 'a').
Diffstat (limited to 'sys/i386')
-rw-r--r--sys/i386/i386/swapgeneric.c146
1 files changed, 38 insertions, 108 deletions
diff --git a/sys/i386/i386/swapgeneric.c b/sys/i386/i386/swapgeneric.c
index 3353c5a..e052eb3 100644
--- a/sys/i386/i386/swapgeneric.c
+++ b/sys/i386/i386/swapgeneric.c
@@ -34,135 +34,65 @@
* SUCH DAMAGE.
*
* from: @(#)swapgeneric.c 5.5 (Berkeley) 5/9/91
- * $Id: swapgeneric.c,v 1.26 1999/04/14 15:20:03 bde Exp $
+ * $Id: swapgeneric.c,v 1.27 1999/04/15 14:52:24 bde Exp $
*/
#include <sys/param.h>
#include <sys/conf.h>
#include <sys/buf.h>
-#include <sys/mount.h>
#include <sys/systm.h>
-#include <sys/reboot.h>
#include <sys/disklabel.h>
-#include <sys/kernel.h>
#include <i386/i386/cons.h>
-#include <machine/md_var.h>
-
-#include "wd.h"
-#include "fd.h"
-#include "cd.h"
-#include "da.h"
-#include "mcd.h"
-#include "scd.h"
-#include "matcd.h"
-
-/*
- * Generic configuration; all in one
- */
-void gets __P((char *));
+#include <machine/md_var.h>
-struct genericconf {
- char *gc_name;
- dev_t gc_root;
-} genericconf[] = {
-#if NWD > 0
- { "wd", makedev(0, 0x00000000), },
-#endif
-#if NFD > 0
- { "fd", makedev(2, 0x00000000), },
-#endif
-#if NCD > 0
- { "cd", makedev(6, 0x00000000), },
-#endif
-#if NDA > 0
- { "da", makedev(4, 0x00000000), },
-#endif
-#if NMCD > 0
- { "mcd", makedev(7, 0x00000000), },
-#endif
-#if NSCD > 0
- { "scd", makedev(16,0x00000000), },
-#endif
-#if NMATCD > 0
- { "matcd", makedev(17,0x00000000), },
-#endif
- { 0 },
-};
+static void gets __P((char *));
-void setconf(void)
+void
+setconf()
{
- register struct genericconf *gc;
+ char name[128];
char *cp;
int bd, unit;
- if (boothowto & RB_ASKNAME) {
- char name[128];
retry:
- printf("root device? ");
- gets(name);
- cp = name;
- while (cp != '\0' && (*cp < '0' || *cp > '9'))
- cp++;
- if (cp == name) {
- printf("missing device name\n");
- goto bad;
- }
- if (*cp == '\0') {
- printf("missing unit number\n");
- goto bad;
- }
- unit = *cp - '0';
- *cp++ = '\0';
- for (bd = 0; bd < nblkdev; bd++)
- if (bdevsw[bd] != NULL &&
- strcmp(bdevsw[bd]->d_name, name) == 0)
- goto gotit;
+ printf("root device? ");
+ gets(name);
+ cp = name;
+ while (cp != '\0' && (*cp < '0' || *cp > '9'))
+ cp++;
+ if (cp == name) {
+ printf("missing device name\n");
goto bad;
-gotit:
- while (*cp >= '0' && *cp <= '9')
- unit += 10 * unit + *cp++ - '0';
- if (*cp != '\0') {
- printf("junk after unit number\n");
- goto bad;
- }
- rootdev = makedev(bd, dkmakeminor(unit, 0, 0));
- return;
-bad:
- printf("use dk%%d\n");
- goto retry;
}
- /* XXX */
- if (strcmp(mountrootfsname, "nfs") == 0) {
- /*
- * The NFS code in nfs_vfsops.c handles root and swap
- * for us if we're booting diskless. This is just to
- * make swapconf() happy.
- */
- dumplo = -1;
- return;
+ if (*cp == '\0') {
+ printf("missing unit number\n");
+ goto bad;
}
- unit = 0;
- for (gc = genericconf; gc->gc_name; gc++) {
- for (bd = 0; bd < nblkdev; bd++) {
- if (bdevsw[bd] != NULL &&
- strcmp(bdevsw[bd]->d_name, gc->gc_name) == 0) {
- printf("root on %s0\n", bdevsw[bd]->d_name);
- goto found;
- }
- }
+ unit = *cp - '0';
+ *cp++ = '\0';
+ for (bd = 0; bd < nblkdev; bd++)
+ if (bdevsw[bd] != NULL &&
+ strcmp(bdevsw[bd]->d_name, name) == 0)
+ goto gotit;
+ goto bad;
+gotit:
+ while (*cp >= '0' && *cp <= '9')
+ unit += 10 * unit + *cp++ - '0';
+ if (*cp != '\0') {
+ printf("junk after unit number\n");
+ goto bad;
}
- printf("no suitable root -- press any key to reboot\n\n");
- cngetc();
- cpu_reset();
- for(;;) ;
-found:
- gc->gc_root = makedev(major(gc->gc_root), unit * MAXPARTITIONS);
- rootdev = gc->gc_root;
+ rootdev = makedev(bd, dkmakeminor(unit, 0, 0));
+ return;
+bad:
+ printf("use dk%%d\n");
+ goto retry;
}
-void gets(cp)
+static void
+gets(cp)
char *cp;
{
register char *lp;
@@ -170,7 +100,7 @@ void gets(cp)
lp = cp;
for (;;) {
- printf("%c", c = cngetc()&0177);
+ printf("%c", c = cngetc() & 0177);
switch (c) {
case -1:
case '\n':
@@ -190,7 +120,7 @@ void gets(cp)
lp = cp;
continue;
case '@':
- case 'u'&037:
+ case 'u' & 037:
lp = cp;
printf("%c", '\n');
continue;
OpenPOWER on IntegriCloud