pScb 217 dev/ic/iha.c iha_setup_sg_list(sc, pScb)
pScb 219 dev/ic/iha.c struct iha_scb *pScb;
pScb 221 dev/ic/iha.c bus_dma_segment_t *segs = pScb->SCB_DataDma->dm_segs;
pScb 222 dev/ic/iha.c int i, error, nseg = pScb->SCB_DataDma->dm_nsegs;
pScb 225 dev/ic/iha.c error = bus_dmamap_load(sc->sc_dmat, pScb->SCB_SGDma,
pScb 226 dev/ic/iha.c pScb->SCB_SGList, sizeof(pScb->SCB_SGList), NULL,
pScb 227 dev/ic/iha.c (pScb->SCB_Flags & SCSI_NOSLEEP) ?
pScb 230 dev/ic/iha.c sc_print_addr(pScb->SCB_Xs->sc_link);
pScb 239 dev/ic/iha.c pScb->SCB_Flags |= FLAG_SG;
pScb 240 dev/ic/iha.c bzero(pScb->SCB_SGList, sizeof(pScb->SCB_SGList));
pScb 242 dev/ic/iha.c pScb->SCB_SGIdx = 0;
pScb 243 dev/ic/iha.c pScb->SCB_SGCount = nseg;
pScb 246 dev/ic/iha.c pScb->SCB_SGList[i].SG_Len = segs[i].ds_len;
pScb 247 dev/ic/iha.c pScb->SCB_SGList[i].SG_Addr = segs[i].ds_addr;
pScb 250 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma,
pScb 251 dev/ic/iha.c 0, sizeof(pScb->SCB_SGList), BUS_DMASYNC_PREWRITE);
pScb 266 dev/ic/iha.c struct iha_scb *pScb;
pScb 276 dev/ic/iha.c pScb = iha_pop_free_scb(sc);
pScb 277 dev/ic/iha.c if (pScb == NULL) {
pScb 283 dev/ic/iha.c pScb->SCB_Target = sc_link->target;
pScb 284 dev/ic/iha.c pScb->SCB_Lun = sc_link->lun;
pScb 285 dev/ic/iha.c pScb->SCB_Tcs = &sc->HCS_Tcs[pScb->SCB_Target];
pScb 286 dev/ic/iha.c pScb->SCB_Flags = xs->flags;
pScb 287 dev/ic/iha.c pScb->SCB_Ident = MSG_IDENTIFYFLAG |
pScb 288 dev/ic/iha.c (pScb->SCB_Lun & MSG_IDENTIFY_LUNMASK);
pScb 291 dev/ic/iha.c && ((pScb->SCB_Flags & SCSI_POLL) == 0))
pScb 292 dev/ic/iha.c pScb->SCB_Ident |= MSG_IDENTIFY_DISCFLAG;
pScb 294 dev/ic/iha.c pScb->SCB_Xs = xs;
pScb 295 dev/ic/iha.c pScb->SCB_CDBLen = xs->cmdlen;
pScb 296 dev/ic/iha.c bcopy(xs->cmd, &pScb->SCB_CDB, xs->cmdlen);
pScb 298 dev/ic/iha.c pScb->SCB_BufCharsLeft = pScb->SCB_BufChars = xs->datalen;
pScb 300 dev/ic/iha.c if ((pScb->SCB_Flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) != 0) {
pScb 302 dev/ic/iha.c if (pScb->SCB_Flags & SCSI_DATA_UIO)
pScb 304 dev/ic/iha.c pScb->SCB_DataDma, (struct uio *)xs->data,
pScb 305 dev/ic/iha.c (pScb->SCB_Flags & SCSI_NOSLEEP) ?
pScb 309 dev/ic/iha.c error = bus_dmamap_load(sc->sc_dmat, pScb->SCB_DataDma,
pScb 310 dev/ic/iha.c xs->data, pScb->SCB_BufChars, NULL,
pScb 311 dev/ic/iha.c (pScb->SCB_Flags & SCSI_NOSLEEP) ?
pScb 323 dev/ic/iha.c iha_append_free_scb(sc, pScb);
pScb 328 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_DataDma,
pScb 329 dev/ic/iha.c 0, pScb->SCB_BufChars,
pScb 330 dev/ic/iha.c (pScb->SCB_Flags & SCSI_DATA_IN) ?
pScb 333 dev/ic/iha.c error = iha_setup_sg_list(sc, pScb);
pScb 335 dev/ic/iha.c bus_dmamap_unload(sc->sc_dmat, pScb->SCB_DataDma);
pScb 347 dev/ic/iha.c timeout_set(&xs->stimeout, iha_timeout, pScb);
pScb 348 dev/ic/iha.c if ((pScb->SCB_Flags & SCSI_POLL) == 0)
pScb 351 dev/ic/iha.c iha_exec_scb(sc, pScb);
pScb 367 dev/ic/iha.c struct iha_scb *pScb;
pScb 406 dev/ic/iha.c for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++) {
pScb 407 dev/ic/iha.c pScb->SCB_TagId = i;
pScb 412 dev/ic/iha.c BUS_DMA_NOWAIT | BUS_DMA_ALLOCNOW, &pScb->SCB_DataDma);
pScb 421 dev/ic/iha.c sizeof(pScb->SCB_SGList), 1,
pScb 422 dev/ic/iha.c sizeof(pScb->SCB_SGList), 0,
pScb 424 dev/ic/iha.c &pScb->SCB_SGDma);
pScb 431 dev/ic/iha.c TAILQ_INSERT_TAIL(&sc->HCS_FreeScb, pScb, SCB_ScbList);
pScb 519 dev/ic/iha.c struct iha_scb *pScb;
pScb 524 dev/ic/iha.c pScb = TAILQ_FIRST(&sc->HCS_FreeScb);
pScb 526 dev/ic/iha.c if (pScb != NULL) {
pScb 527 dev/ic/iha.c pScb->SCB_Status = STATUS_RENT;
pScb 528 dev/ic/iha.c TAILQ_REMOVE(&sc->HCS_FreeScb, pScb, SCB_ScbList);
pScb 533 dev/ic/iha.c return (pScb);
pScb 542 dev/ic/iha.c iha_append_free_scb(sc, pScb)
pScb 544 dev/ic/iha.c struct iha_scb *pScb;
pScb 550 dev/ic/iha.c if (pScb == sc->HCS_ActScb)
pScb 553 dev/ic/iha.c pScb->SCB_Status = STATUS_QUEUED;
pScb 554 dev/ic/iha.c pScb->SCB_HaStat = HOST_OK;
pScb 555 dev/ic/iha.c pScb->SCB_TaStat = SCSI_OK;
pScb 557 dev/ic/iha.c pScb->SCB_NxtStat = 0;
pScb 558 dev/ic/iha.c pScb->SCB_Flags = 0;
pScb 559 dev/ic/iha.c pScb->SCB_Target = 0;
pScb 560 dev/ic/iha.c pScb->SCB_Lun = 0;
pScb 561 dev/ic/iha.c pScb->SCB_CDBLen = 0;
pScb 562 dev/ic/iha.c pScb->SCB_Ident = 0;
pScb 563 dev/ic/iha.c pScb->SCB_TagMsg = 0;
pScb 565 dev/ic/iha.c pScb->SCB_BufChars = 0;
pScb 566 dev/ic/iha.c pScb->SCB_BufCharsLeft = 0;
pScb 568 dev/ic/iha.c pScb->SCB_Xs = NULL;
pScb 569 dev/ic/iha.c pScb->SCB_Tcs = NULL;
pScb 571 dev/ic/iha.c bzero(pScb->SCB_CDB, sizeof(pScb->SCB_CDB));
pScb 577 dev/ic/iha.c TAILQ_INSERT_TAIL(&sc->HCS_FreeScb, pScb, SCB_ScbList);
pScb 583 dev/ic/iha.c iha_append_pend_scb(sc, pScb)
pScb 585 dev/ic/iha.c struct iha_scb *pScb;
pScb 589 dev/ic/iha.c if (pScb == sc->HCS_ActScb)
pScb 592 dev/ic/iha.c pScb->SCB_Status = STATUS_QUEUED;
pScb 594 dev/ic/iha.c TAILQ_INSERT_TAIL(&sc->HCS_PendScb, pScb, SCB_ScbList);
pScb 598 dev/ic/iha.c iha_push_pend_scb(sc, pScb)
pScb 600 dev/ic/iha.c struct iha_scb *pScb;
pScb 606 dev/ic/iha.c if (pScb == sc->HCS_ActScb)
pScb 609 dev/ic/iha.c pScb->SCB_Status = STATUS_QUEUED;
pScb 611 dev/ic/iha.c TAILQ_INSERT_HEAD(&sc->HCS_PendScb, pScb, SCB_ScbList);
pScb 626 dev/ic/iha.c struct iha_scb *pScb;
pScb 633 dev/ic/iha.c pScb = NULL;
pScb 636 dev/ic/iha.c TAILQ_FOREACH(pScb, &sc->HCS_PendScb, SCB_ScbList) {
pScb 637 dev/ic/iha.c if ((pScb->SCB_Flags & SCSI_RESET) != 0)
pScb 641 dev/ic/iha.c pTcs = pScb->SCB_Tcs;
pScb 643 dev/ic/iha.c if ((pScb->SCB_TagMsg) != 0) {
pScb 652 dev/ic/iha.c } else if (pScb->SCB_CDB[0] == REQUEST_SENSE) {
pScb 674 dev/ic/iha.c return (pScb);
pScb 678 dev/ic/iha.c iha_mark_busy_scb(pScb)
pScb 679 dev/ic/iha.c struct iha_scb *pScb;
pScb 685 dev/ic/iha.c pScb->SCB_Status = STATUS_BUSY;
pScb 687 dev/ic/iha.c if (pScb->SCB_TagMsg == 0)
pScb 688 dev/ic/iha.c pScb->SCB_Tcs->TCS_NonTagScb = pScb;
pScb 690 dev/ic/iha.c pScb->SCB_Tcs->TCS_TagCnt++;
pScb 696 dev/ic/iha.c iha_append_done_scb(sc, pScb, hastat)
pScb 698 dev/ic/iha.c struct iha_scb *pScb;
pScb 706 dev/ic/iha.c if (pScb->SCB_Xs != NULL)
pScb 707 dev/ic/iha.c timeout_del(&pScb->SCB_Xs->stimeout);
pScb 709 dev/ic/iha.c if (pScb == sc->HCS_ActScb)
pScb 712 dev/ic/iha.c pTcs = pScb->SCB_Tcs;
pScb 714 dev/ic/iha.c if (pScb->SCB_TagMsg != 0) {
pScb 717 dev/ic/iha.c } else if (pTcs->TCS_NonTagScb == pScb)
pScb 720 dev/ic/iha.c pScb->SCB_Status = STATUS_QUEUED;
pScb 721 dev/ic/iha.c pScb->SCB_HaStat = hastat;
pScb 723 dev/ic/iha.c TAILQ_INSERT_TAIL(&sc->HCS_DoneScb, pScb, SCB_ScbList);
pScb 732 dev/ic/iha.c struct iha_scb *pScb;
pScb 737 dev/ic/iha.c pScb = TAILQ_FIRST(&sc->HCS_DoneScb);
pScb 739 dev/ic/iha.c if (pScb != NULL) {
pScb 740 dev/ic/iha.c pScb->SCB_Status = STATUS_RENT;
pScb 741 dev/ic/iha.c TAILQ_REMOVE(&sc->HCS_DoneScb, pScb, SCB_ScbList);
pScb 746 dev/ic/iha.c return (pScb);
pScb 760 dev/ic/iha.c struct iha_scb *pScb, *next;
pScb 767 dev/ic/iha.c for (pScb = TAILQ_FIRST(&sc->HCS_PendScb); pScb != NULL; pScb = next) {
pScb 768 dev/ic/iha.c next = TAILQ_NEXT(pScb, SCB_ScbList);
pScb 769 dev/ic/iha.c if (pScb->SCB_Xs == xs) {
pScb 770 dev/ic/iha.c TAILQ_REMOVE(&sc->HCS_PendScb, pScb, SCB_ScbList);
pScb 771 dev/ic/iha.c iha_append_done_scb(sc, pScb, hastat);
pScb 782 dev/ic/iha.c for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++)
pScb 783 dev/ic/iha.c switch (pScb->SCB_Status) {
pScb 786 dev/ic/iha.c if (pScb->SCB_Xs == xs) {
pScb 787 dev/ic/iha.c iha_append_done_scb(sc, pScb, hastat);
pScb 807 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 809 dev/ic/iha.c if (pScb != NULL)
pScb 810 dev/ic/iha.c iha_append_done_scb(sc, pScb, HOST_BAD_PHAS);
pScb 822 dev/ic/iha.c iha_push_sense_request(sc, pScb)
pScb 824 dev/ic/iha.c struct iha_scb *pScb;
pScb 830 dev/ic/iha.c if ((pScb->SCB_Flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) != 0) {
pScb 831 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_DataDma,
pScb 832 dev/ic/iha.c 0, pScb->SCB_BufChars,
pScb 833 dev/ic/iha.c ((pScb->SCB_Flags & SCSI_DATA_IN) ?
pScb 835 dev/ic/iha.c bus_dmamap_unload(sc->sc_dmat, pScb->SCB_DataDma);
pScb 837 dev/ic/iha.c pScb->SCB_Flags &= ~(SCSI_DATA_IN | SCSI_DATA_OUT);
pScb 839 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_SG) != 0) {
pScb 840 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma,
pScb 841 dev/ic/iha.c 0, sizeof(pScb->SCB_SGList),
pScb 843 dev/ic/iha.c bus_dmamap_unload(sc->sc_dmat, pScb->SCB_SGDma);
pScb 845 dev/ic/iha.c pScb->SCB_Flags &= ~FLAG_SG;
pScb 848 dev/ic/iha.c pScb->SCB_BufChars = sizeof(pScb->SCB_ScsiSenseData);
pScb 849 dev/ic/iha.c pScb->SCB_BufCharsLeft = sizeof(pScb->SCB_ScsiSenseData);
pScb 850 dev/ic/iha.c bzero(&pScb->SCB_ScsiSenseData, sizeof(pScb->SCB_ScsiSenseData));
pScb 852 dev/ic/iha.c error = bus_dmamap_load(sc->sc_dmat, pScb->SCB_DataDma,
pScb 853 dev/ic/iha.c &pScb->SCB_ScsiSenseData,
pScb 854 dev/ic/iha.c sizeof(pScb->SCB_ScsiSenseData), NULL,
pScb 855 dev/ic/iha.c (pScb->SCB_Flags & SCSI_NOSLEEP) ?
pScb 858 dev/ic/iha.c sc_print_addr(pScb->SCB_Xs->sc_link);
pScb 863 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_DataDma,
pScb 864 dev/ic/iha.c 0, pScb->SCB_BufChars, BUS_DMASYNC_PREREAD);
pScb 867 dev/ic/iha.c pScb->SCB_Flags &= SCSI_POLL | SCSI_NOSLEEP;
pScb 868 dev/ic/iha.c pScb->SCB_Flags |= FLAG_RSENS | SCSI_DATA_IN;
pScb 870 dev/ic/iha.c error = iha_setup_sg_list(sc, pScb);
pScb 874 dev/ic/iha.c pScb->SCB_Ident &= ~MSG_IDENTIFY_DISCFLAG;
pScb 876 dev/ic/iha.c pScb->SCB_TagMsg = 0;
pScb 877 dev/ic/iha.c pScb->SCB_TaStat = SCSI_OK;
pScb 879 dev/ic/iha.c bzero(pScb->SCB_CDB, sizeof(pScb->SCB_CDB));
pScb 881 dev/ic/iha.c sensecmd = (struct scsi_sense *)pScb->SCB_CDB;
pScb 882 dev/ic/iha.c pScb->SCB_CDBLen = sizeof(*sensecmd);
pScb 884 dev/ic/iha.c sensecmd->byte2 = pScb->SCB_Xs->sc_link->lun << 5;
pScb 885 dev/ic/iha.c sensecmd->length = sizeof(pScb->SCB_ScsiSenseData);
pScb 887 dev/ic/iha.c if ((pScb->SCB_Flags & SCSI_POLL) == 0)
pScb 888 dev/ic/iha.c timeout_add(&pScb->SCB_Xs->stimeout,
pScb 889 dev/ic/iha.c (pScb->SCB_Xs->timeout/1000) * hz);
pScb 891 dev/ic/iha.c iha_push_pend_scb(sc, pScb);
pScb 908 dev/ic/iha.c struct iha_scb *pScb;
pScb 914 dev/ic/iha.c while ((pScb = iha_pop_done_scb(sc)) != NULL) {
pScb 916 dev/ic/iha.c switch (pScb->SCB_TaStat) {
pScb 920 dev/ic/iha.c pScb->SCB_Tcs->TCS_Flags &=
pScb 923 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_RSENS) != 0)
pScb 925 dev/ic/iha.c pScb->SCB_HaStat = HOST_BAD_PHAS;
pScb 926 dev/ic/iha.c else if (iha_push_sense_request(sc, pScb) != 0)
pScb 928 dev/ic/iha.c pScb->SCB_HaStat = HOST_BAD_PHAS;
pScb 935 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_RSENS) != 0)
pScb 941 dev/ic/iha.c pScb->SCB_TaStat = SCSI_CHECK;
pScb 945 dev/ic/iha.c iha_done_scb(sc, pScb);
pScb 970 dev/ic/iha.c struct iha_scb *pScb;
pScb 1013 dev/ic/iha.c if ((pScb = iha_find_pend_scb(sc)) == NULL)
pScb 1016 dev/ic/iha.c pTcs = pScb->SCB_Tcs;
pScb 1020 dev/ic/iha.c (sc->sc_link.adapter_target << 4) | pScb->SCB_Target);
pScb 1022 dev/ic/iha.c if ((pScb->SCB_Flags & SCSI_RESET) == 0) {
pScb 1028 dev/ic/iha.c iha_select(sc, iot, ioh, pScb, SELATNSTOP);
pScb 1030 dev/ic/iha.c else if (pScb->SCB_TagMsg != 0)
pScb 1031 dev/ic/iha.c iha_select(sc, iot, ioh, pScb, SEL_ATN3);
pScb 1034 dev/ic/iha.c iha_select(sc, iot, ioh, pScb, SEL_ATN);
pScb 1037 dev/ic/iha.c iha_select(sc, iot, ioh, pScb, SELATNSTOP);
pScb 1038 dev/ic/iha.c pScb->SCB_NxtStat = 8;
pScb 1041 dev/ic/iha.c if ((pScb->SCB_Flags & SCSI_POLL) != 0) {
pScb 1042 dev/ic/iha.c for (i = pScb->SCB_Xs->timeout; i > 0; i--) {
pScb 1058 dev/ic/iha.c iha_timeout(pScb);
pScb 1060 dev/ic/iha.c else if ((pScb->SCB_CDB[0] == INQUIRY)
pScb 1061 dev/ic/iha.c && (pScb->SCB_Lun == 0)
pScb 1062 dev/ic/iha.c && (pScb->SCB_HaStat == HOST_OK)
pScb 1063 dev/ic/iha.c && (pScb->SCB_TaStat == SCSI_OK))
pScb 1064 dev/ic/iha.c iha_print_info(sc, pScb->SCB_Target);
pScb 1079 dev/ic/iha.c iha_data_over_run(pScb)
pScb 1080 dev/ic/iha.c struct iha_scb *pScb;
pScb 1082 dev/ic/iha.c switch (pScb->SCB_CDB[0]) {
pScb 1213 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1217 dev/ic/iha.c iha_mark_busy_scb(pScb);
pScb 1219 dev/ic/iha.c pTcs = pScb->SCB_Tcs;
pScb 1236 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SFIFO, pScb->SCB_Ident);
pScb 1238 dev/ic/iha.c if (pScb->SCB_TagMsg != 0) {
pScb 1240 dev/ic/iha.c pScb->SCB_TagMsg);
pScb 1242 dev/ic/iha.c pScb->SCB_TagId);
pScb 1274 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1276 dev/ic/iha.c iha_mark_busy_scb(pScb);
pScb 1278 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SCONFIG0, pScb->SCB_Tcs->TCS_SConfig0);
pScb 1301 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1308 dev/ic/iha.c pScb->SCB_CDB, pScb->SCB_CDBLen);
pScb 1318 dev/ic/iha.c pScb->SCB_NxtStat = 3;
pScb 1329 dev/ic/iha.c flags = pScb->SCB_Tcs->TCS_Flags;
pScb 1339 dev/ic/iha.c sc_print_addr(pScb->SCB_Xs->sc_link);
pScb 1360 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1362 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_DIR) == FLAG_DIR)
pScb 1366 dev/ic/iha.c if (pScb->SCB_BufCharsLeft == 0)
pScb 1371 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_DIR) != 0)
pScb 1372 dev/ic/iha.c pScb->SCB_HaStat = iha_data_over_run(pScb);
pScb 1378 dev/ic/iha.c pScb->SCB_NxtStat = 4;
pScb 1385 dev/ic/iha.c pScb->SCB_BufCharsLeft = 0;
pScb 1386 dev/ic/iha.c pScb->SCB_HaStat = HOST_SPERR;
pScb 1399 dev/ic/iha.c return (iha_xfer_data(pScb, iot, ioh, SCSI_DATA_IN));
pScb 1402 dev/ic/iha.c return (iha_xfer_data(pScb, iot, ioh, SCSI_DATA_OUT));
pScb 1423 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1439 dev/ic/iha.c pScb->SCB_HaStat = HOST_SPERR;
pScb 1451 dev/ic/iha.c period = pScb->SCB_Tcs->TCS_JS_Period;
pScb 1477 dev/ic/iha.c pScb->SCB_BufCharsLeft = 0;
pScb 1483 dev/ic/iha.c xcnt = pScb->SCB_BufCharsLeft - cnt; /* xcnt == bytes xferred */
pScb 1484 dev/ic/iha.c pScb->SCB_BufCharsLeft = cnt; /* cnt == bytes left */
pScb 1486 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma,
pScb 1487 dev/ic/iha.c 0, sizeof(pScb->SCB_SGList), BUS_DMASYNC_POSTWRITE);
pScb 1489 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_SG) != 0) {
pScb 1490 dev/ic/iha.c pSg = &pScb->SCB_SGList[pScb->SCB_SGIdx];
pScb 1491 dev/ic/iha.c for (; pScb->SCB_SGIdx < pScb->SCB_SGCount; pSg++, pScb->SCB_SGIdx++) {
pScb 1499 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma,
pScb 1500 dev/ic/iha.c 0, sizeof(pScb->SCB_SGList),
pScb 1567 dev/ic/iha.c struct iha_scb *pScb;
pScb 1574 dev/ic/iha.c pScb = sc->HCS_ActScb;
pScb 1577 dev/ic/iha.c iha_append_done_scb(sc, pScb, HOST_OK);
pScb 1579 dev/ic/iha.c iha_reset_tcs(pScb->SCB_Tcs, sc->HCS_SConf1);
pScb 1581 dev/ic/iha.c tar = pScb->SCB_Target;
pScb 1582 dev/ic/iha.c for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++)
pScb 1583 dev/ic/iha.c if (pScb->SCB_Target == tar)
pScb 1584 dev/ic/iha.c switch (pScb->SCB_Status) {
pScb 1587 dev/ic/iha.c pScb, HOST_DEV_RST);
pScb 1591 dev/ic/iha.c iha_push_pend_scb(sc, pScb);
pScb 1612 dev/ic/iha.c iha_xfer_data(pScb, iot, ioh, direction)
pScb 1613 dev/ic/iha.c struct iha_scb *pScb;
pScb 1621 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_DIR) != direction)
pScb 1624 dev/ic/iha.c bus_space_write_4(iot, ioh, TUL_STCNT0, pScb->SCB_BufCharsLeft);
pScb 1626 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_SG) == 0) {
pScb 1627 dev/ic/iha.c xferaddr = pScb->SCB_DataDma->dm_segs[0].ds_addr
pScb 1628 dev/ic/iha.c + (pScb->SCB_BufChars - pScb->SCB_BufCharsLeft);
pScb 1629 dev/ic/iha.c xferlen = pScb->SCB_BufCharsLeft;
pScb 1633 dev/ic/iha.c xferaddr = pScb->SCB_SGDma->dm_segs[0].ds_addr
pScb 1634 dev/ic/iha.c + (pScb->SCB_SGIdx * sizeof(struct iha_sg_element));
pScb 1635 dev/ic/iha.c xferlen = (pScb->SCB_SGCount - pScb->SCB_SGIdx)
pScb 1647 dev/ic/iha.c pScb->SCB_NxtStat = 5;
pScb 1658 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1660 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_DIR) != 0)
pScb 1661 dev/ic/iha.c pScb->SCB_HaStat = HOST_DO_DU;
pScb 1664 dev/ic/iha.c if ((pScb->SCB_Tcs->TCS_JS_Period & PERIOD_WIDE_SCSI) != 0)
pScb 1690 dev/ic/iha.c struct iha_scb *pScb = sc->HCS_ActScb;
pScb 1692 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_DIR) != 0)
pScb 1693 dev/ic/iha.c pScb->SCB_HaStat = HOST_DO_DU;
pScb 1696 dev/ic/iha.c if ((pScb->SCB_Tcs->TCS_JS_Period & PERIOD_WIDE_SCSI) != 0)
pScb 1725 dev/ic/iha.c struct iha_scb *pScb;
pScb 1732 dev/ic/iha.c pScb = sc->HCS_ActScb;
pScb 1734 dev/ic/iha.c pScb->SCB_TaStat = bus_space_read_1(iot, ioh, TUL_SFIFO);
pScb 1763 dev/ic/iha.c if ((pScb->SCB_TaStat
pScb 1775 dev/ic/iha.c if ((pScb->SCB_TaStat
pScb 1798 dev/ic/iha.c struct iha_scb *pScb;
pScb 1804 dev/ic/iha.c pScb = sc->HCS_ActScb;
pScb 1806 dev/ic/iha.c if (pScb != NULL) {
pScb 1807 dev/ic/iha.c if (pScb->SCB_Status == STATUS_SELECT)
pScb 1809 dev/ic/iha.c iha_append_done_scb(sc, pScb, HOST_SEL_TOUT);
pScb 1812 dev/ic/iha.c iha_append_done_scb(sc, pScb, HOST_BAD_PHAS);
pScb 1821 dev/ic/iha.c struct iha_scb *pScb;
pScb 1829 dev/ic/iha.c for (i = 0, pScb = sc->HCS_Scb; i < IHA_MAX_SCB; i++, pScb++)
pScb 1830 dev/ic/iha.c switch (pScb->SCB_Status) {
pScb 1832 dev/ic/iha.c iha_append_done_scb(sc, pScb, HOST_SCSI_RST);
pScb 1836 dev/ic/iha.c iha_push_pend_scb(sc, pScb);
pScb 1858 dev/ic/iha.c struct iha_scb *pScb;
pScb 1880 dev/ic/iha.c pScb = pTcs->TCS_NonTagScb;
pScb 1920 dev/ic/iha.c pScb = &sc->HCS_Scb[tag];
pScb 1925 dev/ic/iha.c if ((pScb->SCB_Target != target)
pScb 1926 dev/ic/iha.c || (pScb->SCB_Lun != lun)
pScb 1927 dev/ic/iha.c || (pScb->SCB_Status != STATUS_BUSY)) {
pScb 1933 dev/ic/iha.c sc->HCS_ActScb = pScb;
pScb 2350 dev/ic/iha.c iha_select(sc, iot, ioh, pScb, select_type)
pScb 2354 dev/ic/iha.c struct iha_scb *pScb;
pScb 2361 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SFIFO, pScb->SCB_Ident);
pScb 2363 dev/ic/iha.c pScb->SCB_CDB, pScb->SCB_CDBLen);
pScb 2365 dev/ic/iha.c pScb->SCB_NxtStat = 2;
pScb 2369 dev/ic/iha.c pScb->SCB_NxtStat = 1;
pScb 2373 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SFIFO, pScb->SCB_Ident);
pScb 2374 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SFIFO, pScb->SCB_TagMsg);
pScb 2375 dev/ic/iha.c bus_space_write_1(iot, ioh, TUL_SFIFO, pScb->SCB_TagId);
pScb 2377 dev/ic/iha.c bus_space_write_multi_1(iot, ioh, TUL_SFIFO, pScb->SCB_CDB,
pScb 2378 dev/ic/iha.c pScb->SCB_CDBLen);
pScb 2380 dev/ic/iha.c pScb->SCB_NxtStat = 2;
pScb 2385 dev/ic/iha.c sc_print_addr(pScb->SCB_Xs->sc_link);
pScb 2393 dev/ic/iha.c TAILQ_REMOVE(&sc->HCS_PendScb, pScb, SCB_ScbList);
pScb 2396 dev/ic/iha.c pScb->SCB_Status = STATUS_SELECT;
pScb 2398 dev/ic/iha.c sc->HCS_ActScb = pScb;
pScb 2479 dev/ic/iha.c iha_done_scb(sc, pScb)
pScb 2481 dev/ic/iha.c struct iha_scb *pScb;
pScb 2484 dev/ic/iha.c struct scsi_xfer *xs = pScb->SCB_Xs;
pScb 2489 dev/ic/iha.c xs->status = pScb->SCB_TaStat;
pScb 2491 dev/ic/iha.c if ((pScb->SCB_Flags & (SCSI_DATA_IN | SCSI_DATA_OUT)) != 0) {
pScb 2492 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_DataDma,
pScb 2493 dev/ic/iha.c 0, pScb->SCB_BufChars,
pScb 2494 dev/ic/iha.c ((pScb->SCB_Flags & SCSI_DATA_IN) ?
pScb 2496 dev/ic/iha.c bus_dmamap_unload(sc->sc_dmat, pScb->SCB_DataDma);
pScb 2498 dev/ic/iha.c if ((pScb->SCB_Flags & FLAG_SG) != 0) {
pScb 2499 dev/ic/iha.c bus_dmamap_sync(sc->sc_dmat, pScb->SCB_SGDma,
pScb 2500 dev/ic/iha.c 0, sizeof(pScb->SCB_SGList),
pScb 2502 dev/ic/iha.c bus_dmamap_unload(sc->sc_dmat, pScb->SCB_SGDma);
pScb 2505 dev/ic/iha.c switch (pScb->SCB_HaStat) {
pScb 2507 dev/ic/iha.c switch (pScb->SCB_TaStat) {
pScb 2512 dev/ic/iha.c xs->resid = pScb->SCB_BufCharsLeft;
pScb 2525 dev/ic/iha.c s1 = &pScb->SCB_ScsiSenseData;
pScb 2568 dev/ic/iha.c iha_append_free_scb(sc, pScb);
pScb 2575 dev/ic/iha.c struct iha_scb *pScb = (struct iha_scb *)arg;
pScb 2576 dev/ic/iha.c struct scsi_xfer *xs = pScb->SCB_Xs;
pScb 2586 dev/ic/iha.c iha_exec_scb(sc, pScb)
pScb 2588 dev/ic/iha.c struct iha_scb *pScb;
pScb 2596 dev/ic/iha.c if (((pScb->SCB_Flags & SCSI_RESET) != 0)
pScb 2597 dev/ic/iha.c || (pScb->SCB_CDB[0] == REQUEST_SENSE))
pScb 2598 dev/ic/iha.c iha_push_pend_scb(sc, pScb); /* Insert SCB at head of Pend */
pScb 2600 dev/ic/iha.c iha_append_pend_scb(sc, pScb); /* Append SCB to tail of Pend */