Lines Matching refs:link
163 struct scsi_link *link = sa->sa_sc_link; in sdattach() local
167 SC_DEBUG(link, SDEV_DB2, ("sdattach:\n")); in sdattach()
175 sc->sc_link = link; in sdattach()
176 link->interpret_sense = sd_interpret_sense; in sdattach()
177 link->device_softc = sc; in sdattach()
179 if (ISSET(link->flags, SDEV_ATAPI) && ISSET(link->flags, in sdattach()
181 SET(link->quirks, SDEV_NOSYNCCACHE); in sdattach()
189 scsi_xsh_set(&sc->sc_xsh, link, sdstart); in sdattach()
192 if (!ISSET(link->flags, SDEV_UMASS)) in sdattach()
193 scsi_start(link, SSS_START, sd_autoconf); in sdattach()
199 if (ISSET(link->flags, SDEV_REMOVABLE)) in sdattach()
200 scsi_prevent(link, PR_PREVENT, sd_autoconf); in sdattach()
208 if (ISSET(link->flags, SDEV_REMOVABLE)) in sdattach()
209 scsi_prevent(link, PR_ALLOW, sd_autoconf); in sdattach()
220 if (ISSET(link->flags, SDEV_READONLY)) in sdattach()
247 struct scsi_link *link; in sdactivate() local
252 link = sc->sc_link; in sdactivate()
273 scsi_start(link, SSS_STOP, in sdactivate()
278 scsi_start(link, SSS_START, in sdactivate()
311 struct scsi_link *link; in sdopen() local
327 link = sc->sc_link; in sdopen()
329 SC_DEBUG(link, SDEV_DB1, in sdopen()
333 if (ISSET(flag, FWRITE) && ISSET(link->flags, SDEV_READONLY)) { in sdopen()
351 if (!ISSET(link->flags, SDEV_MEDIA_LOADED)) { in sdopen()
359 if (!ISSET(link->flags, SDEV_UMASS)) in sdopen()
360 scsi_start(link, SSS_START, (rawopen ? SCSI_SILENT : in sdopen()
375 SET(link->flags, SDEV_OPEN); in sdopen()
382 if (ISSET(link->flags, SDEV_REMOVABLE)) { in sdopen()
383 scsi_prevent(link, PR_PREVENT, SCSI_SILENT | in sdopen()
393 error = scsi_test_unit_ready(link, in sdopen()
409 SET(link->flags, SDEV_MEDIA_LOADED); in sdopen()
415 CLR(link->flags, SDEV_MEDIA_LOADED); in sdopen()
419 SC_DEBUG(link, SDEV_DB3, ("Params loaded\n")); in sdopen()
425 SC_DEBUG(link, SDEV_DB3, ("Disklabel loaded\n")); in sdopen()
432 SC_DEBUG(link, SDEV_DB3, ("open complete\n")); in sdopen()
441 if (ISSET(link->flags, SDEV_REMOVABLE)) in sdopen()
442 scsi_prevent(link, PR_ALLOW, SCSI_SILENT | in sdopen()
449 CLR(link->flags, SDEV_OPEN | SDEV_MEDIA_LOADED); in sdopen()
465 struct scsi_link *link; in sdclose() local
477 link = sc->sc_link; in sdclose()
492 if (ISSET(link->flags, SDEV_REMOVABLE)) in sdclose()
493 scsi_prevent(link, PR_ALLOW, in sdclose()
500 CLR(link->flags, SDEV_OPEN | SDEV_MEDIA_LOADED); in sdclose()
502 if (ISSET(link->flags, SDEV_EJECTING)) { in sdclose()
503 scsi_start(link, SSS_STOP|SSS_LOEJ, 0); in sdclose()
508 CLR(link->flags, SDEV_EJECTING); in sdclose()
528 struct scsi_link *link; in sdstrategy() local
541 link = sc->sc_link; in sdstrategy()
543 SC_DEBUG(link, SDEV_DB2, ("sdstrategy: %ld bytes @ blk %lld\n", in sdstrategy()
548 if (!ISSET(link->flags, SDEV_MEDIA_LOADED)) { in sdstrategy()
549 if (ISSET(link->flags, SDEV_OPEN)) in sdstrategy()
651 struct scsi_link *link = xs->sc_link; in sdstart() local
652 struct sd_softc *sc = link->device_softc; in sdstart()
663 if (!ISSET(link->flags, SDEV_MEDIA_LOADED)) { in sdstart()
688 if (!ISSET(link->flags, SDEV_ATAPI | SDEV_UMASS) && in sdstart()
689 (SID_ANSII_REV(&link->inqdata) < SCSI_REV_2) && in sdstart()
779 struct scsi_link *link; in sdminphys() local
790 link = sc->sc_link; in sdminphys()
803 if (!ISSET(link->flags, SDEV_ATAPI | SDEV_UMASS) && in sdminphys()
804 SID_ANSII_REV(&link->inqdata) < SCSI_REV_2) { in sdminphys()
811 if (link->bus->sb_adapter->dev_minphys != NULL) in sdminphys()
812 (*link->bus->sb_adapter->dev_minphys)(bp, link); in sdminphys()
838 struct scsi_link *link; in sdioctl() local
851 link = sc->sc_link; in sdioctl()
853 SC_DEBUG(link, SDEV_DB2, ("sdioctl 0x%lx\n", cmd)); in sdioctl()
858 if (!ISSET(link->flags, SDEV_MEDIA_LOADED)) { in sdioctl()
869 if (!ISSET(link->flags, SDEV_OPEN)) { in sdioctl()
923 error = scsi_prevent(link, in sdioctl()
934 if (!ISSET(link->flags, SDEV_REMOVABLE)) { in sdioctl()
938 SET(link->flags, SDEV_EJECTING); in sdioctl()
942 error = scsi_do_ioctl(link, cmd, addr, flag); in sdioctl()
972 error = scsi_do_ioctl(link, cmd, addr, flag); in sdioctl()
983 struct scsi_link *link; in sd_ioctl_inquiry() local
992 link = sc->sc_link; in sd_ioctl_inquiry()
995 scsi_strvis(di->vendor, link->inqdata.vendor, in sd_ioctl_inquiry()
996 sizeof(link->inqdata.vendor)); in sd_ioctl_inquiry()
997 scsi_strvis(di->product, link->inqdata.product, in sd_ioctl_inquiry()
998 sizeof(link->inqdata.product)); in sd_ioctl_inquiry()
999 scsi_strvis(di->revision, link->inqdata.revision, in sd_ioctl_inquiry()
1000 sizeof(link->inqdata.revision)); in sd_ioctl_inquiry()
1003 if (scsi_inquire_vpd(link, vpd, sizeof(*vpd), SI_PG_SERIAL, 0) == 0) in sd_ioctl_inquiry()
1015 struct scsi_link *link; in sd_ioctl_cache() local
1023 link = sc->sc_link; in sd_ioctl_cache()
1025 if (ISSET(link->flags, SDEV_UMASS)) in sd_ioctl_cache()
1029 rv = scsi_do_ioctl(link, cmd, (caddr_t)dkc, 0); in sd_ioctl_cache()
1041 rv = scsi_do_mode_sense(link, PAGE_CACHING_MODE, buf, (void **)&mode, in sd_ioctl_cache()
1076 rv = scsi_mode_select_big(link, SMS_PF, in sd_ioctl_cache()
1079 rv = scsi_mode_select(link, SMS_PF, in sd_ioctl_cache()
1099 struct scsi_link *link; in sdgetdisklabel() local
1104 link = sc->sc_link; in sdgetdisklabel()
1118 if (ISSET(link->flags, SDEV_UFI)) { in sdgetdisklabel()
1124 if ((link->inqdata.device & SID_TYPE) == T_OPTICAL) in sdgetdisklabel()
1137 viscpy(vendor, link->inqdata.vendor, 8); in sdgetdisklabel()
1138 viscpy(product, link->inqdata.product, 16); in sdgetdisklabel()
1173 struct scsi_link *link = xs->sc_link; in sd_interpret_sense() local
1181 if ((!ISSET(link->flags, SDEV_OPEN)) || in sd_interpret_sense()
1192 SC_DEBUG(link, SDEV_DB1, ("becoming ready.\n")); in sd_interpret_sense()
1197 SC_DEBUG(link, SDEV_DB1, ("spinning up\n")); in sd_interpret_sense()
1198 retval = scsi_start(link, SSS_START, in sd_interpret_sense()
1206 SC_DEBUG(link, SDEV_DB1, ("spin up failed (%#x)\n", in sd_interpret_sense()
1639 struct scsi_link *link = sc->sc_link; in sd_get_parms() local
1674 err = scsi_do_mode_sense(link, 0, buf, (void **)&page0, 1, in sd_get_parms()
1680 SET(link->flags, SDEV_READONLY); in sd_get_parms()
1682 SET(link->flags, SDEV_READONLY); in sd_get_parms()
1684 CLR(link->flags, SDEV_READONLY); in sd_get_parms()
1692 if (ISSET(link->flags, SDEV_UMASS) && dp.disksize > 0) in sd_get_parms()
1695 switch (link->inqdata.device & SID_TYPE) { in sd_get_parms()
1702 err = scsi_do_mode_sense(link, PAGE_REDUCED_GEOMETRY, buf, in sd_get_parms()
1706 scsi_parse_blkdesc(link, buf, big, NULL, NULL, in sd_get_parms()
1726 if (!ISSET(link->flags, SDEV_ATAPI) || in sd_get_parms()
1727 !ISSET(link->flags, SDEV_REMOVABLE)) in sd_get_parms()
1728 err = scsi_do_mode_sense(link, PAGE_RIGID_GEOMETRY, buf, in sd_get_parms()
1732 scsi_parse_blkdesc(link, buf, big, NULL, NULL, in sd_get_parms()
1744 err = scsi_do_mode_sense(link, PAGE_FLEX_GEOMETRY, buf, in sd_get_parms()
1748 scsi_parse_blkdesc(link, buf, big, NULL, NULL, in sd_get_parms()
1848 struct scsi_link *link; in sd_flush() local
1855 link = sc->sc_link; in sd_flush()
1857 if (ISSET(link->quirks, SDEV_NOSYNCCACHE)) in sd_flush()
1866 xs = scsi_xs_get(link, flags | SCSI_IGNORE_ILLEGAL_REQUEST); in sd_flush()
1868 SC_DEBUG(link, SDEV_DB1, ("cache sync failed to get xs\n")); in sd_flush()
1883 SC_DEBUG(link, SDEV_DB1, ("cache sync failed\n")); in sd_flush()