siop_cmd 82 dev/ic/siop.c void siop_table_sync(struct siop_cmd *, int); siop_cmd 88 dev/ic/siop.c int siop_handle_qtag_reject(struct siop_cmd *); siop_cmd 89 dev/ic/siop.c void siop_scsicmd_end(struct siop_cmd *); siop_cmd 135 dev/ic/siop.c siop_table_sync(siop_cmd, ops) siop_cmd 136 dev/ic/siop.c struct siop_cmd *siop_cmd; siop_cmd 139 dev/ic/siop.c struct siop_common_softc *sc = siop_cmd->cmd_c.siop_sc; siop_cmd 142 dev/ic/siop.c offset = siop_cmd->cmd_c.dsa - siop_cmd 143 dev/ic/siop.c siop_cmd->siop_cbdp->xferdma->dm_segs[0].ds_addr; siop_cmd 144 dev/ic/siop.c bus_dmamap_sync(sc->sc_dmat, siop_cmd->siop_cbdp->xferdma, offset, siop_cmd 340 dev/ic/siop.c siop_cmd->cmd_c.dsa, \ siop_cmd 356 dev/ic/siop.c struct siop_cmd *siop_cmd; siop_cmd 384 dev/ic/siop.c siop_cmd = NULL; siop_cmd 390 dev/ic/siop.c siop_cmd = &cbdp->cmds[dsa / sizeof(struct siop_xfer)]; siop_cmd 391 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 396 dev/ic/siop.c if (siop_cmd) { siop_cmd 397 dev/ic/siop.c xs = siop_cmd->cmd_c.xs; siop_cmd 398 dev/ic/siop.c siop_target = (struct siop_target *)siop_cmd->cmd_c.siop_target; siop_cmd 399 dev/ic/siop.c target = siop_cmd->cmd_c.xs->sc_link->target; siop_cmd 400 dev/ic/siop.c lun = siop_cmd->cmd_c.xs->sc_link->lun; siop_cmd 401 dev/ic/siop.c tag = siop_cmd->cmd_c.tag; siop_cmd 404 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_ACTIVE && siop_cmd 405 dev/ic/siop.c siop_cmd->cmd_c.status != CMDST_SENSE_ACTIVE) { siop_cmd 408 dev/ic/siop.c siop_cmd->cmd_c.status); siop_cmd 415 dev/ic/siop.c siop_cmd = NULL; siop_cmd 416 dev/ic/siop.c } else if (siop_lun->siop_tag[tag].active != siop_cmd) { siop_cmd 418 dev/ic/siop.c "active (%p != %p)\n", lun, tag, siop_cmd, siop_cmd 472 dev/ic/siop.c if (siop_cmd) siop_cmd 474 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[0], siop_cmd 476 dev/ic/siop.c siop_cmd->cmd_tables->status)); siop_cmd 508 dev/ic/siop.c if (siop_cmd) siop_cmd 516 dev/ic/siop.c if (siop_cmd) { siop_cmd 527 dev/ic/siop.c SIOP_DSA, siop_cmd->cmd_c.dsa); siop_cmd 541 dev/ic/siop.c siop_ma(&siop_cmd->cmd_c); siop_cmd 554 dev/ic/siop.c siop_ma(&siop_cmd->cmd_c); siop_cmd 574 dev/ic/siop.c if (siop_cmd) siop_cmd 583 dev/ic/siop.c if (siop_cmd) { siop_cmd 584 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_DONE; siop_cmd 599 dev/ic/siop.c if (siop_cmd) { siop_cmd 600 dev/ic/siop.c siop_cmd->cmd_tables->status = siop_cmd 636 dev/ic/siop.c if (siop_cmd) { siop_cmd 637 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_DONE; siop_cmd 663 dev/ic/siop.c if (siop_cmd == NULL) { siop_cmd 669 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_ACTIVE && siop_cmd 670 dev/ic/siop.c siop_cmd->cmd_c.status != CMDST_SENSE_ACTIVE) { siop_cmd 674 dev/ic/siop.c irqcode, siop_cmd->cmd_c.status); siop_cmd 722 dev/ic/siop.c siop_cmd = siop_lun->siop_tag[tag].active; siop_cmd 724 dev/ic/siop.c SIOP_DSP, siop_cmd->cmd_c.dsa + siop_cmd 727 dev/ic/siop.c siop_table_sync(siop_cmd, BUS_DMASYNC_PREWRITE); siop_cmd 739 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_out[0] & 0x80) { siop_cmd 746 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[1]; siop_cmd 748 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[3]; siop_cmd 750 dev/ic/siop.c msg = siop_cmd->cmd_tables->msg_out[0]; siop_cmd 752 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[2]; siop_cmd 780 dev/ic/siop.c siop_sdtr_msg(&siop_cmd->cmd_c, 0, siop_cmd 783 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 812 dev/ic/siop.c siop_cmd) == -1) siop_cmd 835 dev/ic/siop.c siop_cmd->cmd_tables->t_extmsgdata.count = siop_cmd 837 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 847 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[0]); siop_cmd 848 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[0] = MSG_MESSAGE_REJECT; siop_cmd 849 dev/ic/siop.c siop_cmd->cmd_tables->t_msgout.count = siop_cmd 851 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 859 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[2], siop_cmd 860 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[1]); siop_cmd 862 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[1] > siop_cmd 863 dev/ic/siop.c sizeof(siop_cmd->cmd_tables->msg_in) - 2) siop_cmd 866 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[1]); siop_cmd 867 dev/ic/siop.c siop_cmd->cmd_tables->t_extmsgdata.count = siop_cmd 869 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[1] - 1); siop_cmd 870 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 879 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[2]); siop_cmd 880 dev/ic/siop.c for (i = 3; i < 2 + siop_cmd->cmd_tables->msg_in[1]; siop_cmd 883 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[i]); siop_cmd 887 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[0] == siop_cmd 890 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[3] != 1) siop_cmd 893 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[3]); siop_cmd 894 dev/ic/siop.c switch (siop_iwr(&siop_cmd->cmd_c)) { siop_cmd 896 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 910 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[2] == MSG_EXT_WDTR) { siop_cmd 911 dev/ic/siop.c switch (siop_wdtr_neg(&siop_cmd->cmd_c)) { siop_cmd 914 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 915 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 922 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 931 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[2] == MSG_EXT_SDTR) { siop_cmd 932 dev/ic/siop.c switch (siop_sdtr_neg(&siop_cmd->cmd_c)) { siop_cmd 935 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 936 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 943 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 952 dev/ic/siop.c if (siop_cmd->cmd_tables->msg_in[2] == MSG_EXT_PPR) { siop_cmd 953 dev/ic/siop.c switch (siop_ppr_neg(&siop_cmd->cmd_c)) { siop_cmd 956 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 957 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 964 dev/ic/siop.c siop_cmd->cmd_c.siop_target); siop_cmd 974 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[0] = MSG_MESSAGE_REJECT; siop_cmd 975 dev/ic/siop.c siop_cmd->cmd_tables->t_msgout.count = siop_cmd 977 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 988 dev/ic/siop.c siop_sdp(&siop_cmd->cmd_c, offset); siop_cmd 990 dev/ic/siop.c siop_cmd->saved_offset = SIOP_NOOFFSET; siop_cmd 991 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 1002 dev/ic/siop.c siop_cmd->saved_offset = offset; siop_cmd 1015 dev/ic/siop.c (u_long)siop_cmd->cmd_c.dsa); siop_cmd 1016 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_FREE; siop_cmd 1023 dev/ic/siop.c "in=0x%x status=0x%x\n", (u_long)siop_cmd->cmd_c.dsa, siop_cmd 1024 dev/ic/siop.c siop_ctoh32(&sc->sc_c, siop_cmd->cmd_tables->id), siop_cmd 1025 dev/ic/siop.c siop_cmd->cmd_tables->msg_in[0], siop_cmd 1027 dev/ic/siop.c siop_cmd->cmd_tables->status)); siop_cmd 1040 dev/ic/siop.c siop_cmd->saved_offset != SIOP_NOOFFSET) siop_cmd 1041 dev/ic/siop.c offset = siop_cmd->saved_offset; siop_cmd 1042 dev/ic/siop.c siop_update_resid(&siop_cmd->cmd_c, offset); siop_cmd 1043 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_SENSE_ACTIVE) siop_cmd 1044 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_SENSE_DONE; siop_cmd 1046 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_DONE; siop_cmd 1065 dev/ic/siop.c (siop_cmd == NULL) ? "== NULL" : "!= NULL"); siop_cmd 1073 dev/ic/siop.c xs->status = siop_ctoh32(&sc->sc_c, siop_cmd->cmd_tables->status); siop_cmd 1079 dev/ic/siop.c siop_scsicmd_end(siop_cmd); siop_cmd 1089 dev/ic/siop.c siop_scsicmd_end(siop_cmd) siop_cmd 1090 dev/ic/siop.c struct siop_cmd *siop_cmd; siop_cmd 1092 dev/ic/siop.c struct scsi_xfer *xs = siop_cmd->cmd_c.xs; siop_cmd 1093 dev/ic/siop.c struct siop_softc *sc = (struct siop_softc *)siop_cmd->cmd_c.siop_sc; siop_cmd 1101 dev/ic/siop.c timeout_del(&siop_cmd->cmd_c.xs->stimeout); siop_cmd 1105 dev/ic/siop.c xs->error = (siop_cmd->cmd_c.status == CMDST_DONE) ? siop_cmd 1112 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_SENSE_DONE) { siop_cmd 1118 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_SENSE; siop_cmd 1134 dev/ic/siop.c xs->sc_link->lun, siop_cmd->cmd_c.tag); siop_cmd 1137 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_READY; siop_cmd 1138 dev/ic/siop.c siop_setuptables(&siop_cmd->cmd_c); siop_cmd 1139 dev/ic/siop.c siop_table_sync(siop_cmd, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); siop_cmd 1140 dev/ic/siop.c TAILQ_INSERT_TAIL(&sc->urgent_list, siop_cmd, next); siop_cmd 1157 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_SENSE_DONE && siop_cmd 1159 dev/ic/siop.c bus_dmamap_sync(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data, 0, siop_cmd 1160 dev/ic/siop.c siop_cmd->cmd_c.dmamap_data->dm_mapsize, siop_cmd 1163 dev/ic/siop.c bus_dmamap_unload(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data); siop_cmd 1165 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_SENSE) { siop_cmd 1167 dev/ic/siop.c struct scsi_sense *cmd = (struct scsi_sense *)&siop_cmd->cmd_c.siop_tables->xscmd; siop_cmd 1170 dev/ic/siop.c siop_cmd->cmd_c.siop_tables->cmd.count = siop_cmd 1177 dev/ic/siop.c siop_cmd->cmd_c.flags &= ~CMDFL_TAG; siop_cmd 1178 dev/ic/siop.c error = bus_dmamap_load(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data, siop_cmd 1188 dev/ic/siop.c bus_dmamap_sync(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data, siop_cmd 1189 dev/ic/siop.c 0, siop_cmd->cmd_c.dmamap_data->dm_mapsize, siop_cmd 1192 dev/ic/siop.c siop_setuptables(&siop_cmd->cmd_c); siop_cmd 1193 dev/ic/siop.c siop_table_sync(siop_cmd, BUS_DMASYNC_PREREAD | BUS_DMASYNC_PREWRITE); siop_cmd 1195 dev/ic/siop.c TAILQ_INSERT_HEAD(&sc->urgent_list, siop_cmd, next); siop_cmd 1197 dev/ic/siop.c } else if (siop_cmd->cmd_c.status == CMDST_SENSE_DONE) { siop_cmd 1198 dev/ic/siop.c bus_dmamap_sync(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data, siop_cmd 1199 dev/ic/siop.c 0, siop_cmd->cmd_c.dmamap_data->dm_mapsize, siop_cmd 1201 dev/ic/siop.c bus_dmamap_unload(sc->sc_c.sc_dmat, siop_cmd->cmd_c.dmamap_data); siop_cmd 1206 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_FREE; siop_cmd 1207 dev/ic/siop.c TAILQ_INSERT_TAIL(&sc->free_list, siop_cmd, next); siop_cmd 1220 dev/ic/siop.c siop_handle_qtag_reject(siop_cmd) siop_cmd 1221 dev/ic/siop.c struct siop_cmd *siop_cmd; siop_cmd 1223 dev/ic/siop.c struct siop_softc *sc = (struct siop_softc *)siop_cmd->cmd_c.siop_sc; siop_cmd 1224 dev/ic/siop.c int target = siop_cmd->cmd_c.xs->sc_link->target; siop_cmd 1225 dev/ic/siop.c int lun = siop_cmd->cmd_c.xs->sc_link->lun; siop_cmd 1226 dev/ic/siop.c int tag = siop_cmd->cmd_tables->msg_out[2]; siop_cmd 1232 dev/ic/siop.c sc->sc_c.sc_dev.dv_xname, target, lun, tag, siop_cmd->cmd_c.tag, siop_cmd 1233 dev/ic/siop.c siop_cmd->cmd_c.status); siop_cmd 1245 dev/ic/siop.c siop_lun->siop_tag[0].active = siop_cmd; siop_cmd 1246 dev/ic/siop.c siop_cmd->cmd_c.tag = 0; siop_cmd 1251 dev/ic/siop.c siop_cmd->cmd_c.dsa + sizeof(struct siop_common_xfer) + siop_cmd 1253 dev/ic/siop.c siop_table_sync(siop_cmd, BUS_DMASYNC_PREWRITE); siop_cmd 1269 dev/ic/siop.c struct siop_cmd *siop_cmd, *next_siop_cmd; siop_cmd 1298 dev/ic/siop.c siop_cmd = siop_lun->siop_tag[tag].active; siop_cmd 1299 dev/ic/siop.c if (siop_cmd == NULL) siop_cmd 1302 dev/ic/siop.c TAILQ_INSERT_TAIL(&reset_list, siop_cmd, next); siop_cmd 1303 dev/ic/siop.c sc_print_addr(siop_cmd->cmd_c.xs->sc_link); siop_cmd 1305 dev/ic/siop.c siop_cmd, tag); siop_cmd 1317 dev/ic/siop.c for (siop_cmd = TAILQ_FIRST(&sc->urgent_list); siop_cmd != NULL; siop_cmd 1318 dev/ic/siop.c siop_cmd = next_siop_cmd) { siop_cmd 1319 dev/ic/siop.c next_siop_cmd = TAILQ_NEXT(siop_cmd, next); siop_cmd 1320 dev/ic/siop.c TAILQ_REMOVE(&sc->urgent_list, siop_cmd, next); siop_cmd 1321 dev/ic/siop.c TAILQ_INSERT_TAIL(&reset_list, siop_cmd, next); siop_cmd 1322 dev/ic/siop.c sc_print_addr(siop_cmd->cmd_c.xs->sc_link); siop_cmd 1324 dev/ic/siop.c siop_cmd); siop_cmd 1327 dev/ic/siop.c for (siop_cmd = TAILQ_FIRST(&sc->ready_list); siop_cmd != NULL; siop_cmd 1328 dev/ic/siop.c siop_cmd = next_siop_cmd) { siop_cmd 1329 dev/ic/siop.c next_siop_cmd = TAILQ_NEXT(siop_cmd, next); siop_cmd 1330 dev/ic/siop.c TAILQ_REMOVE(&sc->ready_list, siop_cmd, next); siop_cmd 1331 dev/ic/siop.c TAILQ_INSERT_TAIL(&reset_list, siop_cmd, next); siop_cmd 1332 dev/ic/siop.c sc_print_addr(siop_cmd->cmd_c.xs->sc_link); siop_cmd 1334 dev/ic/siop.c siop_cmd); siop_cmd 1337 dev/ic/siop.c for (siop_cmd = TAILQ_FIRST(&reset_list); siop_cmd != NULL; siop_cmd 1338 dev/ic/siop.c siop_cmd = next_siop_cmd) { siop_cmd 1339 dev/ic/siop.c next_siop_cmd = TAILQ_NEXT(siop_cmd, next); siop_cmd 1340 dev/ic/siop.c siop_cmd->cmd_c.flags &= ~CMDFL_TAG; siop_cmd 1341 dev/ic/siop.c siop_cmd->cmd_c.xs->error = siop_cmd 1342 dev/ic/siop.c (siop_cmd->cmd_c.flags & CMDFL_TIMEOUT) siop_cmd 1344 dev/ic/siop.c siop_cmd->cmd_c.xs->status = SCSI_SIOP_NOCHECK; siop_cmd 1345 dev/ic/siop.c sc_print_addr(siop_cmd->cmd_c.xs->sc_link); siop_cmd 1347 dev/ic/siop.c siop_cmd, siop_cmd->cmd_c.status); siop_cmd 1348 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_SENSE || siop_cmd 1349 dev/ic/siop.c siop_cmd->cmd_c.status == CMDST_SENSE_ACTIVE) siop_cmd 1350 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_SENSE_DONE; siop_cmd 1352 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_DONE; siop_cmd 1354 dev/ic/siop.c siop_cmd->cmd_c.status, siop_cmd->cmd_c.xs->error); siop_cmd 1355 dev/ic/siop.c TAILQ_REMOVE(&reset_list, siop_cmd, next); siop_cmd 1356 dev/ic/siop.c siop_scsicmd_end(siop_cmd); siop_cmd 1365 dev/ic/siop.c struct siop_cmd *siop_cmd; siop_cmd 1375 dev/ic/siop.c siop_cmd = TAILQ_FIRST(&sc->free_list); siop_cmd 1376 dev/ic/siop.c if (siop_cmd == NULL) { siop_cmd 1380 dev/ic/siop.c TAILQ_REMOVE(&sc->free_list, siop_cmd, next); siop_cmd 1383 dev/ic/siop.c timeout_set(&xs->stimeout, siop_timeout, siop_cmd); siop_cmd 1386 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_FREE) siop_cmd 1440 dev/ic/siop.c siop_cmd->cmd_c.siop_target = sc->sc_c.targets[target]; siop_cmd 1441 dev/ic/siop.c siop_cmd->cmd_c.xs = xs; siop_cmd 1442 dev/ic/siop.c siop_cmd->cmd_c.flags = 0; siop_cmd 1443 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_READY; siop_cmd 1445 dev/ic/siop.c bzero(&siop_cmd->cmd_c.siop_tables->xscmd, siop_cmd 1446 dev/ic/siop.c sizeof(siop_cmd->cmd_c.siop_tables->xscmd)); siop_cmd 1447 dev/ic/siop.c bcopy(xs->cmd, &siop_cmd->cmd_c.siop_tables->xscmd, xs->cmdlen); siop_cmd 1448 dev/ic/siop.c siop_cmd->cmd_c.siop_tables->cmd.count = siop_cmd 1454 dev/ic/siop.c siop_cmd->cmd_c.dmamap_data, xs->data, xs->datalen, siop_cmd 1465 dev/ic/siop.c siop_cmd->cmd_c.dmamap_data, 0, siop_cmd 1466 dev/ic/siop.c siop_cmd->cmd_c.dmamap_data->dm_mapsize, siop_cmd 1471 dev/ic/siop.c siop_setuptables(&siop_cmd->cmd_c); siop_cmd 1472 dev/ic/siop.c siop_cmd->saved_offset = SIOP_NOOFFSET; siop_cmd 1473 dev/ic/siop.c siop_table_sync(siop_cmd, siop_cmd 1476 dev/ic/siop.c TAILQ_INSERT_TAIL(&sc->ready_list, siop_cmd, next); siop_cmd 1527 dev/ic/siop.c siop_timeout(siop_cmd); siop_cmd 1540 dev/ic/siop.c struct siop_cmd *siop_cmd, *next_siop_cmd; siop_cmd 1579 dev/ic/siop.c siop_cmd = TAILQ_FIRST(&sc->urgent_list); siop_cmd 1581 dev/ic/siop.c for (; siop_cmd != NULL; siop_cmd = next_siop_cmd) { siop_cmd 1582 dev/ic/siop.c next_siop_cmd = TAILQ_NEXT(siop_cmd, next); siop_cmd 1584 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_READY && siop_cmd 1585 dev/ic/siop.c siop_cmd->cmd_c.status != CMDST_SENSE) siop_cmd 1588 dev/ic/siop.c target = siop_cmd->cmd_c.xs->sc_link->target; siop_cmd 1589 dev/ic/siop.c lun = siop_cmd->cmd_c.xs->sc_link->lun; siop_cmd 1600 dev/ic/siop.c siop_cmd->cmd_c.status == CMDST_READY) siop_cmd 1603 dev/ic/siop.c if (siop_cmd->cmd_c.flags & CMDFL_TAG) { siop_cmd 1613 dev/ic/siop.c siop_cmd->cmd_c.tag = tag; siop_cmd 1618 dev/ic/siop.c if (siop_cmd->cmd_c.status != CMDST_SENSE) { siop_cmd 1641 dev/ic/siop.c (u_long)siop_cmd->cmd_c.dsa); siop_cmd 1647 dev/ic/siop.c siop_cmd->cmd_tables->t_msgout.count); siop_cmd 1653 dev/ic/siop.c if (siop_cmd->cmd_c.xs->bp != NULL && siop_cmd 1654 dev/ic/siop.c (siop_cmd->cmd_c.xs->bp->b_flags & B_ASYNC)) siop_cmd 1655 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[1] = siop_cmd 1658 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[1] = siop_cmd 1660 dev/ic/siop.c siop_cmd->cmd_tables->msg_out[2] = tag; siop_cmd 1661 dev/ic/siop.c siop_cmd->cmd_tables->t_msgout.count = siop_cmd 1667 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_READY) { siop_cmd 1668 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_ACTIVE; siop_cmd 1669 dev/ic/siop.c } else if (siop_cmd->cmd_c.status == CMDST_SENSE) { siop_cmd 1670 dev/ic/siop.c siop_cmd->cmd_c.status = CMDST_SENSE_ACTIVE; siop_cmd 1674 dev/ic/siop.c TAILQ_REMOVE(&sc->ready_list, siop_cmd, next); siop_cmd 1676 dev/ic/siop.c TAILQ_REMOVE(&sc->urgent_list, siop_cmd, next); siop_cmd 1677 dev/ic/siop.c siop_lun->siop_tag[tag].active = siop_cmd; siop_cmd 1679 dev/ic/siop.c dsa = siop_cmd->cmd_c.dsa; siop_cmd 1687 dev/ic/siop.c siop_xfer = (struct siop_xfer*)siop_cmd->cmd_tables; siop_cmd 1691 dev/ic/siop.c siop_table_sync(siop_cmd, BUS_DMASYNC_PREWRITE); siop_cmd 1697 dev/ic/siop.c if (siop_cmd->cmd_c.status == CMDST_ACTIVE) { siop_cmd 1698 dev/ic/siop.c if ((siop_cmd->cmd_c.xs->flags & SCSI_POLL) == 0) { siop_cmd 1700 dev/ic/siop.c timeout = (u_int64_t) siop_cmd->cmd_c.xs->timeout * siop_cmd 1704 dev/ic/siop.c timeout_add(&siop_cmd->cmd_c.xs->stimeout, timeout); siop_cmd 1721 dev/ic/siop.c siop_cmd = TAILQ_FIRST(&sc->ready_list); siop_cmd 1742 dev/ic/siop.c struct siop_cmd *siop_cmd = v; siop_cmd 1743 dev/ic/siop.c struct siop_softc *sc = (struct siop_softc *)siop_cmd->cmd_c.siop_sc; siop_cmd 1747 dev/ic/siop.c timeout_del(&siop_cmd->cmd_c.xs->stimeout); siop_cmd 1749 dev/ic/siop.c sc_print_addr(siop_cmd->cmd_c.xs->sc_link); siop_cmd 1751 dev/ic/siop.c siop_cmd->cmd_c.xs->cmd->opcode); siop_cmd 1756 dev/ic/siop.c siop_cmd->cmd_c.flags |= CMDFL_TIMEOUT; siop_cmd 1806 dev/ic/siop.c newcbd->cmds = malloc(sizeof(struct siop_cmd) * SIOP_NCMDPB, siop_cmd 1813 dev/ic/siop.c bzero(newcbd->cmds, sizeof(struct siop_cmd) * SIOP_NCMDPB); siop_cmd 239 dev/ic/siop_common.c siop_setuptables(siop_cmd) siop_cmd 240 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 243 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 244 dev/ic/siop_common.c struct scsi_xfer *xs = siop_cmd->xs; siop_cmd 251 dev/ic/siop_common.c siop_cmd->siop_tables->id = siop_htoc32(sc, sc->targets[target]->id); siop_cmd 252 dev/ic/siop_common.c memset(siop_cmd->siop_tables->msg_out, 0, siop_cmd 253 dev/ic/siop_common.c sizeof(siop_cmd->siop_tables->msg_out)); siop_cmd 255 dev/ic/siop_common.c if (siop_cmd->status == CMDST_SENSE) siop_cmd 256 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[0] = MSG_IDENTIFY(lun, 0); siop_cmd 267 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[0] = MSG_IDENTIFY(lun, 0); siop_cmd 269 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[0] = MSG_IDENTIFY(lun, 1); siop_cmd 270 dev/ic/siop_common.c siop_cmd->siop_tables->t_msgout.count = siop_htoc32(sc, msgoffset); siop_cmd 297 dev/ic/siop_common.c siop_ppr_msg(siop_cmd, msgoffset, sc->dt_minsync, siop_cmd 301 dev/ic/siop_common.c siop_wdtr_msg(siop_cmd, msgoffset, siop_cmd 305 dev/ic/siop_common.c siop_sdtr_msg(siop_cmd, msgoffset, sc->st_minsync, siop_cmd 313 dev/ic/siop_common.c siop_cmd->status != CMDST_SENSE) { siop_cmd 314 dev/ic/siop_common.c siop_cmd->flags |= CMDFL_TAG; siop_cmd 316 dev/ic/siop_common.c siop_cmd->siop_tables->status = siop_cmd 320 dev/ic/siop_common.c siop_cmd->status == CMDST_SENSE) { siop_cmd 321 dev/ic/siop_common.c bzero(siop_cmd->siop_tables->data, siop_cmd 322 dev/ic/siop_common.c sizeof(siop_cmd->siop_tables->data)); siop_cmd 323 dev/ic/siop_common.c for (i = 0; i < siop_cmd->dmamap_data->dm_nsegs; i++) { siop_cmd 324 dev/ic/siop_common.c siop_cmd->siop_tables->data[i].count = siop_cmd 326 dev/ic/siop_common.c siop_cmd->dmamap_data->dm_segs[i].ds_len); siop_cmd 327 dev/ic/siop_common.c siop_cmd->siop_tables->data[i].addr = siop_cmd 329 dev/ic/siop_common.c siop_cmd->dmamap_data->dm_segs[i].ds_addr); siop_cmd 335 dev/ic/siop_common.c siop_wdtr_neg(siop_cmd) siop_cmd 336 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 338 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 339 dev/ic/siop_common.c struct siop_common_target *siop_target = siop_cmd->siop_target; siop_cmd 340 dev/ic/siop_common.c int target = siop_cmd->xs->sc_link->target; siop_cmd 341 dev/ic/siop_common.c struct siop_common_xfer *tables = siop_cmd->siop_tables; siop_cmd 380 dev/ic/siop_common.c siop_sdtr_msg(siop_cmd, 0, sc->st_minsync, siop_cmd 408 dev/ic/siop_common.c siop_wdtr_msg(siop_cmd, 0, (siop_target->flags & TARF_ISWIDE) ? siop_cmd 415 dev/ic/siop_common.c siop_ppr_neg(siop_cmd) siop_cmd 416 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 418 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 419 dev/ic/siop_common.c struct siop_common_target *siop_target = siop_cmd->siop_target; siop_cmd 420 dev/ic/siop_common.c int target = siop_cmd->xs->sc_link->target; siop_cmd 421 dev/ic/siop_common.c struct siop_common_xfer *tables = siop_cmd->siop_tables; siop_cmd 529 dev/ic/siop_common.c siop_sdtr_neg(siop_cmd) siop_cmd 530 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 532 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 533 dev/ic/siop_common.c struct siop_common_target *siop_target = siop_cmd->siop_target; siop_cmd 534 dev/ic/siop_common.c int target = siop_cmd->xs->sc_link->target; siop_cmd 537 dev/ic/siop_common.c struct siop_common_xfer *tables = siop_cmd->siop_tables; siop_cmd 630 dev/ic/siop_common.c siop_sdtr_msg(siop_cmd, 0, sync, offset); siop_cmd 641 dev/ic/siop_common.c siop_sdtr_msg(siop_cmd, 0, 0, 0); siop_cmd 663 dev/ic/siop_common.c siop_sdtr_msg(siop_cmd, offset, ssync, soff) siop_cmd 664 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 668 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 0] = MSG_EXTENDED; siop_cmd 669 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 1] = MSG_EXT_SDTR_LEN; siop_cmd 670 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 2] = MSG_EXT_SDTR; siop_cmd 671 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 3] = ssync; siop_cmd 672 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 4] = soff; siop_cmd 673 dev/ic/siop_common.c siop_cmd->siop_tables->t_msgout.count = siop_cmd 674 dev/ic/siop_common.c siop_htoc32(siop_cmd->siop_sc, offset + MSG_EXT_SDTR_LEN + 2); siop_cmd 678 dev/ic/siop_common.c siop_wdtr_msg(siop_cmd, offset, wide) siop_cmd 679 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 683 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 0] = MSG_EXTENDED; siop_cmd 684 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 1] = MSG_EXT_WDTR_LEN; siop_cmd 685 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 2] = MSG_EXT_WDTR; siop_cmd 686 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 3] = wide; siop_cmd 687 dev/ic/siop_common.c siop_cmd->siop_tables->t_msgout.count = siop_cmd 688 dev/ic/siop_common.c siop_htoc32(siop_cmd->siop_sc, offset + MSG_EXT_WDTR_LEN + 2); siop_cmd 692 dev/ic/siop_common.c siop_ppr_msg(siop_cmd, offset, ssync, soff) siop_cmd 693 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 697 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 0] = MSG_EXTENDED; siop_cmd 698 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 1] = MSG_EXT_PPR_LEN; siop_cmd 699 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 2] = MSG_EXT_PPR; siop_cmd 700 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 3] = ssync; siop_cmd 701 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 4] = 0; /* reserved */ siop_cmd 702 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 5] = soff; siop_cmd 703 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 6] = 1; /* wide */ siop_cmd 704 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[offset + 7] = MSG_EXT_PPR_PROT_DT; siop_cmd 705 dev/ic/siop_common.c siop_cmd->siop_tables->t_msgout.count = siop_cmd 706 dev/ic/siop_common.c siop_htoc32(siop_cmd->siop_sc, offset + MSG_EXT_PPR_LEN + 2); siop_cmd 720 dev/ic/siop_common.c siop_ma(siop_cmd) siop_cmd 721 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 724 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 731 dev/ic/siop_common.c if ((siop_cmd->xs->flags & (SCSI_DATA_OUT | SCSI_DATA_IN)) siop_cmd 741 dev/ic/siop_common.c table = &siop_cmd->siop_tables->data[offset]; siop_cmd 747 dev/ic/siop_common.c if (siop_cmd->xs->flags & SCSI_DATA_OUT) { siop_cmd 768 dev/ic/siop_common.c if (siop_cmd->siop_target->flags & TARF_ISWIDE) { siop_cmd 782 dev/ic/siop_common.c siop_cmd->flags |= CMDFL_RESID; siop_cmd 783 dev/ic/siop_common.c siop_cmd->resid = dbc; siop_cmd 787 dev/ic/siop_common.c siop_sdp(siop_cmd, offset) siop_cmd 788 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 791 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 794 dev/ic/siop_common.c if ((siop_cmd->xs->flags & (SCSI_DATA_OUT | SCSI_DATA_IN)) siop_cmd 807 dev/ic/siop_common.c sc_print_addr(siop_cmd->xs->sc_link); siop_cmd 822 dev/ic/siop_common.c siop_update_resid(siop_cmd, offset); siop_cmd 828 dev/ic/siop_common.c if (siop_cmd->flags & CMDFL_RESID) { siop_cmd 829 dev/ic/siop_common.c siop_cmd->flags &= ~CMDFL_RESID; siop_cmd 830 dev/ic/siop_common.c table = &siop_cmd->siop_tables->data[offset]; siop_cmd 834 dev/ic/siop_common.c siop_ctoh32(sc, table->count) - siop_cmd->resid); siop_cmd 835 dev/ic/siop_common.c table->count = siop_htoc32(sc, siop_cmd->resid); siop_cmd 843 dev/ic/siop_common.c bcopy(&siop_cmd->siop_tables->data[offset], siop_cmd 844 dev/ic/siop_common.c &siop_cmd->siop_tables->data[0], siop_cmd 849 dev/ic/siop_common.c siop_update_resid(siop_cmd, offset) siop_cmd 850 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 853 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 857 dev/ic/siop_common.c if ((siop_cmd->xs->flags & (SCSI_DATA_OUT | SCSI_DATA_IN)) siop_cmd 866 dev/ic/siop_common.c siop_cmd->xs->resid -= siop_cmd 867 dev/ic/siop_common.c siop_ctoh32(sc, siop_cmd->siop_tables->data[i].count); siop_cmd 873 dev/ic/siop_common.c if (siop_cmd->flags & CMDFL_RESID) { siop_cmd 874 dev/ic/siop_common.c table = &siop_cmd->siop_tables->data[offset]; siop_cmd 875 dev/ic/siop_common.c siop_cmd->xs->resid -= siop_cmd 876 dev/ic/siop_common.c siop_ctoh32(sc, table->count) - siop_cmd->resid; siop_cmd 881 dev/ic/siop_common.c siop_iwr(siop_cmd) siop_cmd 882 dev/ic/siop_common.c struct siop_common_cmd *siop_cmd; siop_cmd 886 dev/ic/siop_common.c struct siop_common_softc *sc = siop_cmd->siop_sc; siop_cmd 890 dev/ic/siop_common.c if ((siop_cmd->siop_target->flags & TARF_ISWIDE) == 0) { siop_cmd 891 dev/ic/siop_common.c siop_cmd->siop_tables->t_msgout.count = siop_htoc32(sc, 1); siop_cmd 892 dev/ic/siop_common.c siop_cmd->siop_tables->msg_out[0] = MSG_MESSAGE_REJECT; siop_cmd 901 dev/ic/siop_common.c if ((siop_cmd->flags & CMDFL_RESID) == 0) siop_cmd 903 dev/ic/siop_common.c table = &siop_cmd->siop_tables->data[offset]; siop_cmd 905 dev/ic/siop_common.c if ((siop_cmd->flags & CMDFL_RESID) == 0) { siop_cmd 917 dev/ic/siop_common.c siop_cmd->flags |= CMDFL_RESID; siop_cmd 918 dev/ic/siop_common.c siop_cmd->resid = 1; siop_cmd 928 dev/ic/siop_common.c siop_cmd->resid--; siop_cmd 56 dev/ic/siopvar.h struct siop_cmd { siop_cmd 57 dev/ic/siopvar.h TAILQ_ENTRY (siop_cmd) next; siop_cmd 68 dev/ic/siopvar.h struct siop_cmd *cmds; siop_cmd 75 dev/ic/siopvar.h struct siop_cmd *active; /* active command */ siop_cmd 105 dev/ic/siopvar.h TAILQ_HEAD(cmd_list, siop_cmd);