- if ((mi = mbaconfig(&fnd, dt)) && (dt & MBDT_TAP)) {
- for (ms = mbsinit; ms->ms_driver; ms++)
- if (ms->ms_driver == mi->mi_driver && ms->ms_alive == 0 &&
- (ms->ms_ctlr == mi->mi_unit || ms->ms_ctlr=='?')) {
- if ((*ms->ms_driver->md_slave)(mi, ms)) {
- printf("%s%d at %s%d slave %d\n",
- ms->ms_driver->md_sname,
- ms->ms_unit,
- mi->mi_driver->md_dname,
- mi->mi_unit,
- ms->ms_slave);
+#define qeq(a, b) ( a == b || a == '?' )
+ if ((mi = mbaconfig(&fnd, dt)) && (dt & MBDT_TAP))
+ for (sn = 0; sn < 8; sn++) {
+ mbd->mbd_tc = sn;
+ for (ms = mbsinit; ms->ms_driver; ms++)
+ if (ms->ms_driver == mi->mi_driver &&
+ ms->ms_alive == 0 &&
+ qeq(ms->ms_ctlr, mi->mi_unit) &&
+ qeq(ms->ms_slave, sn) &&
+ (*ms->ms_driver->md_slave)(mi, ms, sn)) {
+ printf("%s%d at %s%d slave %d\n"
+ , ms->ms_driver->md_sname
+ , ms->ms_unit
+ , mi->mi_driver->md_dname
+ , mi->mi_unit
+ , sn
+ );