Module Name: src Committed By: tsutsui Date: Mon Apr 21 11:06:55 UTC 2014
Modified Files: src/sys/arch/luna68k/stand/boot: devopen.c init_main.c samachdep.h Log Message: Fix stupid botches in previous. Use a proper device unit number if a unit number or non-default device is specified on the boot command. To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/arch/luna68k/stand/boot/devopen.c cvs rdiff -u -r1.14 -r1.15 src/sys/arch/luna68k/stand/boot/init_main.c cvs rdiff -u -r1.18 -r1.19 src/sys/arch/luna68k/stand/boot/samachdep.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/arch/luna68k/stand/boot/devopen.c diff -u src/sys/arch/luna68k/stand/boot/devopen.c:1.7 src/sys/arch/luna68k/stand/boot/devopen.c:1.8 --- src/sys/arch/luna68k/stand/boot/devopen.c:1.7 Wed Apr 16 13:43:02 2014 +++ src/sys/arch/luna68k/stand/boot/devopen.c Mon Apr 21 11:06:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: devopen.c,v 1.7 2014/04/16 13:43:02 tsutsui Exp $ */ +/* $NetBSD: devopen.c,v 1.8 2014/04/21 11:06:55 tsutsui Exp $ */ /* * Copyright (c) 1992 OMRON Corporation. @@ -126,8 +126,9 @@ make_device(const char *str, int *devp, int dev, unit, part; int i; char devname[MAXDEVNAME + 1]; + bool haveunit; - unit = default_unit; + unit = 0; part = 0; /* @@ -150,11 +151,14 @@ make_device(const char *str, int *devp, } dev = dp - devsw; /* get mixed controller and unit number */ + haveunit = false; for (; *cp != ',' && *cp != ')'; cp++) { if (*cp == '\0') return -1; - if (*cp >= '0' && *cp <= '9') + if (*cp >= '0' && *cp <= '9') { unit = unit * 10 + *cp - '0'; + haveunit = true; + } } if (unit < 0 || CTLR(unit) >= 2 || TARGET(unit) > 7) { #ifdef DEBUG @@ -162,6 +166,8 @@ make_device(const char *str, int *devp, #endif return (-1); } + if (!haveunit && strcmp(devname, default_bootdev) == 0) + unit = default_unit; /* get optional partition number */ if (*cp == ',') cp++; Index: src/sys/arch/luna68k/stand/boot/init_main.c diff -u src/sys/arch/luna68k/stand/boot/init_main.c:1.14 src/sys/arch/luna68k/stand/boot/init_main.c:1.15 --- src/sys/arch/luna68k/stand/boot/init_main.c:1.14 Wed Apr 16 13:43:02 2014 +++ src/sys/arch/luna68k/stand/boot/init_main.c Mon Apr 21 11:06:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: init_main.c,v 1.14 2014/04/16 13:43:02 tsutsui Exp $ */ +/* $NetBSD: init_main.c,v 1.15 2014/04/21 11:06:55 tsutsui Exp $ */ /* * Copyright (c) 1992 OMRON Corporation. @@ -88,6 +88,7 @@ int cpuspeed; /* for DELAY() macro */ int hz = 60; int machtype; char default_file[64]; +const char *default_bootdev; int default_unit; #define VERS_LOCAL "Phase-31" @@ -287,6 +288,7 @@ main(void) snprintf(default_file, sizeof(default_file), "%s(%d,%d)%s", bootdev, unit, part, "netbsd"); + default_bootdev = bootdev; default_unit = unit; howto = reorder_dipsw(dipsw2); Index: src/sys/arch/luna68k/stand/boot/samachdep.h diff -u src/sys/arch/luna68k/stand/boot/samachdep.h:1.18 src/sys/arch/luna68k/stand/boot/samachdep.h:1.19 --- src/sys/arch/luna68k/stand/boot/samachdep.h:1.18 Wed Apr 16 13:43:02 2014 +++ src/sys/arch/luna68k/stand/boot/samachdep.h Mon Apr 21 11:06:55 2014 @@ -1,4 +1,4 @@ -/* $NetBSD: samachdep.h,v 1.18 2014/04/16 13:43:02 tsutsui Exp $ */ +/* $NetBSD: samachdep.h,v 1.19 2014/04/21 11:06:55 tsutsui Exp $ */ /* * Copyright (c) 1982, 1990, 1993 @@ -103,6 +103,7 @@ extern int hz; extern int nplane; extern int machtype; extern char default_file[]; +extern const char *default_bootdev; extern int default_unit; /* kbd.c */