Lines Matching refs:cmd

72 spc_emulate_inquiry_std(struct se_cmd *cmd, unsigned char *buf)  in spc_emulate_inquiry_std()  argument
74 struct se_lun *lun = cmd->se_lun; in spc_emulate_inquiry_std()
76 struct se_device *dev = cmd->se_dev; in spc_emulate_inquiry_std()
77 struct se_session *sess = cmd->se_sess; in spc_emulate_inquiry_std()
114 if (dev->dev_attrib.pi_prot_type || cmd->se_sess->sess_prot_type) in spc_emulate_inquiry_std()
146 if (cmd->se_dev->transport->get_device_type(dev) == TYPE_DISK) in spc_emulate_inquiry_std()
157 spc_emulate_evpd_80(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_80() argument
159 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_80()
221 spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_83() argument
223 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_83()
224 struct se_lun *lun = cmd->se_lun; in spc_emulate_evpd_83()
466 spc_emulate_evpd_86(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_86() argument
468 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_86()
469 struct se_session *sess = cmd->se_sess; in spc_emulate_evpd_86()
478 cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE1_PROT) in spc_emulate_evpd_86()
481 cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE3_PROT) in spc_emulate_evpd_86()
488 (dev->dev_attrib.pi_prot_type || cmd->se_sess->sess_prot_type)) { in spc_emulate_evpd_86()
499 spin_lock(&cmd->se_dev->t10_alua.lba_map_lock); in spc_emulate_evpd_86()
502 spin_unlock(&cmd->se_dev->t10_alua.lba_map_lock); in spc_emulate_evpd_86()
508 spc_emulate_evpd_b0(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_b0() argument
510 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_b0()
548 if (cmd->se_tfo->max_data_sg_nents) { in spc_emulate_evpd_b0()
549 mtl = (cmd->se_tfo->max_data_sg_nents * PAGE_SIZE) / in spc_emulate_evpd_b0()
606 spc_emulate_evpd_b1(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_b1() argument
608 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_b1()
619 spc_emulate_evpd_b2(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_b2() argument
621 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_b2()
683 spc_emulate_evpd_b3(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_b3() argument
685 struct se_device *dev = cmd->se_dev; in spc_emulate_evpd_b3()
696 spc_emulate_evpd_00(struct se_cmd *cmd, unsigned char *buf);
714 spc_emulate_evpd_00(struct se_cmd *cmd, unsigned char *buf) in spc_emulate_evpd_00() argument
723 if (cmd->se_dev->dev_flags & DF_EMULATED_VPD_UNIT_SERIAL) { in spc_emulate_evpd_00()
733 spc_emulate_inquiry(struct se_cmd *cmd) in spc_emulate_inquiry() argument
735 struct se_device *dev = cmd->se_dev; in spc_emulate_inquiry()
737 unsigned char *cdb = cmd->t_task_cdb; in spc_emulate_inquiry()
759 ret = spc_emulate_inquiry_std(cmd, buf); in spc_emulate_inquiry()
767 ret = evpd_handlers[p].emulate(cmd, buf); in spc_emulate_inquiry()
777 rbuf = transport_kmap_data_sg(cmd); in spc_emulate_inquiry()
779 memcpy(rbuf, buf, min_t(u32, SE_INQUIRY_BUF, cmd->data_length)); in spc_emulate_inquiry()
780 transport_kunmap_data_sg(cmd); in spc_emulate_inquiry()
785 target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, len); in spc_emulate_inquiry()
789 static int spc_modesense_rwrecovery(struct se_cmd *cmd, u8 pc, u8 *p) in spc_modesense_rwrecovery() argument
802 static int spc_modesense_control(struct se_cmd *cmd, u8 pc, u8 *p) in spc_modesense_control() argument
804 struct se_device *dev = cmd->se_dev; in spc_modesense_control()
805 struct se_session *sess = cmd->se_sess; in spc_modesense_control()
925 static int spc_modesense_caching(struct se_cmd *cmd, u8 pc, u8 *p) in spc_modesense_caching() argument
927 struct se_device *dev = cmd->se_dev; in spc_modesense_caching()
944 static int spc_modesense_informational_exceptions(struct se_cmd *cmd, u8 pc, unsigned char *p) in spc_modesense_informational_exceptions() argument
1018 static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd) in spc_emulate_modesense() argument
1020 struct se_device *dev = cmd->se_dev; in spc_emulate_modesense()
1021 char *cdb = cmd->t_task_cdb; in spc_emulate_modesense()
1024 int ten = (cmd->t_task_cdb[0] == MODE_SENSE_10); in spc_emulate_modesense()
1043 if (cmd->se_lun->lun_access_ro || target_lun_is_rdonly(cmd)) in spc_emulate_modesense()
1100 ret = modesense_handlers[i].emulate(cmd, pc, &buf[length]); in spc_emulate_modesense()
1113 length += modesense_handlers[i].emulate(cmd, pc, &buf[length]); in spc_emulate_modesense()
1133 rbuf = transport_kmap_data_sg(cmd); in spc_emulate_modesense()
1135 memcpy(rbuf, buf, min_t(u32, SE_MODE_PAGE_BUF, cmd->data_length)); in spc_emulate_modesense()
1136 transport_kunmap_data_sg(cmd); in spc_emulate_modesense()
1139 target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, length); in spc_emulate_modesense()
1143 static sense_reason_t spc_emulate_modeselect(struct se_cmd *cmd) in spc_emulate_modeselect() argument
1145 char *cdb = cmd->t_task_cdb; in spc_emulate_modeselect()
1156 if (!cmd->data_length) { in spc_emulate_modeselect()
1157 target_complete_cmd(cmd, SAM_STAT_GOOD); in spc_emulate_modeselect()
1161 if (cmd->data_length < off + 2) in spc_emulate_modeselect()
1164 buf = transport_kmap_data_sg(cmd); in spc_emulate_modeselect()
1180 length = modesense_handlers[i].emulate(cmd, 0, tbuf); in spc_emulate_modeselect()
1188 if (cmd->data_length < off + length) { in spc_emulate_modeselect()
1197 transport_kunmap_data_sg(cmd); in spc_emulate_modeselect()
1200 target_complete_cmd(cmd, SAM_STAT_GOOD); in spc_emulate_modeselect()
1204 static sense_reason_t spc_emulate_request_sense(struct se_cmd *cmd) in spc_emulate_request_sense() argument
1206 unsigned char *cdb = cmd->t_task_cdb; in spc_emulate_request_sense()
1210 bool desc_format = target_sense_desc_format(cmd->se_dev); in spc_emulate_request_sense()
1220 rbuf = transport_kmap_data_sg(cmd); in spc_emulate_request_sense()
1224 if (!core_scsi3_ua_clear_for_request_sense(cmd, &ua_asc, &ua_ascq)) in spc_emulate_request_sense()
1230 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); in spc_emulate_request_sense()
1231 transport_kunmap_data_sg(cmd); in spc_emulate_request_sense()
1233 target_complete_cmd(cmd, SAM_STAT_GOOD); in spc_emulate_request_sense()
1237 sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd) in spc_emulate_report_luns() argument
1240 struct se_session *sess = cmd->se_sess; in spc_emulate_report_luns()
1247 buf = transport_kmap_data_sg(cmd); in spc_emulate_report_luns()
1248 if (cmd->data_length && !buf) in spc_emulate_report_luns()
1269 if (offset >= cmd->data_length) in spc_emulate_report_luns()
1274 min(8u, cmd->data_length - offset)); in spc_emulate_report_luns()
1288 if (cmd->data_length > 8) in spc_emulate_report_luns()
1290 min(8u, cmd->data_length - offset)); in spc_emulate_report_luns()
1296 memcpy(buf, &len, min_t(int, sizeof len, cmd->data_length)); in spc_emulate_report_luns()
1297 transport_kunmap_data_sg(cmd); in spc_emulate_report_luns()
1300 target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, 8 + lun_count * 8); in spc_emulate_report_luns()
1306 spc_emulate_testunitready(struct se_cmd *cmd) in spc_emulate_testunitready() argument
1308 target_complete_cmd(cmd, SAM_STAT_GOOD); in spc_emulate_testunitready()
1428 struct se_cmd *cmd) in tcm_is_ws_enabled() argument
1430 struct exec_cmd_ops *ops = cmd->protocol_data; in tcm_is_ws_enabled()
1431 struct se_device *dev = cmd->se_dev; in tcm_is_ws_enabled()
1456 struct se_cmd *cmd) in tcm_is_caw_enabled() argument
1458 struct se_device *dev = cmd->se_dev; in tcm_is_caw_enabled()
1497 struct se_cmd *cmd) in tcm_is_rep_ref_enabled() argument
1499 struct se_device *dev = cmd->se_dev; in tcm_is_rep_ref_enabled()
1543 struct se_cmd *cmd) in tcm_is_unmap_enabled() argument
1545 struct exec_cmd_ops *ops = cmd->protocol_data; in tcm_is_unmap_enabled()
1546 struct se_device *dev = cmd->se_dev; in tcm_is_unmap_enabled()
1666 struct se_cmd *cmd) in tcm_is_pr_enabled() argument
1668 struct se_device *dev = cmd->se_dev; in tcm_is_pr_enabled()
1884 struct se_cmd *cmd) in tcm_is_3pc_enabled() argument
1886 struct se_device *dev = cmd->se_dev; in tcm_is_3pc_enabled()
1946 struct se_cmd *cmd) in spc_rsoc_enabled() argument
1948 struct se_device *dev = cmd->se_dev; in spc_rsoc_enabled()
1967 struct se_cmd *cmd) in tcm_is_set_tpg_enabled() argument
1970 struct se_lun *l_lun = cmd->se_lun; in tcm_is_set_tpg_enabled()
2113 spc_rsoc_get_descr(struct se_cmd *cmd, struct target_opcode_descriptor **opcode) in spc_rsoc_get_descr() argument
2116 struct se_session *sess = cmd->se_sess; in spc_rsoc_get_descr()
2117 unsigned char *cdb = cmd->t_task_cdb; in spc_rsoc_get_descr()
2130 cmd->se_tfo->fabric_name, opts, in spc_rsoc_get_descr()
2131 cmd->se_lun->unpacked_lun, in spc_rsoc_get_descr()
2154 if (!descr->enabled || descr->enabled(descr, cmd)) in spc_rsoc_get_descr()
2169 cmd)) in spc_rsoc_get_descr()
2183 cmd)) in spc_rsoc_get_descr()
2193 spc_emulate_report_supp_op_codes(struct se_cmd *cmd) in spc_emulate_report_supp_op_codes() argument
2197 unsigned char *cdb = cmd->t_task_cdb; in spc_emulate_report_supp_op_codes()
2206 if (!cmd->se_dev->dev_attrib.emulate_rsoc) in spc_emulate_report_supp_op_codes()
2209 rbuf = transport_kmap_data_sg(cmd); in spc_emulate_report_supp_op_codes()
2210 if (cmd->data_length && !rbuf) { in spc_emulate_report_supp_op_codes()
2218 ret = spc_rsoc_get_descr(cmd, &descr); in spc_emulate_report_supp_op_codes()
2240 if (descr->enabled && !descr->enabled(descr, cmd)) in spc_emulate_report_supp_op_codes()
2250 cmd->se_dev); in spc_emulate_report_supp_op_codes()
2253 memcpy(rbuf, buf, min_t(u32, response_length, cmd->data_length)); in spc_emulate_report_supp_op_codes()
2256 transport_kunmap_data_sg(cmd); in spc_emulate_report_supp_op_codes()
2259 target_complete_cmd_with_length(cmd, SAM_STAT_GOOD, response_length); in spc_emulate_report_supp_op_codes()
2264 spc_parse_cdb(struct se_cmd *cmd, unsigned int *size) in spc_parse_cdb() argument
2266 struct se_device *dev = cmd->se_dev; in spc_parse_cdb()
2267 unsigned char *cdb = cmd->t_task_cdb; in spc_parse_cdb()
2290 cmd->execute_cmd = spc_emulate_modeselect; in spc_parse_cdb()
2294 cmd->execute_cmd = spc_emulate_modeselect; in spc_parse_cdb()
2298 cmd->execute_cmd = spc_emulate_modesense; in spc_parse_cdb()
2302 cmd->execute_cmd = spc_emulate_modesense; in spc_parse_cdb()
2310 cmd->execute_cmd = target_scsi3_emulate_pr_in; in spc_parse_cdb()
2314 cmd->execute_cmd = target_scsi3_emulate_pr_out; in spc_parse_cdb()
2321 *size = cmd->data_length; in spc_parse_cdb()
2323 cmd->execute_cmd = target_scsi2_reservation_release; in spc_parse_cdb()
2334 *size = cmd->data_length; in spc_parse_cdb()
2336 cmd->execute_cmd = target_scsi2_reservation_reserve; in spc_parse_cdb()
2340 cmd->execute_cmd = spc_emulate_request_sense; in spc_parse_cdb()
2349 cmd->sam_task_attr = TCM_HEAD_TAG; in spc_parse_cdb()
2350 cmd->execute_cmd = spc_emulate_inquiry; in spc_parse_cdb()
2358 cmd->execute_cmd = target_do_xcopy; in spc_parse_cdb()
2362 cmd->execute_cmd = target_do_receive_copy_results; in spc_parse_cdb()
2376 cmd->execute_cmd = spc_emulate_report_luns; in spc_parse_cdb()
2382 cmd->sam_task_attr = TCM_HEAD_TAG; in spc_parse_cdb()
2385 cmd->execute_cmd = spc_emulate_testunitready; in spc_parse_cdb()
2395 cmd->execute_cmd = in spc_parse_cdb()
2400 cmd->execute_cmd = in spc_parse_cdb()
2417 cmd->execute_cmd = in spc_parse_cdb()