SCCS-vsn: sys/tahoe/tahoe/autoconf.c 1.16
SCCS-vsn: sys/vax/vax/autoconf.c 7.13
-/* autoconf.c 1.15 87/06/30 */
+/* autoconf.c 1.16 88/02/08 */
/*
* Setup the system to run on the current machine.
/*
* Setup the system to run on the current machine.
- int majdev, mindev, unit, part, adaptor;
+ int majdev, mindev, unit, part, controller, adaptor;
dev_t temp, orootdev;
struct swdevt *swp;
if (boothowto & RB_DFLTROOT ||
(bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC)
return;
dev_t temp, orootdev;
struct swdevt *swp;
if (boothowto & RB_DFLTROOT ||
(bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC)
return;
- majdev = (bootdev >> B_TYPESHIFT) & B_TYPEMASK;
- if (majdev > sizeof(devname) / sizeof(devname[0]))
+ majdev = B_TYPE(bootdev);
+ if (majdev >= sizeof(devname) / sizeof(devname[0]))
- adaptor = (bootdev >> B_ADAPTORSHIFT) & B_ADAPTORMASK;
- part = (bootdev >> B_PARTITIONSHIFT) & B_PARTITIONMASK;
- unit = (bootdev >> B_UNITSHIFT) & B_UNITMASK;
+ adaptor = B_ADAPTOR(bootdev);
+ controller = B_CONTROLLER(bootdev);
+ part = B_PARTITION(bootdev);
+ unit = B_UNIT(bootdev);
/*
* Search Versabus devices.
*
/*
* Search Versabus devices.
*
for (vbap = vbdinit; vbap->ui_driver; vbap++)
if (vbap->ui_alive && vbap->ui_slave == unit &&
for (vbap = vbdinit; vbap->ui_driver; vbap++)
if (vbap->ui_alive && vbap->ui_slave == unit &&
+ vbap->ui_ctlr == controller &&
vbap->ui_vbanum == adaptor &&
vbap->ui_driver->ud_dname[0] == devname[majdev][0] &&
vbap->ui_driver->ud_dname[1] == devname[majdev][1])
vbap->ui_vbanum == adaptor &&
vbap->ui_driver->ud_dname[0] == devname[majdev][0] &&
vbap->ui_driver->ud_dname[1] == devname[majdev][1])
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
- * @(#)autoconf.c 7.12 (Berkeley) %G%
+ * @(#)autoconf.c 7.13 (Berkeley) %G%
- int majdev, mindev, unit, part, adaptor;
+ int majdev, mindev, unit, part, controller, adaptor;
dev_t temp, orootdev;
struct swdevt *swp;
if (boothowto & RB_DFLTROOT ||
(bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC)
return;
dev_t temp, orootdev;
struct swdevt *swp;
if (boothowto & RB_DFLTROOT ||
(bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC)
return;
- majdev = (bootdev >> B_TYPESHIFT) & B_TYPEMASK;
- if (majdev > sizeof(devname) / sizeof(devname[0]))
+ majdev = B_TYPE(bootdev);
+ if (majdev >= sizeof(devname) / sizeof(devname[0]))
- adaptor = (bootdev >> B_ADAPTORSHIFT) & B_ADAPTORMASK;
- part = (bootdev >> B_PARTITIONSHIFT) & B_PARTITIONMASK;
- unit = (bootdev >> B_UNITSHIFT) & B_UNITMASK;
+ adaptor = B_ADAPTOR(bootdev);
+ controller = B_CONTROLLER(bootdev);
+ part = B_PARTITION(bootdev);
+ unit = B_UNIT(bootdev);
if (majdev == 0) { /* MBA device */
#if NMBA > 0
register struct mba_device *mbap;
if (majdev == 0) { /* MBA device */
#if NMBA > 0
register struct mba_device *mbap;
for (ubap = ubdinit; ubap->ui_driver; ubap++)
if (ubap->ui_alive && ubap->ui_slave == unit &&
for (ubap = ubdinit; ubap->ui_driver; ubap++)
if (ubap->ui_alive && ubap->ui_slave == unit &&
+ ubap->ui_ctlr == controller &&
ubap->ui_ubanum == adaptor &&
ubap->ui_driver->ud_dname[0] == devname[majdev][0] &&
ubap->ui_driver->ud_dname[1] == devname[majdev][1])
ubap->ui_ubanum == adaptor &&
ubap->ui_driver->ud_dname[0] == devname[majdev][0] &&
ubap->ui_driver->ud_dname[1] == devname[majdev][1])