Lines Matching refs:path

174 	CAM_DEBUG((softc)->periph->path, CAM_DEBUG_PROBE,		\
567 static void probe_purge_old(struct cam_path *path,
574 struct cam_path *path, cam_flags flags,
580 static void scsi_devise_transport(struct cam_path *path);
582 struct cam_path *path,
584 static void scsi_toggle_tags(struct cam_path *path);
643 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe started\n"));
644 scsi_devise_transport(periph->path);
651 cam_periph_freeze_after_event(periph, &periph->path->bus->last_reset,
667 xpt_setup_ccb(&cpi.ccb_h, periph->path, CAM_PRIORITY_NONE);
689 if (((ccb->ccb_h.path->device->flags & CAM_DEV_UNCONFIGURED) == 0)
720 CAM_DEBUG(start_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probestart\n"));
747 inq_buf = &periph->path->device->inq_data;
757 if (((periph->path->device->flags & CAM_DEV_UNCONFIGURED) == 0)
764 if (periph->path->device->serial_num_len > 0) {
766 periph->path->device->serial_num,
767 periph->path->device->serial_num_len);
791 xpt_print(periph->path, "malloc failure- skipping Basic"
818 rp = malloc(periph->path->target->rpl_size,
822 inq_buf = &periph->path->device->inq_data;
823 xpt_print(periph->path,
833 RPL_REPORT_DEFAULT, rp, periph->path->target->rpl_size,
860 xpt_print(periph->path, "Unable to mode sense control page - "
871 device = periph->path->device;
896 cam_freeze_devq(periph->path);
959 device = periph->path->device;
999 xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NONE);
1021 xpt_setup_ccb(&cts.ccb_h, periph->path, CAM_PRIORITY_NONE);
1027 xpt_print(periph->path,
1034 xpt_print(periph->path, "not SPI transport\n");
1045 xpt_print(periph->path, "no sync rate known\n");
1063 xpt_print(periph->path, "no sync rate available\n");
1069 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1089 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1097 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1107 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1122 struct cam_path *path;
1126 CAM_DEBUG(done_ccb->ccb_h.path, CAM_DEBUG_TRACE, ("probedone\n"));
1129 path = done_ccb->ccb_h.path;
1141 cam_release_devq(path, 0, 0, 0, FALSE);
1146 xpt_release_devq(done_ccb->ccb_h.path,
1155 cam_release_devq(path, 0, 0, 0, FALSE);
1165 path->device->flags |= CAM_DEV_INQUIRY_DATA_VALID;
1166 scsi_find_quirk(path->device);
1167 inq_buf = &path->device->inq_data;
1196 scsi_devise_transport(path);
1198 if (path->device->lun_id == 0 &&
1200 (SCSI_QUIRK(path->device)->quirks &
1207 periph->path->target->rpl_size = 16;
1215 if (path->device->flags & CAM_DEV_UNCONFIGURED) {
1216 path->device->flags &= ~CAM_DEV_UNCONFIGURED;
1217 xpt_acquire_device(path->device);
1222 } else if (path->device->lun_id == 0 &&
1224 (SCSI_QUIRK(path->device)->quirks &
1227 periph->path->target->rpl_size = 16;
1241 xpt_release_devq(done_ccb->ccb_h.path,
1244 path->device->flags &= ~CAM_DEV_INQUIRY_DATA_VALID;
1256 if ((path->device->flags & CAM_DEV_UNCONFIGURED) == 0)
1258 xpt_async(AC_LOST_DEVICE, path, NULL);
1284 xpt_release_devq(done_ccb->ccb_h.path, 1,
1293 CAM_DEBUG(path, CAM_DEBUG_PROBE,
1297 path->target->rpl_size = (nlun << 3) + 8;
1311 CAM_DEBUG(path, CAM_DEBUG_PROBE,
1334 CAM_DEBUG(path, CAM_DEBUG_PROBE,
1345 probe_purge_old(path, lp, softc->flags);
1348 inq_buf = &path->device->inq_data;
1349 if (path->device->flags & CAM_DEV_INQUIRY_DATA_VALID &&
1382 path->device->queue_flags = page->queue_flags;
1389 xpt_release_devq(done_ccb->ccb_h.path,
1407 if (path->device->supported_vpds != NULL) {
1408 free(path->device->supported_vpds, M_CAMXPT);
1409 path->device->supported_vpds = NULL;
1410 path->device->supported_vpds_len = 0;
1419 path->device->supported_vpds_len = page_list->length +
1421 path->device->supported_vpds = (uint8_t *)page_list;
1432 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1452 if (path->device->device_id != NULL) {
1453 path->device->device_id_len = 0;
1454 free(path->device->device_id, M_CAMXPT);
1455 path->device->device_id = NULL;
1467 path->device->device_id_len = length +
1469 path->device->device_id = (uint8_t *)devid;
1477 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1497 if (path->device->ext_inq != NULL) {
1498 path->device->ext_inq_len = 0;
1499 free(path->device->ext_inq, M_CAMXPT);
1500 path->device->ext_inq = NULL;
1512 path->device->ext_inq_len = length;
1513 path->device->ext_inq = (uint8_t *)ext_inq;
1521 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1558 path->device->serial_num =
1561 if (path->device->serial_num != NULL) {
1574 memcpy(path->device->serial_num,
1576 path->device->serial_num_len = slen;
1577 path->device->serial_num[slen] = '\0';
1585 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1599 (unsigned char *)&path->device->inq_data,
1616 xpt_async(AC_LOST_DEVICE, path, NULL);
1654 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1663 && (path->device->inq_data.flags & SID_Sync) != 0
1664 && (path->device->flags & CAM_DEV_IN_DV) == 0) {
1665 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1667 path->device->flags |= CAM_DEV_IN_DV;
1674 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1677 if (path->device->flags & CAM_DEV_UNCONFIGURED) {
1678 path->device->flags &= ~CAM_DEV_UNCONFIGURED;
1679 xpt_acquire_device(path->device);
1681 path->device->flags &=
1687 xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path,
1705 xpt_release_devq(done_ccb->ccb_h.path, /*count*/1,
1710 if (bcmp(nbuf, &path->device->inq_data, SHORT_INQUIRY_LENGTH)) {
1711 xpt_print(path,
1714 if (proberequestbackoff(periph, path->device)) {
1715 path->device->flags &= ~CAM_DEV_IN_DV;
1734 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE,
1737 if (path->device->flags & CAM_DEV_UNCONFIGURED) {
1738 path->device->flags &= ~CAM_DEV_UNCONFIGURED;
1739 xpt_acquire_device(path->device);
1741 path->device->flags &=
1747 xpt_async(AC_FOUND_DEVICE, done_ccb->ccb_h.path,
1762 CAM_DEBUG(periph->path, CAM_DEBUG_PROBE, ("Probe completed\n"));
1764 cam_release_devq(path, 0, 0, 0, FALSE);
1775 probe_purge_old(struct cam_path *path, struct scsi_report_luns_data *new,
1784 if (path->target == NULL) {
1787 mtx_lock(&path->target->luns_mtx);
1788 old = path->target->luns;
1789 path->target->luns = new;
1790 mtx_unlock(&path->target->luns_mtx);
1834 if (xpt_create_path(&tp, NULL, xpt_path_path_id(path),
1835 xpt_path_target_id(path), this_lun) == CAM_REQ_CMP) {
1903 CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE,
1911 struct cam_path *path;
1923 xpt_setup_ccb(&work_ccb->ccb_h, request_ccb->ccb_h.path,
1949 !timevalisset(&request_ccb->ccb_h.path->bus->last_reset) &&
1951 xpt_setup_ccb(&reset_ccb->ccb_h, request_ccb->ccb_h.path,
1974 CAM_DEBUG(request_ccb->ccb_h.path, CAM_DEBUG_TRACE,
2001 mtx = xpt_path_mtx(scan_info->request_ccb->ccb_h.path);
2009 status = xpt_create_path(&path, NULL,
2026 xpt_free_path(path);
2031 xpt_setup_ccb(&work_ccb->ccb_h, path,
2047 struct cam_path *path, *oldpath;
2056 oldpath = request_ccb->ccb_h.path;
2063 target = request_ccb->ccb_h.path->target;
2066 mtx = xpt_path_mtx(scan_info->request_ccb->ccb_h.path);
2108 CAM_DEBUG(request_ccb->ccb_h.path,
2120 device = request_ccb->ccb_h.path->device;
2161 * Free the current request path- we're done with it.
2189 CAM_DEBUG(request_ccb->ccb_h.path,
2203 status = xpt_create_path(&path, NULL,
2219 xpt_setup_ccb(&request_ccb->ccb_h, path,
2228 status = xpt_create_path(&path, NULL,
2231 * Free the old request path- we're done with it. We
2232 * do this *after* creating the new path so that
2243 xpt_setup_ccb(&request_ccb->ccb_h, path,
2262 scsi_scan_lun(struct cam_periph *periph, struct cam_path *path,
2271 CAM_DEBUG(path, CAM_DEBUG_TRACE, ("scsi_scan_lun\n"));
2273 xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
2300 xpt_print(path, "scsi_scan_lun: can't allocate CCB, "
2305 path->bus->path_id,
2306 path->target->target_id,
2307 path->device->lun_id);
2309 xpt_print(path, "scsi_scan_lun: can't create path, "
2321 lock = (xpt_path_owned(path) == 0);
2323 xpt_path_lock(path);
2324 if ((old_periph = cam_periph_find(path, "probe")) != NULL) {
2339 request_ccb->ccb_h.path, NULL, 0,
2343 xpt_print(path, "scsi_scan_lun: cam_alloc_periph "
2350 xpt_path_unlock(path);
2357 xpt_free_path(done_ccb->ccb_h.path);
2392 scsi_devise_transport(struct cam_path *path)
2399 xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
2404 if ((path->device->flags & CAM_DEV_INQUIRY_DATA_VALID) != 0)
2405 inq_buf = &path->device->inq_data;
2406 path->device->protocol = PROTO_SCSI;
2407 path->device->protocol_version =
2409 path->device->transport = cpi.transport;
2410 path->device->transport_version = cpi.transport_version;
2417 if (path->device->transport == XPORT_SPI
2419 && path->device->transport_version > 2)
2420 path->device->transport_version = 2;
2424 for (otherdev = TAILQ_FIRST(&path->target->ed_entries);
2427 if (otherdev != path->device)
2436 path->device->protocol_version =
2438 path->device->transport_version =
2442 path->device->protocol_version = 2;
2443 if (path->device->transport == XPORT_SPI)
2444 path->device->transport_version = 2;
2446 path->device->transport_version = 0;
2459 xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NONE);
2462 cts.transport = path->device->transport;
2463 cts.transport_version = path->device->transport_version;
2464 cts.protocol = path->device->protocol;
2465 cts.protocol_version = path->device->protocol_version;
2479 device = start_ccb->ccb_h.path->device;
2581 xpt_async(AC_ADVINFO_CHANGED, start_ccb->ccb_h.path,
2594 start_ccb->ccb_h.path,
2600 scsi_scan_bus(start_ccb->ccb_h.path->periph, start_ccb);
2603 scsi_scan_lun(start_ccb->ccb_h.path->periph,
2604 start_ccb->ccb_h.path, start_ccb->crcn.flags,
2619 scsi_set_transfer_settings(struct ccb_trans_settings *cts, struct cam_path *path,
2629 if (path == NULL || (device = path->device) == NULL) {
2646 xpt_print(path, "Uninitialized Protocol %x:%x?\n",
2653 xpt_print(path, "Down reving Protocol "
2671 xpt_print(path, "Uninitialized Transport %x:%x?\n",
2678 xpt_print(path, "Down reving Transport "
2698 xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NONE);
2719 xpt_setup_ccb(&cur_cts.ccb_h, path, CAM_PRIORITY_NONE);
2840 scsi_toggle_tags(path);
2877 xpt_stop_tags(path);
2886 scsi_toggle_tags(struct cam_path *path)
2897 dev = path->device;
2903 xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NONE);
2910 scsi_set_transfer_settings(&cts, path,
2913 scsi_set_transfer_settings(&cts, path,
2936 * We need our own path with wildcards expanded to
2984 struct cam_path path;
2987 xpt_compile_path(&path, NULL, bus->path_id, target->target_id,
2989 scsi_set_transfer_settings(settings, &path,
2991 xpt_release_path(&path);
3000 struct cam_path *path = periph->path;
3007 xpt_setup_ccb(&cts.ccb_h, path, CAM_PRIORITY_NORMAL);
3014 xpt_setup_ccb(&cpi.ccb_h, path, CAM_PRIORITY_NORMAL);