diff options
author | 1996-11-10 10:18:56 +0000 | |
---|---|---|
committer | 1996-11-10 10:18:56 +0000 | |
commit | a504036fa611134999f53f33376b09e6bd425795 (patch) | |
tree | e29122811bac70068bb16918b08f6161633f082e | |
parent | Another change Theo missed, plus some stylistic changes (diff) | |
download | wireguard-openbsd-a504036fa611134999f53f33376b09e6bd425795.tar.xz wireguard-openbsd-a504036fa611134999f53f33376b09e6bd425795.zip |
Repair setroot() to at least have a chance of working after Theo's changes.
-rw-r--r-- | sys/arch/i386/i386/autoconf.c | 36 |
1 files changed, 25 insertions, 11 deletions
diff --git a/sys/arch/i386/i386/autoconf.c b/sys/arch/i386/i386/autoconf.c index db1dbbc8b57..c9c6b2cb77a 100644 --- a/sys/arch/i386/i386/autoconf.c +++ b/sys/arch/i386/i386/autoconf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: autoconf.c,v 1.18 1996/11/10 09:49:14 downsj Exp $ */ +/* $OpenBSD: autoconf.c,v 1.19 1996/11/10 10:18:56 downsj Exp $ */ /* $NetBSD: autoconf.c,v 1.20 1996/05/03 19:41:56 christos Exp $ */ /*- @@ -129,12 +129,28 @@ swapconf() #define DOSWAP /* change swdevt and dumpdev */ u_long bootdev = 0; /* should be dev_t, but not until 32 bits */ -static char devname[][2] = { - { 'w','d' }, /* 0 = wd */ - { 's','w' }, /* 1 = sw */ - { 'f','d' }, /* 2 = fd */ - { 'w','t' }, /* 3 = wt */ - { 's','d' }, /* 4 = sd -- new SCSI system */ +static const char *devname[] = { + "wd", /* 0 = wd */ + "sw", /* 1 = sw */ + "", /* 2 */ + "wt", /* 3 = wt */ + "sd", /* 4 = sd */ + "", /* 5 */ + "", /* 6 */ + "mcd", /* 7 */ + "", /* 8 */ + "", /* 9 */ + "", /* 10 */ + "", /* 11 */ + "", /* 12 */ + "", /* 13 */ + "", /* 14 */ + "", /* 15 */ + "", /* 16 */ + "", /* 17 */ + "acd", /* 18 = acd */ + "", /* 19 */ + "fd" /* 20 = fd */ }; dev_t argdev = NODEV; @@ -161,7 +177,7 @@ setroot() (bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC) return; majdev = (bootdev >> B_TYPESHIFT) & B_TYPEMASK; - if (majdev > sizeof(devname) / sizeof(devname[0])) + if ((majdev > 20) || (*devname[majdev] == '\0')) return; adaptor = (bootdev >> B_ADAPTORSHIFT) & B_ADAPTORMASK; part = (bootdev >> B_PARTITIONSHIFT) & B_PARTITIONMASK; @@ -175,9 +191,7 @@ setroot() */ if (rootdev == orootdev) return; - printf("root on %c%c%d%c\n", - devname[majdev][0], devname[majdev][1], - unit, part + 'a'); + printf("root on %s%d%c\n", devname[majdev], unit, part + 'a'); #ifdef DOSWAP for (swp = swdevt; swp->sw_dev != NODEV; swp++) { |