Lines Matching defs:hs

107 	struct scsi_softc *hs;
113 hs = &scsi_softc[ctlr];
114 hs->sc_ctlr = ctlr;
115 hs->sc_spc = addr;
117 hs->sc_flags = 0;
118 hs->sc_phase = BUS_FREE_PHASE;
119 hs->sc_target = SCSI_ID;
121 hs->sc_cdb = NULL;
122 hs->sc_cdblen = 0;
123 hs->sc_buf = NULL;
124 hs->sc_len = 0;
125 hs->sc_lock = NULL;
127 hs->sc_stat = 0;
128 hs->sc_msg[0] = 0;
130 screset(hs);
133 scprobe(hs, id, 0);
139 screset(struct scsi_softc *hs)
141 struct scsidevice *hd = hs->sc_spc;
143 printf("sc%d at 0x%08lx: ", hs->sc_ctlr, (u_long)hs->sc_spc);
252 scprobe(struct scsi_softc *hs, uint target, uint lun)
259 if (!scident(hs->sc_ctlr, target, lun, &inqbuf, capbuf))
362 struct scsi_softc *hs;
368 hs = &scsi_softc[ctlr];
369 hd = hs->sc_spc;
376 hs->sc_flags = 0;
377 hs->sc_phase = ARB_SEL_PHASE;
378 hs->sc_target = target;
380 hs->sc_cdb = cdb;
381 hs->sc_cdblen = cdblen;
382 hs->sc_buf = buf;
383 hs->sc_len = len;
384 hs->sc_lock = lock;
386 hs->sc_stat = 0;
387 hs->sc_msg[0] = 0;
389 *(hs->sc_lock) = SC_IN_PROGRESS;
390 issue_select(hd, hs->sc_target);
398 struct scsi_softc *hs = &scsi_softc[ctlr];
399 int status = hs->sc_stat;
401 hs->sc_flags = 0;
402 hs->sc_phase = BUS_FREE_PHASE;
403 hs->sc_target = SCSI_ID;
405 hs->sc_cdb = NULL;
406 hs->sc_cdblen = 0;
407 hs->sc_buf = NULL;
408 hs->sc_len = 0;
409 hs->sc_lock = NULL;
411 hs->sc_stat = 0;
412 hs->sc_msg[0] = 0;
418 scabort(struct scsi_softc *hs)
420 struct scsidevice *hd = hs->sc_spc;
424 hs->sc_ctlr, hd->scsi_psns, hd->scsi_ssts, hd->scsi_ints);
450 hd->scsi_pctl = hs->sc_phase = hd->scsi_psns & PHASE;
474 if (len < 0 && hs)
476 hs->sc_ctlr, hd->scsi_psns, hd->scsi_ssts);
652 struct scsi_softc *hs;
660 hs = &scsi_softc[i];
661 hd = hs->sc_spc;
677 ints, hd->scsi_ssts, hd->scsi_pctl, hd->scsi_psns, hs->sc_phase);
680 if (hs->sc_phase == BUS_FREE_PHASE) {
685 hs->sc_target = i;
686 *(hs->sc_lock) = SC_IN_PROGRESS;
690 if ((hs->sc_msg[0] == MSG_CMD_COMPLETE) ||
691 (hs->sc_msg[0] == MSG_DISCONNECT)) {
692 hs->sc_phase = BUS_FREE_PHASE;
693 hs->sc_target = SCSI_ID;
694 if (hs->sc_msg[0] == MSG_CMD_COMPLETE) {
696 *(hs->sc_lock) = SC_IO_COMPLETE;
699 *(hs->sc_lock) = SC_DISCONNECTED;
706 if (hs->sc_phase == BUS_FREE_PHASE)
708 else if (hs->sc_phase == MESG_IN_PHASE) {
711 hs->sc_phase = hd->scsi_psns & PHASE;
714 if (hs->sc_flags & SC_SEL_TIMEOUT)
715 hs->sc_flags &= ~SC_SEL_TIMEOUT;
717 if (hs->sc_phase != MESG_IN_PHASE)
720 if (hs->sc_phase == ARB_SEL_PHASE) {
721 if (hs->sc_flags & SC_SEL_TIMEOUT) {
722 hs->sc_flags &= ~SC_SEL_TIMEOUT;
723 hs->sc_phase = BUS_FREE_PHASE;
724 hs->sc_target = SCSI_ID;
726 *(hs->sc_lock) = SC_DEV_NOT_FOUND;
731 hs->sc_flags |= SC_SEL_TIMEOUT;
754 hs->sc_phase = hd->scsi_psns & PHASE;
756 if ((hs->sc_phase == DATA_OUT_PHASE) ||
757 (hs->sc_phase == DATA_IN_PHASE)) {
758 len = hs->sc_len;
759 buf = hs->sc_buf;
760 } else if (hs->sc_phase == CMD_PHASE) {
761 len = hs->sc_cdblen;
762 buf = hs->sc_cdb;
763 } else if (hs->sc_phase == STATUS_PHASE) {
765 buf = &hs->sc_stat;
768 buf = hs->sc_msg;
771 ixfer_start(hd, len, hs->sc_phase, 0);
772 if (hs->sc_phase & PHASE_IO)
784 scabort(hs);
786 *(hs->sc_lock) = SC_IO_FAILED;