Lines Matching refs:ctsio

151 	struct ctl_scsiio	*ctsio;
271 ctl_inquiry_evpd_tpc(struct ctl_scsiio *ctsio, int alloc_len)
273 struct ctl_lun *lun = CTL_LUN(ctsio);
302 ctsio->kern_data_ptr = malloc(data_len, M_CTL, M_WAITOK | M_ZERO);
303 tpc_ptr = (struct scsi_vpd_tpc *)ctsio->kern_data_ptr;
304 ctsio->kern_rel_offset = 0;
305 ctsio->kern_sg_entries = 0;
306 ctsio->kern_data_len = min(data_len, alloc_len);
307 ctsio->kern_total_len = ctsio->kern_data_len;
444 ctl_set_success(ctsio);
445 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
446 ctsio->be_move_done = ctl_config_move_done;
447 ctl_datamove((union ctl_io *)ctsio);
453 ctl_receive_copy_operating_parameters(struct ctl_scsiio *ctsio)
462 cdb = (struct scsi_receive_copy_operating_parameters *)ctsio->cdb;
469 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
470 ctsio->kern_sg_entries = 0;
471 ctsio->kern_rel_offset = 0;
472 ctsio->kern_data_len = min(total_len, alloc_len);
473 ctsio->kern_total_len = ctsio->kern_data_len;
475 data = (struct scsi_receive_copy_operating_parameters_data *)ctsio->kern_data_ptr;
496 ctl_set_success(ctsio);
497 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
498 ctsio->be_move_done = ctl_config_move_done;
499 ctl_datamove((union ctl_io *)ctsio);
519 ctl_receive_copy_status_lid1(struct ctl_scsiio *ctsio)
521 struct ctl_lun *lun = CTL_LUN(ctsio);
532 cdb = (struct scsi_receive_copy_status_lid1 *)ctsio->cdb;
538 ctl_get_initindex(&ctsio->io_hdr.nexus));
541 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
544 ctl_done((union ctl_io *)ctsio);
557 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
558 ctsio->kern_sg_entries = 0;
559 ctsio->kern_rel_offset = 0;
560 ctsio->kern_data_len = min(total_len, alloc_len);
561 ctsio->kern_total_len = ctsio->kern_data_len;
563 data = (struct scsi_receive_copy_status_lid1_data *)ctsio->kern_data_ptr;
581 ctl_set_success(ctsio);
582 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
583 ctsio->be_move_done = ctl_config_move_done;
584 ctl_datamove((union ctl_io *)ctsio);
589 ctl_receive_copy_failure_details(struct ctl_scsiio *ctsio)
591 struct ctl_lun *lun = CTL_LUN(ctsio);
602 cdb = (struct scsi_receive_copy_failure_details *)ctsio->cdb;
608 ctl_get_initindex(&ctsio->io_hdr.nexus));
611 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
614 ctl_done((union ctl_io *)ctsio);
625 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
626 ctsio->kern_sg_entries = 0;
627 ctsio->kern_rel_offset = 0;
628 ctsio->kern_data_len = min(total_len, alloc_len);
629 ctsio->kern_total_len = ctsio->kern_data_len;
631 data = (struct scsi_receive_copy_failure_details_data *)ctsio->kern_data_ptr;
641 ctl_set_success(ctsio);
642 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
643 ctsio->be_move_done = ctl_config_move_done;
644 ctl_datamove((union ctl_io *)ctsio);
649 ctl_receive_copy_status_lid4(struct ctl_scsiio *ctsio)
651 struct ctl_lun *lun = CTL_LUN(ctsio);
662 cdb = (struct scsi_receive_copy_status_lid4 *)ctsio->cdb;
668 ctl_get_initindex(&ctsio->io_hdr.nexus));
671 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
674 ctl_done((union ctl_io *)ctsio);
687 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
688 ctsio->kern_sg_entries = 0;
689 ctsio->kern_rel_offset = 0;
690 ctsio->kern_data_len = min(total_len, alloc_len);
691 ctsio->kern_total_len = ctsio->kern_data_len;
693 data = (struct scsi_receive_copy_status_lid4_data *)ctsio->kern_data_ptr;
715 ctl_set_success(ctsio);
716 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
717 ctsio->be_move_done = ctl_config_move_done;
718 ctl_datamove((union ctl_io *)ctsio);
723 ctl_copy_operation_abort(struct ctl_scsiio *ctsio)
725 struct ctl_lun *lun = CTL_LUN(ctsio);
733 cdb = (struct scsi_copy_operation_abort *)ctsio->cdb;
739 ctl_get_initindex(&ctsio->io_hdr.nexus));
742 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
745 ctl_done((union ctl_io *)ctsio);
751 ctl_set_success(ctsio);
752 ctl_done((union ctl_io *)ctsio);
807 ctl_set_sense(list->ctsio, /*current_error*/ 1,
839 ctl_set_task_aborted(list->ctsio);
857 ctl_set_sense(list->ctsio, /*current_error*/ 1,
888 ctl_set_sense(list->ctsio, /*current_error*/ 1,
991 ctl_set_task_aborted(list->ctsio);
1005 ctl_set_sense(list->ctsio, /*current_error*/ 1,
1055 ctl_set_task_aborted(list->ctsio);
1069 ctl_set_sense(list->ctsio, /*current_error*/ 1,
1192 ctl_set_task_aborted(list->ctsio);
1196 list->ctsio->io_hdr.status =
1198 list->ctsio->scsi_status = list->fwd_scsi_status;
1199 list->ctsio->sense_data = list->fwd_sense_data;
1200 list->ctsio->sense_len = list->fwd_sense_len;
1202 ctl_set_invalid_field(list->ctsio,
1228 ctl_set_invalid_field(list->ctsio, /*sks_valid*/ 0,
1250 ctl_set_invalid_field(list->ctsio, /*sks_valid*/ 0,
1349 ctl_set_task_aborted(list->ctsio);
1353 list->ctsio->io_hdr.status =
1355 list->ctsio->scsi_status = list->fwd_scsi_status;
1356 list->ctsio->sense_data = list->fwd_sense_data;
1357 list->ctsio->sense_len = list->fwd_sense_len;
1359 ctl_set_invalid_field(list->ctsio,
1423 struct ctl_scsiio *ctsio = list->ctsio;
1454 ctl_set_sense(ctsio, /*current_error*/ 1,
1472 ctl_set_success(ctsio);
1492 list->sense_data = ctsio->sense_data;
1493 list->sense_len = ctsio->sense_len;
1494 list->scsi_status = ctsio->scsi_status;
1498 ctl_done((union ctl_io *)ctsio);
1664 ctl_extended_copy_lid1(struct ctl_scsiio *ctsio)
1666 struct ctl_lun *lun = CTL_LUN(ctsio);
1678 cdb = (struct scsi_extended_copy *)ctsio->cdb;
1682 ctl_set_success(ctsio);
1688 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1,
1697 if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) {
1698 ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);
1699 ctsio->kern_data_len = len;
1700 ctsio->kern_total_len = len;
1701 ctsio->kern_rel_offset = 0;
1702 ctsio->kern_sg_entries = 0;
1703 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
1704 ctsio->be_move_done = ctl_config_move_done;
1705 ctl_datamove((union ctl_io *)ctsio);
1710 data = (struct scsi_extended_copy_lid1_data *)ctsio->kern_data_ptr;
1715 ctl_set_sense(ctsio, /*current_error*/ 1,
1721 ctl_set_sense(ctsio, /*current_error*/ 1,
1730 ctl_set_param_len_error(ctsio);
1740 list->init_port = ctsio->io_hdr.nexus.targ_port;
1741 list->init_idx = ctl_get_initindex(&ctsio->io_hdr.nexus);
1744 list->params = ctsio->kern_data_ptr;
1751 ctl_set_sense(ctsio, /*current_error*/ 1,
1761 ctl_set_sense(ctsio, /*current_error*/ 1,
1771 ctl_set_sense(ctsio, /*current_error*/ 1,
1784 list->ctsio = ctsio;
1792 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
1809 if (ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) {
1810 free(ctsio->kern_data_ptr, M_CTL);
1811 ctsio->io_hdr.flags &= ~CTL_FLAG_ALLOCATED;
1813 ctl_done((union ctl_io *)ctsio);
1818 ctl_extended_copy_lid4(struct ctl_scsiio *ctsio)
1820 struct ctl_lun *lun = CTL_LUN(ctsio);
1832 cdb = (struct scsi_extended_copy *)ctsio->cdb;
1836 ctl_set_success(ctsio);
1842 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1,
1851 if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) {
1852 ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);
1853 ctsio->kern_data_len = len;
1854 ctsio->kern_total_len = len;
1855 ctsio->kern_rel_offset = 0;
1856 ctsio->kern_sg_entries = 0;
1857 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
1858 ctsio->be_move_done = ctl_config_move_done;
1859 ctl_datamove((union ctl_io *)ctsio);
1864 data = (struct scsi_extended_copy_lid4_data *)ctsio->kern_data_ptr;
1869 ctl_set_sense(ctsio, /*current_error*/ 1,
1875 ctl_set_sense(ctsio, /*current_error*/ 1,
1884 ctl_set_param_len_error(ctsio);
1894 list->init_port = ctsio->io_hdr.nexus.targ_port;
1895 list->init_idx = ctl_get_initindex(&ctsio->io_hdr.nexus);
1898 list->params = ctsio->kern_data_ptr;
1905 ctl_set_sense(ctsio, /*current_error*/ 1,
1915 ctl_set_sense(ctsio, /*current_error*/ 1,
1925 ctl_set_sense(ctsio, /*current_error*/ 1,
1938 list->ctsio = ctsio;
1946 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
1963 if (ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) {
1964 free(ctsio->kern_data_ptr, M_CTL);
1965 ctsio->io_hdr.flags &= ~CTL_FLAG_ALLOCATED;
1967 ctl_done((union ctl_io *)ctsio);
2019 ctl_populate_token(struct ctl_scsiio *ctsio)
2021 struct ctl_softc *softc = CTL_SOFTC(ctsio);
2022 struct ctl_port *port = CTL_PORT(ctsio);
2023 struct ctl_lun *lun = CTL_LUN(ctsio);
2033 cdb = (struct scsi_populate_token *)ctsio->cdb;
2039 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1,
2048 if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) {
2049 ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);
2050 ctsio->kern_data_len = len;
2051 ctsio->kern_total_len = len;
2052 ctsio->kern_rel_offset = 0;
2053 ctsio->kern_sg_entries = 0;
2054 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
2055 ctsio->be_move_done = ctl_config_move_done;
2056 ctl_datamove((union ctl_io *)ctsio);
2061 data = (struct scsi_populate_token_data *)ctsio->kern_data_ptr;
2065 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0,
2073 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0,
2087 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
2096 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0,
2106 ctl_set_lba_out_of_range(ctsio, lba);
2112 ctl_set_invalid_field(ctsio, /*sks_valid*/ 0,
2120 list->init_port = ctsio->io_hdr.nexus.targ_port;
2121 list->init_idx = ctl_get_initindex(&ctsio->io_hdr.nexus);
2124 list->ctsio = ctsio;
2131 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
2146 token->params = ctsio->kern_data_ptr;
2169 ctl_set_success(ctsio);
2170 ctl_done((union ctl_io *)ctsio);
2174 if (ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) {
2175 free(ctsio->kern_data_ptr, M_CTL);
2176 ctsio->io_hdr.flags &= ~CTL_FLAG_ALLOCATED;
2178 ctl_done((union ctl_io *)ctsio);
2183 ctl_write_using_token(struct ctl_scsiio *ctsio)
2185 struct ctl_softc *softc = CTL_SOFTC(ctsio);
2186 struct ctl_lun *lun = CTL_LUN(ctsio);
2196 cdb = (struct scsi_write_using_token *)ctsio->cdb;
2202 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 1,
2211 if ((ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) == 0) {
2212 ctsio->kern_data_ptr = malloc(len, M_CTL, M_WAITOK);
2213 ctsio->kern_data_len = len;
2214 ctsio->kern_total_len = len;
2215 ctsio->kern_rel_offset = 0;
2216 ctsio->kern_sg_entries = 0;
2217 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
2218 ctsio->be_move_done = ctl_config_move_done;
2219 ctl_datamove((union ctl_io *)ctsio);
2224 data = (struct scsi_write_using_token_data *)ctsio->kern_data_ptr;
2228 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0,
2236 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1, /*command*/ 0,
2252 ctl_set_lba_out_of_range(ctsio, lba);
2258 ctl_set_invalid_field(ctsio, /*sks_valid*/ 0,
2266 list->init_port = ctsio->io_hdr.nexus.targ_port;
2267 list->init_idx = ctl_get_initindex(&ctsio->io_hdr.nexus);
2270 list->params = ctsio->kern_data_ptr;
2275 list->ctsio = ctsio;
2282 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
2318 ctl_set_sense(ctsio, /*current_error*/ 1,
2328 if (ctsio->io_hdr.flags & CTL_FLAG_ALLOCATED) {
2329 free(ctsio->kern_data_ptr, M_CTL);
2330 ctsio->io_hdr.flags &= ~CTL_FLAG_ALLOCATED;
2332 ctl_done((union ctl_io *)ctsio);
2337 ctl_receive_rod_token_information(struct ctl_scsiio *ctsio)
2339 struct ctl_lun *lun = CTL_LUN(ctsio);
2351 cdb = (struct scsi_receive_rod_token_information *)ctsio->cdb;
2357 ctl_get_initindex(&ctsio->io_hdr.nexus));
2360 ctl_set_invalid_field(ctsio, /*sks_valid*/ 1,
2363 ctl_done((union ctl_io *)ctsio);
2377 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
2378 ctsio->kern_sg_entries = 0;
2379 ctsio->kern_rel_offset = 0;
2380 ctsio->kern_data_len = min(total_len, alloc_len);
2381 ctsio->kern_total_len = ctsio->kern_data_len;
2383 data = (struct scsi_receive_copy_status_lid4_data *)ctsio->kern_data_ptr;
2415 ctl_set_success(ctsio);
2416 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
2417 ctsio->be_move_done = ctl_config_move_done;
2418 ctl_datamove((union ctl_io *)ctsio);
2423 ctl_report_all_rod_tokens(struct ctl_scsiio *ctsio)
2425 struct ctl_softc *softc = CTL_SOFTC(ctsio);
2434 cdb = (struct scsi_report_all_rod_tokens *)ctsio->cdb;
2448 ctsio->kern_data_ptr = malloc(total_len, M_CTL, M_WAITOK | M_ZERO);
2449 ctsio->kern_sg_entries = 0;
2450 ctsio->kern_rel_offset = 0;
2451 ctsio->kern_data_len = min(total_len, alloc_len);
2452 ctsio->kern_total_len = ctsio->kern_data_len;
2454 data = (struct scsi_report_all_rod_tokens_data *)ctsio->kern_data_ptr;
2469 ctl_set_success(ctsio);
2470 ctsio->io_hdr.flags |= CTL_FLAG_ALLOCATED;
2471 ctsio->be_move_done = ctl_config_move_done;
2472 ctl_datamove((union ctl_io *)ctsio);