Lines Matching defs:ssc

1187 static int	sd_spin_up_unit(sd_ssc_t *ssc);
1195 static int sd_ssc_send(sd_ssc_t *ssc, struct uscsi_cmd *incmd,
1197 static void sd_ssc_fini(sd_ssc_t *ssc);
1205 static void sd_ssc_assessment(sd_ssc_t *ssc,
1208 static void sd_ssc_post(sd_ssc_t *ssc, enum sd_driver_assessment sd_assess);
1209 static void sd_ssc_print(sd_ssc_t *ssc, int sd_severity);
1210 static void sd_ssc_ereport_post(sd_ssc_t *ssc,
1218 static void sd_ssc_set_info(sd_ssc_t *ssc, int ssc_flags, uint_t comp,
1220 static void sd_ssc_extract_info(sd_ssc_t *ssc, struct sd_lun *un,
1227 static void sd_enable_descr_sense(sd_ssc_t *ssc);
1231 static void sd_set_mmc_caps(sd_ssc_t *ssc);
1248 static void sd_register_devid(sd_ssc_t *ssc, dev_info_t *devi,
1250 static int sd_get_devid(sd_ssc_t *ssc);
1251 static ddi_devid_t sd_create_devid(sd_ssc_t *ssc);
1252 static int sd_write_deviceid(sd_ssc_t *ssc);
1254 static int sd_check_vpd_page_support(sd_ssc_t *ssc);
1256 static void sd_setup_pm(sd_ssc_t *ssc, dev_info_t *devi);
1295 static int sd_cache_control(sd_ssc_t *ssc, int rcd_flag, int wce_flag);
1296 static int sd_get_write_cache_enabled(sd_ssc_t *ssc, int *is_enabled);
1297 static void sd_get_nv_sup(sd_ssc_t *ssc);
1299 static void sd_check_solid_state(sd_ssc_t *ssc);
1300 static void sd_check_emulation_mode(sd_ssc_t *ssc);
1309 static int sd_ready_and_valid(sd_ssc_t *ssc, int part);
1518 static int sd_send_scsi_DOORLOCK(sd_ssc_t *ssc, int flag, int path_flag);
1519 static int sd_send_scsi_READ_CAPACITY(sd_ssc_t *ssc, uint64_t *capp,
1521 static int sd_send_scsi_READ_CAPACITY_16(sd_ssc_t *ssc, uint64_t *capp,
1523 static int sd_send_scsi_START_STOP_UNIT(sd_ssc_t *ssc, int pc_flag,
1525 static int sd_send_scsi_INQUIRY(sd_ssc_t *ssc, uchar_t *bufaddr,
1527 static int sd_send_scsi_TEST_UNIT_READY(sd_ssc_t *ssc, int flag);
1528 static int sd_send_scsi_PERSISTENT_RESERVE_IN(sd_ssc_t *ssc,
1530 static int sd_send_scsi_PERSISTENT_RESERVE_OUT(sd_ssc_t *ssc,
1535 static int sd_send_scsi_GET_CONFIGURATION(sd_ssc_t *ssc,
1538 static int sd_send_scsi_feature_GET_CONFIGURATION(sd_ssc_t *ssc,
1541 static int sd_send_scsi_MODE_SENSE(sd_ssc_t *ssc, int cdbsize,
1543 static int sd_send_scsi_MODE_SELECT(sd_ssc_t *ssc, int cdbsize,
1545 static int sd_send_scsi_RDWR(sd_ssc_t *ssc, uchar_t cmd, void *bufaddr,
1547 #define sd_send_scsi_READ(ssc, bufaddr, buflen, start_block, path_flag) \
1548 sd_send_scsi_RDWR(ssc, SCMD_READ, bufaddr, buflen, start_block, \
1550 #define sd_send_scsi_WRITE(ssc, bufaddr, buflen, start_block, path_flag)\
1551 sd_send_scsi_RDWR(ssc, SCMD_WRITE, bufaddr, buflen, start_block,\
1554 static int sd_send_scsi_LOG_SENSE(sd_ssc_t *ssc, uchar_t *bufaddr,
1557 static int sd_send_scsi_GET_EVENT_STATUS_NOTIFICATION(sd_ssc_t *ssc,
1629 static int sd_log_page_supported(sd_ssc_t *ssc, int log_page);
1634 static void sd_check_for_writable_cd(sd_ssc_t *ssc, int path_flag);
3206 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
3217 sd_spin_up_unit(sd_ssc_t *ssc)
3225 ASSERT(ssc != NULL);
3226 un = ssc->ssc_un;
3240 status = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
3246 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3259 if (sd_send_scsi_INQUIRY(ssc, bufaddr, SUN_INQSIZE, 0, 0, &resid)
3262 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
3300 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
3307 sd_enable_descr_sense(sd_ssc_t *ssc)
3316 ASSERT(ssc != NULL);
3317 un = ssc->ssc_un;
3327 status = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, header, buflen,
3370 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3375 status = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, header,
3387 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3402 sd_ssc_t *ssc;
3406 ssc = sd_ssc_init(un);
3407 sd_enable_descr_sense(ssc);
3408 sd_ssc_fini(ssc);
3420 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
3427 sd_set_mmc_caps(sd_ssc_t *ssc)
3442 ASSERT(ssc != NULL);
3443 un = ssc->ssc_un;
3456 status = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, (uchar_t *)buf,
3459 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3477 rtn = sd_send_scsi_GET_EVENT_STATUS_NOTIFICATION(ssc,
3480 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3545 rtn = sd_send_scsi_feature_GET_CONFIGURATION(ssc, &com, rqbuf_rw,
3549 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3560 rtn = sd_send_scsi_feature_GET_CONFIGURATION(ssc, &com, rqbuf_hd,
3564 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3601 sd_check_for_writable_cd(sd_ssc_t *ssc, int path_flag)
3616 ASSERT(ssc != NULL);
3617 un = ssc->ssc_un;
3631 rtn = sd_send_scsi_GET_CONFIGURATION(ssc, &com, rqbuf, SENSE_LENGTH,
3635 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3658 status = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, (uchar_t *)buf,
3661 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3706 rtn = sd_send_scsi_feature_GET_CONFIGURATION(ssc, &com, rqbuf_rw,
3710 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
3721 rtn = sd_send_scsi_feature_GET_CONFIGURATION(ssc, &com, rqbuf_hd,
3725 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
4968 sd_ssc_t *ssc;
4997 ssc = sd_ssc_init(un);
4998 status = sd_send_scsi_MODE_SENSE(ssc, cdbsize, p3bufp,
5023 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
5034 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
5070 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
5076 status = sd_send_scsi_MODE_SENSE(ssc, cdbsize, p4bufp,
5099 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
5110 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
5183 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
5201 sensep = (uint8_t *)ssc->ssc_uscsi_cmd->uscsi_rqbuf;
5202 senlen = (int)(ssc->ssc_uscsi_cmd->uscsi_rqlen -
5203 ssc->ssc_uscsi_cmd->uscsi_rqresid);
5207 sd_ssc_assessment(ssc,
5210 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
5213 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5216 sd_ssc_fini(ssc);
5343 sd_register_devid(sd_ssc_t *ssc, dev_info_t *devi, int reservation_flag)
5356 ASSERT(ssc != NULL);
5357 un = ssc->ssc_un;
5372 if (sd_check_vpd_page_support(ssc) == 0) {
5379 rval = sd_send_scsi_INQUIRY(ssc, inq80, inq80_len,
5383 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5424 rval = sd_send_scsi_INQUIRY(ssc, inq83, inq83_len,
5428 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5465 if ((sd_get_devid(ssc) == EINVAL) &&
5471 (void) sd_create_devid(ssc);
5509 if (sd_get_devid(ssc) == EINVAL) {
5510 (void) sd_create_devid(ssc);
5552 sd_get_devid(sd_ssc_t *ssc)
5565 ASSERT(ssc != NULL);
5566 un = ssc->ssc_un;
5594 status = sd_send_scsi_READ(ssc, dkdevid, buffer_size, blk,
5598 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5666 sd_create_devid(sd_ssc_t *ssc)
5670 ASSERT(ssc != NULL);
5671 un = ssc->ssc_un;
5681 if (sd_write_deviceid(ssc) != 0) {
5705 sd_write_deviceid(sd_ssc_t *ssc)
5715 ASSERT(ssc != NULL);
5716 un = ssc->ssc_un;
5754 status = sd_send_scsi_WRITE(ssc, buf, un->un_sys_blocksize, blk,
5757 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5784 sd_check_vpd_page_support(sd_ssc_t *ssc)
5794 ASSERT(ssc != NULL);
5795 un = ssc->ssc_un;
5807 rval = sd_send_scsi_INQUIRY(ssc, page_list, page_length, evpd,
5811 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5886 sd_setup_pm(sd_ssc_t *ssc, dev_info_t *devi)
5893 ASSERT(ssc != NULL);
5894 un = ssc->ssc_un;
5932 rval = sd_send_scsi_START_STOP_UNIT(ssc,
5940 rval = sd_send_scsi_START_STOP_UNIT(ssc,
5944 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
5959 rval = sd_log_page_supported(ssc,
5991 rval = sd_log_page_supported(ssc, START_STOP_CYCLE_PAGE);
6022 if (sd_log_page_supported(ssc, START_STOP_CYCLE_VU_PAGE) == 1) {
6049 rval = sd_send_scsi_LOG_SENSE(ssc, log_page_data,
6054 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
6635 sd_ssc_t *ssc;
6645 ssc = sd_ssc_init(un);
6738 rval = sd_send_scsi_LOG_SENSE(ssc, log_page_data,
6743 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
6745 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
6949 sval = sd_send_scsi_TEST_UNIT_READY(ssc,
6952 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
6961 sval = sd_send_scsi_START_STOP_UNIT(ssc, SD_POWER_CONDITION,
6966 sval = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
6972 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
6974 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
7083 sd_ssc_fini(ssc);
7088 sd_ssc_fini(ssc);
7214 sd_ssc_t *ssc;
7905 ssc = sd_ssc_init(un);
7965 status = sd_send_scsi_TEST_UNIT_READY(ssc, SD_DONT_RETRY_TUR);
7969 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
7981 switch (sd_spin_up_unit(ssc)) {
7991 status = sd_send_scsi_READ_CAPACITY(ssc, &capacity,
8006 sd_enable_descr_sense(ssc);
8068 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
8082 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
8091 sd_ssc_assessment(ssc,
8094 sd_ssc_assessment(ssc,
8123 sd_set_mmc_caps(ssc);
8145 sd_setup_pm(ssc, devi);
8209 sd_check_solid_state(ssc);
8214 sd_check_emulation_mode(ssc);
8251 sd_register_devid(ssc, devi, reservation_flag);
8277 if (sd_cache_control(ssc, SD_CACHE_DISABLE, SD_CACHE_DISABLE) !=
8290 (void) sd_get_write_cache_enabled(ssc, &wc_enabled);
8318 sd_get_nv_sup(ssc);
8323 status = sd_send_scsi_PERSISTENT_RESERVE_IN(ssc, SD_READ_KEYS, 0, NULL);
8343 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
8353 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
8395 sd_ssc_fini(ssc);
8431 sd_ssc_fini(ssc);
9382 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
9395 sd_cache_control(sd_ssc_t *ssc, int rcd_flag, int wce_flag)
9407 ASSERT(ssc != NULL);
9408 un = ssc->ssc_un;
9415 status = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
9417 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9438 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, header, buflen,
9441 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, header, buflen,
9464 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, 0,
9473 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
9534 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9538 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP1, header,
9541 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, header,
9554 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
9556 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9569 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
9594 sd_get_write_cache_enabled(sd_ssc_t *ssc, int *is_enabled)
9605 ASSERT(ssc != NULL);
9606 un = ssc->ssc_un;
9617 status = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
9620 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9637 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, header, buflen,
9640 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, header, buflen,
9665 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, 0,
9675 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, SD_LOG_COMMON,
9685 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
9695 sensep = (uint8_t *)ssc->ssc_uscsi_cmd->uscsi_rqbuf;
9696 senlen = (int)(ssc->ssc_uscsi_cmd->uscsi_rqlen -
9697 ssc->ssc_uscsi_cmd->uscsi_rqresid);
9701 sd_ssc_assessment(ssc, SD_FMT_IGNORE_COMPROMISE);
9703 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
9706 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9747 sd_get_nv_sup(sd_ssc_t *ssc)
9756 ASSERT(ssc != NULL);
9757 un = ssc->ssc_un;
9779 if (sd_check_vpd_page_support(ssc) == 0 &&
9785 rval = sd_send_scsi_INQUIRY(ssc, inq86, inq86_len,
9806 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
9830 rval = sd_send_scsi_TEST_UNIT_READY(ssc, SD_DONT_RETRY_TUR);
9832 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10269 sd_ssc_t *ssc;
10272 ssc = sd_ssc_init(un);
10273 rval = sd_ready_and_valid(ssc, part);
10274 sd_ssc_fini(ssc);
10548 sd_ssc_t *ssc;
10550 ssc = sd_ssc_init(un);
10551 rval = sd_send_scsi_DOORLOCK(ssc,
10554 sd_ssc_assessment(ssc,
10556 sd_ssc_fini(ssc);
10625 * Arguments: ssc - sd_ssc_t will contain un
10636 sd_ready_and_valid(sd_ssc_t *ssc, int part)
10647 ASSERT(ssc != NULL);
10648 un = ssc->ssc_un;
10659 status = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
10666 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10679 status = sd_send_scsi_READ_CAPACITY(ssc, &capacity,
10683 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10701 sd_check_for_writable_cd(ssc, SD_PATH_DIRECT);
10711 status = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
10713 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10762 err = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
10774 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10779 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
10813 status = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_PREVENT,
10820 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10824 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
10915 sd_ssc_t *ssc;
10939 ssc = sd_ssc_init(un);
10940 if ((sd_ready_and_valid(ssc, SDPART(dev))) != SD_READY_VALID) {
10945 sd_ssc_fini(ssc);
11006 sd_ssc_t *ssc;
11029 ssc = sd_ssc_init(un);
11030 if ((sd_ready_and_valid(ssc, SDPART(dev))) != SD_READY_VALID) {
11035 sd_ssc_fini(ssc);
11096 sd_ssc_t *ssc;
11119 ssc = sd_ssc_init(un);
11120 if ((sd_ready_and_valid(ssc, SDPART(dev))) != SD_READY_VALID) {
11125 sd_ssc_fini(ssc);
11186 sd_ssc_t *ssc;
11209 ssc = sd_ssc_init(un);
11210 if ((sd_ready_and_valid(ssc, SDPART(dev))) != SD_READY_VALID) {
11215 sd_ssc_fini(ssc);
11814 sd_ssc_t *ssc;
11825 ssc = sd_ssc_init(un);
11826 rval = sd_ssc_send(ssc, incmd, flag, dataspace, path_flag);
11827 sd_ssc_fini(ssc);
11899 sd_ssc_t *ssc;
11909 ssc = kmem_zalloc(sizeof (sd_ssc_t), KM_SLEEP);
11921 ssc->ssc_uscsi_cmd = ucmdp;
11922 ssc->ssc_uscsi_info = uip;
11923 ssc->ssc_un = un;
11925 return (ssc);
11933 * Arguments: ssc - struct pointer of sd_ssc_t.
11936 sd_ssc_fini(sd_ssc_t *ssc)
11938 scsi_uscsi_free(ssc->ssc_uscsi_cmd);
11940 if (ssc->ssc_uscsi_info != NULL) {
11941 kmem_free(ssc->ssc_uscsi_info, sizeof (struct sd_uscsi_info));
11942 ssc->ssc_uscsi_info = NULL;
11945 kmem_free(ssc, sizeof (sd_ssc_t));
11946 ssc = NULL;
11955 * Arguments: ssc - the struct of sd_ssc_t will bring uscsi_cmd and
11980 sd_ssc_send(sd_ssc_t *ssc, struct uscsi_cmd *incmd, int flag,
11991 ASSERT(ssc != NULL);
11992 un = ssc->ssc_un;
11994 uscmd = ssc->ssc_uscsi_cmd;
11997 if (ssc->ssc_flags & SSC_FLAGS_NEED_ASSESSMENT) {
12015 ssc->ssc_flags = SSC_FLAGS_UNKNOWN;
12022 ssc->ssc_flags |= SSC_FLAGS_NEED_ASSESSMENT;
12082 uip = ssc->ssc_uscsi_info;
12103 ssc->ssc_flags |= SSC_FLAGS_CMD_ISSUED;
12137 * Arguments: ssc - the struct of sd_ssc_t will bring uscsi_cmd and
12143 sd_ssc_print(sd_ssc_t *ssc, int sd_severity)
12154 ASSERT(ssc != NULL);
12155 ASSERT(ssc->ssc_un != NULL);
12157 if (SD_FM_LOG(ssc->ssc_un) != SD_FM_LOG_EREPORT)
12159 ucmdp = ssc->ssc_uscsi_cmd;
12160 devp = SD_SCSI_DEVP(ssc->ssc_un);
12161 devinfo = SD_DEVINFO(ssc->ssc_un);
12177 scsi_cmds, sensep, ssc->ssc_un->un_additional_codes, NULL);
12186 * Arguments: ssc - the struct of sd_ssc_t will bring uscsi_cmd and
12209 sd_ssc_assessment(sd_ssc_t *ssc, enum sd_type_assessment tp_assess)
12215 ASSERT(ssc != NULL);
12216 un = ssc->ssc_un;
12218 ucmdp = ssc->ssc_uscsi_cmd;
12221 if (ssc->ssc_flags & SSC_FLAGS_NEED_ASSESSMENT) {
12222 ssc->ssc_flags &= ~SSC_FLAGS_NEED_ASSESSMENT;
12242 ssc->ssc_flags = SSC_FLAGS_UNKNOWN;
12251 if (!(ssc->ssc_flags & SSC_FLAGS_CMD_ISSUED)) {
12252 sd_ssc_print(ssc, SCSI_ERR_INFO);
12260 ssc->ssc_flags &= ~SSC_FLAGS_CMD_ISSUED;
12268 ssc->ssc_flags = SSC_FLAGS_UNKNOWN;
12281 sd_ssc_post(ssc, SD_FM_DRV_FATAL);
12291 senlen = ssc->ssc_uscsi_cmd->uscsi_rqlen -
12292 ssc->ssc_uscsi_cmd->uscsi_rqresid;
12293 if ((ssc->ssc_uscsi_info->ui_pkt_state & STATE_ARQ_DONE) &&
12296 ssc->ssc_uscsi_cmd->uscsi_rqbuf != NULL) {
12297 sd_ssc_post(ssc, SD_FM_DRV_NOTICE);
12312 ssc->ssc_flags = SSC_FLAGS_UNKNOWN;
12325 sd_ssc_post(sd_ssc_t *ssc, enum sd_driver_assessment sd_assess)
12330 ASSERT(ssc != NULL);
12331 un = ssc->ssc_un;
12343 ssc->ssc_flags = SSC_FLAGS_UNKNOWN;
12364 sd_ssc_print(ssc, sd_severity);
12367 sd_ssc_ereport_post(ssc, sd_assess);
12380 * Arguments: ssc - the struct of sd_ssc_t will bring uscsi_cmd and
12394 sd_ssc_set_info(sd_ssc_t *ssc, int ssc_flags, uint_t comp, const char *fmt, ...)
12398 ASSERT(ssc != NULL);
12399 ASSERT(ssc->ssc_un != NULL);
12401 ssc->ssc_flags |= ssc_flags;
12403 (void) vsnprintf(ssc->ssc_info, sizeof (ssc->ssc_info), fmt, ap);
12412 if (SD_FM_LOG(ssc->ssc_un) == SD_FM_LOG_NSUP) {
12420 SD_ERROR(comp, ssc->ssc_un, ssc->ssc_info);
12422 scsi_log(SD_DEVINFO(ssc->ssc_un), sd_label,
12423 CE_WARN, ssc->ssc_info);
12600 sd_ssc_t *ssc;
12606 ssc = sd_ssc_init(un);
12608 if (sd_ready_and_valid(ssc, partition) != SD_READY_VALID) {
12626 sd_ssc_fini(ssc);
12629 sd_ssc_fini(ssc);
19621 sd_ssc_t *ssc;
19631 ssc = sd_ssc_init(un);
19633 if (sd_send_scsi_READ_CAPACITY(ssc, &capacity,
19637 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
19667 sd_ssc_fini(ssc);
19853 sd_ssc_t *ssc;
19858 ssc = sd_ssc_init(un);
19859 rval = sd_send_scsi_READ_CAPACITY(ssc, &capacity, &lbasize,
19880 sd_check_for_writable_cd(ssc, SD_PATH_DIRECT_PRIORITY);
19893 sd_ssc_fini(ssc);
19907 rval = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_PREVENT,
19911 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
19912 sd_ssc_fini(ssc);
19922 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
19939 sd_send_scsi_DOORLOCK(sd_ssc_t *ssc, int flag, int path_flag)
19947 ASSERT(ssc != NULL);
19948 un = ssc->ssc_un;
19991 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
19995 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20000 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
20021 * Arguments: ssc - ssc contains ptr to soft state struct for the target
20044 sd_send_scsi_READ_CAPACITY(sd_ssc_t *ssc, uint64_t *capp, uint32_t *lbap,
20057 ASSERT(ssc != NULL);
20059 un = ssc->ssc_un;
20092 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20099 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
20134 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
20135 status = sd_send_scsi_READ_CAPACITY_16(ssc, &capacity,
20214 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
20219 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20236 * Arguments: ssc - ssc contains ptr to soft state struct for the target
20262 sd_send_scsi_READ_CAPACITY_16(sd_ssc_t *ssc, uint64_t *capp,
20276 ASSERT(ssc != NULL);
20278 un = ssc->ssc_un;
20321 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20328 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
20369 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
20435 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
20441 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20451 * Arguments: ssc - ssc contatins pointer to driver soft state (unit)
20475 sd_send_scsi_START_STOP_UNIT(sd_ssc_t *ssc, int pc_flag, int flag,
20484 ASSERT(ssc != NULL);
20485 un = ssc->ssc_un;
20530 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20535 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20613 sd_ssc_t *ssc;
20633 ssc = sd_ssc_init(un);
20650 rval = sd_send_scsi_START_STOP_UNIT(ssc, SD_POWER_CONDITION,
20653 rval = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
20658 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
20659 sd_ssc_fini(ssc);
20700 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
20715 sd_send_scsi_INQUIRY(sd_ssc_t *ssc, uchar_t *bufaddr, size_t buflen,
20723 ASSERT(ssc != NULL);
20724 un = ssc->ssc_un;
20749 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20757 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20781 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
20797 sd_send_scsi_TEST_UNIT_READY(sd_ssc_t *ssc, int flag)
20805 ASSERT(ssc != NULL);
20806 un = ssc->ssc_un;
20852 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20858 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20894 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
20906 sd_send_scsi_PERSISTENT_RESERVE_IN(sd_ssc_t *ssc, uchar_t usr_cmd,
20916 ASSERT(ssc != NULL);
20917 un = ssc->ssc_un;
20949 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
20954 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
20995 * Arguments: ssc - ssc contains un - pointer to soft state struct
21013 sd_send_scsi_PERSISTENT_RESERVE_OUT(sd_ssc_t *ssc, uchar_t usr_cmd,
21024 ASSERT(ssc != NULL);
21025 un = ssc->ssc_un;
21106 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
21111 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
21416 * Arguments: ssc
21432 sd_send_scsi_GET_CONFIGURATION(sd_ssc_t *ssc, struct uscsi_cmd *ucmdbuf,
21440 ASSERT(ssc != NULL);
21441 un = ssc->ssc_un;
21471 status = sd_ssc_send(ssc, ucmdbuf, FKIOCTL,
21476 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
21509 * Arguments: ssc
21524 sd_send_scsi_feature_GET_CONFIGURATION(sd_ssc_t *ssc,
21532 ASSERT(ssc != NULL);
21533 un = ssc->ssc_un;
21564 status = sd_ssc_send(ssc, ucmdbuf, FKIOCTL,
21605 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
21624 sd_send_scsi_MODE_SENSE(sd_ssc_t *ssc, int cdbsize, uchar_t *bufaddr,
21634 ASSERT(ssc != NULL);
21635 un = ssc->ssc_un;
21674 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
21688 sd_ssc_set_info(ssc, SSC_FLAGS_INVALID_DATA, -1,
21723 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
21742 sd_send_scsi_MODE_SELECT(sd_ssc_t *ssc, int cdbsize, uchar_t *bufaddr,
21751 ASSERT(ssc != NULL);
21752 un = ssc->ssc_un;
21793 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
21798 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
21828 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
21849 sd_send_scsi_RDWR(sd_ssc_t *ssc, uchar_t cmd, void *bufaddr,
21861 ASSERT(ssc != NULL);
21862 un = ssc->ssc_un;
21930 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
21935 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
21966 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
21976 sd_send_scsi_LOG_SENSE(sd_ssc_t *ssc, uchar_t *bufaddr, uint16_t buflen,
21987 ASSERT(ssc != NULL);
21988 un = ssc->ssc_un;
22013 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
22058 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
22060 ssc, &ucmd_buf, FKIOCTL,
22081 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
22097 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
22110 sd_send_scsi_GET_EVENT_STATUS_NOTIFICATION(sd_ssc_t *ssc, uchar_t *bufaddr,
22118 ASSERT(ssc != NULL);
22119 un = ssc->ssc_un;
22145 status = sd_ssc_send(ssc, &ucmd_buf, FKIOCTL,
22153 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
22213 sd_ssc_t *ssc;
22226 ssc = sd_ssc_init(un);
22318 err = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
22354 err = sd_ready_and_valid(ssc, SDPART(dev));
22432 err = sd_send_scsi_TEST_UNIT_READY(ssc,
22436 err = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
22467 sd_register_devid(ssc, SD_DEVINFO(un),
22477 if (sd_write_deviceid(ssc) != 0) {
22490 err = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_PREVENT,
22496 err = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_ALLOW,
22590 switch (sd_send_scsi_TEST_UNIT_READY(ssc, 0)) {
22597 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
22660 ssc, SD_SCSI3_REGISTER,
22682 ssc, SD_SCSI3_CLEAR,
22704 ssc, SD_SCSI3_RESERVE,
22727 ssc, SD_SCSI3_PREEMPTANDABORT,
22750 ssc, SD_SCSI3_REGISTERANDIGNOREKEY,
22774 err = sd_ssc_send(ssc,
22780 sd_ssc_assessment(ssc, SD_FMT_STANDARD);
22842 err = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
22853 err = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
22864 err = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
23152 if ((err = sd_get_write_cache_enabled(ssc, &wce)) != 0) {
23203 if ((err = sd_get_write_cache_enabled(ssc, &cur_wce)) != 0) {
23230 if ((err = sd_cache_control(ssc,
23262 err = sd_cache_control(ssc, SD_CACHE_NOCHANGE,
23292 sd_ssc_fini(ssc);
23305 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23307 sd_ssc_fini(ssc);
23425 sd_ssc_t *ssc;
23436 ssc = sd_ssc_init(un);
23439 rval = sd_send_scsi_TEST_UNIT_READY(ssc, SD_CHECK_FOR_MEDIA);
23443 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23452 rtn = sd_send_scsi_GET_CONFIGURATION(ssc, &com, rqbuf,
23462 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23520 rval = sd_send_scsi_READ_CAPACITY_16(ssc, &capacity, &lbasize,
23532 rval = sd_send_scsi_READ_CAPACITY(ssc, &capacity, &lbasize,
23593 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
23595 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23598 sd_ssc_fini(ssc);
23729 sd_ssc_t *ssc;
23737 ssc = sd_ssc_init(un);
23841 rval = sd_send_scsi_READ_CAPACITY(ssc,
23846 sd_ssc_assessment(ssc,
23849 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23866 sd_check_for_writable_cd(ssc, SD_PATH_DIRECT);
23879 rval = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_PREVENT,
23886 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
23888 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
23894 sd_ssc_fini(ssc);
24150 sd_ssc_t *ssc;
24156 ssc = sd_ssc_init(un);
24205 rval = sd_send_scsi_LOG_SENSE(ssc, temperature_page,
24246 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
24248 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
24257 sd_ssc_fini(ssc);
24272 * Arguments: ssc - ssc contains pointer to driver soft state (unit)
24282 sd_log_page_supported(sd_ssc_t *ssc, int log_page)
24291 ASSERT(ssc != NULL);
24292 un = ssc->ssc_un;
24297 status = sd_send_scsi_LOG_SENSE(ssc, log_page_data, 0xFF, 0, 0x01, 0,
24310 sensep = (uint8_t *)ssc->ssc_uscsi_cmd->uscsi_rqbuf;
24311 senlen = (int)(ssc->ssc_uscsi_cmd->uscsi_rqlen -
24312 ssc->ssc_uscsi_cmd->uscsi_rqresid);
24316 sd_ssc_assessment(ssc,
24319 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
24322 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
24564 sd_ssc_t *ssc;
24586 ssc = sd_ssc_init(un);
24587 rval = sd_send_scsi_TEST_UNIT_READY(ssc, 0);
24592 sd_register_devid(ssc, SD_DEVINFO(un), SD_TARGET_IS_UNRESERVED);
24603 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
24605 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
24607 sd_ssc_fini(ssc);
26560 sd_ssc_t *ssc;
26567 ssc = sd_ssc_init(un);
26615 rval = sd_send_scsi_PERSISTENT_RESERVE_IN(ssc, SD_READ_KEYS,
26619 sd_ssc_assessment(ssc, SD_FMT_IGNORE_COMPROMISE);
26621 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
26677 sd_ssc_fini(ssc);
26725 sd_ssc_t *ssc;
26731 ssc = sd_ssc_init(un);
26777 rval = sd_send_scsi_PERSISTENT_RESERVE_IN(ssc, SD_READ_RESV,
26781 sd_ssc_assessment(ssc, SD_FMT_IGNORE_COMPROMISE);
26783 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
26852 sd_ssc_fini(ssc);
26897 sd_ssc_t *ssc;
26914 ssc = sd_ssc_init(un);
26915 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, sense,
26917 sd_ssc_fini(ssc);
26993 ssc = sd_ssc_init(un);
26994 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0,
26997 sd_ssc_fini(ssc);
27010 ssc = sd_ssc_init(un);
27011 (void) sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0,
27014 sd_ssc_fini(ssc);
27084 sd_ssc_t *ssc;
27097 ssc = sd_ssc_init(un);
27098 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, sense,
27101 sd_ssc_fini(ssc);
27176 ssc = sd_ssc_init(un);
27177 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, select,
27180 sd_ssc_fini(ssc);
27191 ssc = sd_ssc_init(un);
27192 (void) sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, select,
27195 sd_ssc_fini(ssc);
27254 sd_ssc_t *ssc;
27264 ssc = sd_ssc_init(un);
27265 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, sense,
27268 sd_ssc_fini(ssc);
28094 sd_ssc_t *ssc;
28134 ssc = sd_ssc_init(un);
28135 rval = sd_send_scsi_READ(ssc, mode1->cdread_bufaddr,
28137 sd_ssc_fini(ssc);
28438 sd_ssc_t *ssc;
28448 ssc = sd_ssc_init(un);
28449 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, sense, 20, 0x81,
28451 sd_ssc_fini(ssc);
28470 ssc = sd_ssc_init(un);
28471 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, select, 20,
28473 sd_ssc_fini(ssc);
28827 sd_ssc_t *ssc;
28851 ssc = sd_ssc_init(un);
28852 rval = sd_send_scsi_DOORLOCK(ssc, SD_REMOVAL_ALLOW,
28854 sd_ssc_fini(ssc);
28863 ssc = sd_ssc_init(un);
28864 rval = sd_send_scsi_START_STOP_UNIT(ssc, SD_START_STOP,
28866 sd_ssc_fini(ssc);
28942 sd_ssc_t *ssc;
28959 ssc = sd_ssc_init(un);
28960 status = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, sense, hdrlen,
28962 sd_ssc_fini(ssc);
28970 ssc = sd_ssc_init(un);
28971 status = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, sense, hdrlen,
28973 sd_ssc_fini(ssc);
29026 sd_ssc_t *ssc;
29051 ssc = sd_ssc_init(un);
29052 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP1, sense,
29055 sd_ssc_fini(ssc);
29090 ssc = sd_ssc_init(un);
29091 rval = sd_send_scsi_MODE_SENSE(ssc, CDB_GROUP0, sense,
29094 sd_ssc_fini(ssc);
29147 ssc = sd_ssc_init(un);
29149 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP1, select,
29152 rval = sd_send_scsi_MODE_SELECT(ssc, CDB_GROUP0, select,
29155 sd_ssc_fini(ssc);
31015 sd_ssc_t *ssc;
31024 ssc = sd_ssc_init(un);
31028 rval = sd_send_scsi_READ_CAPACITY(ssc, (uint64_t *)&cap,
31083 rval = sd_send_scsi_READ(ssc, (dkl != NULL)? dkl: bufaddr,
31090 rval = sd_send_scsi_READ(ssc, dkl, buffer_size,
31098 rval = sd_send_scsi_WRITE(ssc, (dkl != NULL)? dkl: bufaddr,
31108 sd_ssc_assessment(ssc, SD_FMT_STATUS_CHECK);
31110 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
31113 sd_ssc_fini(ssc);
31145 sd_ssc_t *ssc;
31147 ssc = sd_ssc_init(un);
31148 ret = sd_send_scsi_READ_CAPACITY(ssc, (uint64_t *)&cap,
31152 sd_ssc_assessment(ssc,
31155 sd_ssc_assessment(ssc,
31157 sd_ssc_fini(ssc);
31160 sd_ssc_fini(ssc);
31216 sd_ssc_ereport_post(sd_ssc_t *ssc, enum sd_driver_assessment drv_assess)
31237 ASSERT(ssc != NULL);
31238 ASSERT(ssc->ssc_uscsi_cmd != NULL);
31239 ASSERT(ssc->ssc_uscsi_info != NULL);
31241 un = ssc->ssc_un;
31260 uscsi_pkt_reason = ssc->ssc_uscsi_info->ui_pkt_reason;
31261 uscsi_path_instance = ssc->ssc_uscsi_cmd->uscsi_path_instance;
31262 uscsi_pkt_state = ssc->ssc_uscsi_info->ui_pkt_state;
31263 uscsi_pkt_statistics = ssc->ssc_uscsi_info->ui_pkt_statistics;
31264 uscsi_ena = ssc->ssc_uscsi_info->ui_ena;
31266 sensep = (uint8_t *)ssc->ssc_uscsi_cmd->uscsi_rqbuf;
31267 cdbp = (union scsi_cdb *)ssc->ssc_uscsi_cmd->uscsi_cdb;
31278 cdblen = (int)ssc->ssc_uscsi_cmd->uscsi_cdblen;
31279 senlen = (int)(ssc->ssc_uscsi_cmd->uscsi_rqlen -
31280 ssc->ssc_uscsi_cmd->uscsi_rqresid);
31318 cdblen, ssc->ssc_uscsi_cmd->uscsi_cdb,
31335 if (ssc->ssc_flags & ssc_invalid_flags) {
31336 if (ssc->ssc_flags & SSC_FLAGS_INVALID_SENSE) {
31347 cdblen, ssc->ssc_uscsi_cmd->uscsi_cdb,
31353 ssc->ssc_uscsi_cmd->uscsi_status,
31355 ssc->ssc_info,
31377 cdblen, ssc->ssc_uscsi_cmd->uscsi_cdb,
31383 ssc->ssc_uscsi_cmd->uscsi_status,
31385 ssc->ssc_info,
31390 ssc->ssc_flags &= ~ssc_invalid_flags;
31395 (ssc->ssc_flags & SSC_FLAGS_TRAN_ABORT)) {
31405 if (ssc->ssc_flags & SSC_FLAGS_TRAN_ABORT)
31406 ssc->ssc_flags &= ~SSC_FLAGS_TRAN_ABORT;
31416 cdblen, ssc->ssc_uscsi_cmd->uscsi_cdb,
31466 ssc->ssc_uscsi_cmd->uscsi_cdb,
31476 ssc->ssc_uscsi_cmd->uscsi_status,
31491 ssc->ssc_uscsi_info->ui_lba,
31517 ssc->ssc_uscsi_cmd->uscsi_cdb,
31527 ssc->ssc_uscsi_cmd->uscsi_status,
31547 if (ssc->ssc_uscsi_cmd->uscsi_status == STATUS_GOOD)
31567 cdblen, ssc->ssc_uscsi_cmd->uscsi_cdb,
31576 ssc->ssc_uscsi_cmd->uscsi_status,
31590 sd_ssc_extract_info(sd_ssc_t *ssc, struct sd_lun *un, struct scsi_pkt *pktp,
31605 ASSERT(ssc != NULL);
31613 ssc->ssc_uscsi_cmd->uscsi_cdblen = scsi_cdb_size[GETGROUP(cdbp)];
31614 ssc->ssc_uscsi_cmd->uscsi_cdb = (caddr_t)cdbp;
31641 ssc->ssc_uscsi_cmd->uscsi_rqlen = (senlen & 0xff);
31642 ssc->ssc_uscsi_cmd->uscsi_rqresid = 0;
31643 ssc->ssc_uscsi_cmd->uscsi_rqbuf = (caddr_t)xp->xb_sense_data;
31645 ssc->ssc_uscsi_cmd->uscsi_status = ((*(pktp)->pkt_scbp) & STATUS_MASK);
31652 ssc->ssc_uscsi_cmd->uscsi_path_instance = path_instance;
31654 ssc->ssc_uscsi_cmd->uscsi_path_instance = 0;
31659 ssc->ssc_uscsi_info->ui_pkt_reason = pktp->pkt_reason;
31660 ssc->ssc_uscsi_info->ui_pkt_state = pktp->pkt_state;
31661 ssc->ssc_uscsi_info->ui_pkt_statistics = pktp->pkt_statistics;
31662 ssc->ssc_uscsi_info->ui_lba = (uint64_t)SD_GET_BLKNO(bp);
31669 (ssc->ssc_uscsi_cmd->uscsi_status == STATUS_GOOD) &&
31680 ssc->ssc_uscsi_info->ui_ena = xp->xb_ena;
31696 sd_check_solid_state(sd_ssc_t *ssc)
31704 ASSERT(ssc != NULL);
31705 un = ssc->ssc_un;
31717 if (sd_check_vpd_page_support(ssc) == 0 &&
31723 rval = sd_send_scsi_INQUIRY(ssc, inqb1, inqb1_len,
31746 sd_ssc_assessment(ssc, SD_FMT_IGNORE);
31766 sd_check_emulation_mode(sd_ssc_t *ssc)
31776 ASSERT(ssc != NULL);
31777 un = ssc->ssc_un;
31789 rval = sd_send_scsi_READ_CAPACITY_16(ssc, &capacity, &lbasize,