summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-03-21 14:53:08 +0000
committerache <ache@FreeBSD.org>1994-03-21 14:53:08 +0000
commitb07067dc3e724f3657e3f6a8308e10ec5df9581d (patch)
treed995825bb2501a27ffb76a5812828aeb7546314c /sys/amd64
parente23f78c6520be979e57de6eddbd0f502a2dc85ae (diff)
downloadFreeBSD-src-b07067dc3e724f3657e3f6a8308e10ec5df9581d.zip
FreeBSD-src-b07067dc3e724f3657e3f6a8308e10ec5df9581d.tar.gz
Fix printf for root system mounted on second floppy
Diffstat (limited to 'sys/amd64')
-rw-r--r--sys/amd64/amd64/autoconf.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/sys/amd64/amd64/autoconf.c b/sys/amd64/amd64/autoconf.c
index c55e88d..28f6cab 100644
--- a/sys/amd64/amd64/autoconf.c
+++ b/sys/amd64/amd64/autoconf.c
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)autoconf.c 7.1 (Berkeley) 5/9/91
- * $Id: autoconf.c,v 1.8 1994/01/31 23:47:24 davidg Exp $
+ * $Id: autoconf.c,v 1.9 1994/03/21 14:37:01 ache Exp $
*/
/*
@@ -142,6 +142,7 @@ static char devname[][2] = {
#define PARTITIONMASK 0x7
#define PARTITIONSHIFT 3
+#define FDUNITSHIFT 6
/*
* Attempt to find the device from which we were booted.
@@ -163,12 +164,15 @@ setroot()
if (majdev > sizeof(devname) / sizeof(devname[0]))
return;
adaptor = (bootdev >> B_ADAPTORSHIFT) & B_ADAPTORMASK;
- part = (bootdev >> B_PARTITIONSHIFT) & B_PARTITIONMASK;
unit = (bootdev >> B_UNITSHIFT) & B_UNITMASK;
- if (majdev == FDMAJOR)
- mindev = unit << 6;
- else
+ if (majdev == FDMAJOR) {
+ part = 0;
+ mindev = unit << FDUNITSHIFT;
+ }
+ else {
+ part = (bootdev >> B_PARTITIONSHIFT) & B_PARTITIONMASK;
mindev = (unit << PARTITIONSHIFT) + part;
+ }
orootdev = rootdev;
rootdev = makedev(majdev, mindev);
/*
@@ -179,7 +183,8 @@ setroot()
return;
printf("changing root device to %c%c%d%c\n",
devname[majdev][0], devname[majdev][1],
- mindev >> PARTITIONSHIFT, part + 'a');
+ mindev >> (majdev == FDMAJOR ? FDUNITSHIFT : PARTITIONSHIFT),
+ part + 'a');
#ifdef DOSWAP
mindev &= ~PARTITIONMASK;
for (swp = swdevt; swp->sw_dev; swp++) {
OpenPOWER on IntegriCloud