Lines Matching refs:cmd

75 static fct_status_t fcoet_send_sol_els(fct_cmd_t *cmd);
76 static fct_status_t fcoet_send_sol_ct(fct_cmd_t *cmd);
77 static fct_status_t fcoet_send_good_status(fct_cmd_t *cmd);
78 static fct_status_t fcoet_send_els_response(fct_cmd_t *cmd);
79 static fct_status_t fcoet_send_abts_response(fct_cmd_t *cmd, uint32_t flags);
152 fcoet_send_cmd(fct_cmd_t *cmd) in fcoet_send_cmd() argument
154 if (cmd->cmd_type == FCT_CMD_SOL_ELS) { in fcoet_send_cmd()
155 return (fcoet_send_sol_els(cmd)); in fcoet_send_cmd()
156 } else if (cmd->cmd_type == FCT_CMD_SOL_CT) { in fcoet_send_cmd()
157 return (fcoet_send_sol_ct(cmd)); in fcoet_send_cmd()
168 fcoet_send_cmd_response(fct_cmd_t *cmd, uint32_t ioflags) in fcoet_send_cmd_response() argument
172 if (cmd->cmd_type == FCT_CMD_FCP_XCHG) { in fcoet_send_cmd_response()
176 return (fcoet_send_status(cmd)); in fcoet_send_cmd_response()
180 if (cmd->cmd_type == FCT_CMD_RCVD_ELS) { in fcoet_send_cmd_response()
184 return (fcoet_send_els_response(cmd)); in fcoet_send_cmd_response()
189 cmd->cmd_handle = 0; in fcoet_send_cmd_response()
192 if (cmd->cmd_type == FCT_CMD_RCVD_ABTS) { in fcoet_send_cmd_response()
193 return (fcoet_send_abts_response(cmd, 0)); in fcoet_send_cmd_response()
201 "handle FCT_IOF_FORCE_FCA_DONE for cmd %p, ioflags-%x", (void *)cmd, in fcoet_send_cmd_response()
203 (void) fct_port_shutdown(CMD2SS(cmd)->ss_port, in fcoet_send_cmd_response()
213 fcoet_xfer_scsi_data(fct_cmd_t *cmd, stmf_data_buf_t *dbuf, uint32_t ioflags) in fcoet_xfer_scsi_data() argument
221 fcoet_exchange_t *xch = CMD2XCH(cmd); in fcoet_xfer_scsi_data()
237 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame( in fcoet_xfer_scsi_data()
238 CMD2SS(cmd)->ss_eport, sizeof (fcoe_fcp_xfer_rdy_t) + in fcoet_xfer_scsi_data()
244 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_xfer_scsi_data()
252 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_xfer_scsi_data()
253 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_xfer_scsi_data()
254 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_xfer_scsi_data()
255 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_xfer_scsi_data()
258 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_xfer_scsi_data()
266 frm_num = (dbuf->db_data_size + CMD2SS(cmd)->ss_fcp_data_payload_size - in fcoet_xfer_scsi_data()
267 1) / CMD2SS(cmd)->ss_fcp_data_payload_size; in fcoet_xfer_scsi_data()
273 data_size = CMD2SS(cmd)->ss_fcp_data_payload_size; in fcoet_xfer_scsi_data()
276 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame( in fcoet_xfer_scsi_data()
277 CMD2SS(cmd)->ss_eport, data_size + FCFH_SIZE, in fcoet_xfer_scsi_data()
283 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_xfer_scsi_data()
288 FCOET_BUSY_XCHG(CMD2XCH(cmd)); in fcoet_xfer_scsi_data()
302 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_xfer_scsi_data()
303 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_xfer_scsi_data()
304 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_xfer_scsi_data()
305 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_xfer_scsi_data()
317 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_xfer_scsi_data()
324 fcoet_abort_cmd(struct fct_local_port *port, fct_cmd_t *cmd, uint32_t flags) in fcoet_abort_cmd() argument
330 cmd, cmd->cmd_fca_private, cmd->cmd_specific); in fcoet_abort_cmd()
331 switch (cmd->cmd_type) { in fcoet_abort_cmd()
343 if (CMD2XCH(cmd)->xch_flags & XCH_FLAG_FCT_CALLED_ABORT) { in fcoet_abort_cmd()
347 CMD2XCH(cmd)->xch_flags |= XCH_FLAG_FCT_CALLED_ABORT; in fcoet_abort_cmd()
348 (void) fcoet_clear_unsol_exchange(CMD2XCH(cmd)); in fcoet_abort_cmd()
351 CMD2XCH(cmd)->xch_start_time = ddi_get_lbolt(); in fcoet_abort_cmd()
353 CMD2XCH(cmd)); in fcoet_abort_cmd()
361 if (CMD2XCH(cmd)->xch_flags & XCH_FLAG_FCT_CALLED_ABORT) { in fcoet_abort_cmd()
365 CMD2XCH(cmd)->xch_flags |= XCH_FLAG_FCT_CALLED_ABORT; in fcoet_abort_cmd()
366 fcoet_clear_sol_exchange(CMD2XCH(cmd)); in fcoet_abort_cmd()
370 CMD2XCH(cmd)->xch_start_time = ddi_get_lbolt(); in fcoet_abort_cmd()
373 CMD2XCH(cmd)); in fcoet_abort_cmd()
385 (cmd->cmd_type != FCT_CMD_FCP_XCHG)) { in fcoet_abort_cmd()
386 cmd->cmd_handle = 0; in fcoet_abort_cmd()
404 fct_cmd_t *cmd; in fcoet_send_sol_flogi() local
412 cmd = (fct_cmd_t *)fct_alloc(FCT_STRUCT_CMD_SOL_ELS, in fcoet_send_sol_flogi()
414 xch = CMD2XCH(cmd); in fcoet_send_sol_flogi()
415 els = CMD2ELS(cmd); in fcoet_send_sol_flogi()
425 xch->xch_cmd = cmd; in fcoet_send_sol_flogi()
530 fcoet_ctl(struct fct_local_port *port, int cmd, void *arg) in fcoet_ctl() argument
539 switch (cmd) { in fcoet_ctl()
607 FCOET_LOG("fcoet_ctl", "Unsupported cmd %x", cmd); in fcoet_ctl()
642 fcoet_send_sol_els(fct_cmd_t *cmd) in fcoet_send_sol_els() argument
647 xch = CMD2XCH(cmd); in fcoet_send_sol_els()
649 xch->xch_ss = CMD2SS(cmd); in fcoet_send_sol_els()
650 xch->xch_cmd = cmd; in fcoet_send_sol_els()
662 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_sol_els()
663 CMD2ELS(cmd)->els_req_size + FCFH_SIZE, NULL); in fcoet_send_sol_els()
668 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_send_sol_els()
675 bcopy(CMD2ELS(cmd)->els_req_payload, frm->frm_payload, in fcoet_send_sol_els()
683 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_sol_els()
684 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_sol_els()
685 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_sol_els()
691 fcoet_send_sol_ct(fct_cmd_t *cmd) in fcoet_send_sol_ct() argument
696 xch = CMD2XCH(cmd); in fcoet_send_sol_ct()
698 xch->xch_ss = CMD2SS(cmd); in fcoet_send_sol_ct()
699 xch->xch_cmd = cmd; in fcoet_send_sol_ct()
711 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_sol_ct()
712 CMD2ELS(cmd)->els_req_size + FCFH_SIZE, NULL); in fcoet_send_sol_ct()
717 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_send_sol_ct()
724 bcopy(CMD2ELS(cmd)->els_req_payload, frm->frm_payload, in fcoet_send_sol_ct()
732 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_sol_ct()
733 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_sol_ct()
734 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_sol_ct()
740 fcoet_send_status(fct_cmd_t *cmd) in fcoet_send_status() argument
743 scsi_task_t *task = CMD2TASK(cmd); in fcoet_send_status()
751 return (fcoet_send_good_status(cmd)); in fcoet_send_status()
760 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_status()
766 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_send_status()
772 FCOET_BUSY_XCHG(CMD2XCH(cmd)); in fcoet_send_status()
812 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_send_status()
813 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_send_status()
814 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_status()
815 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_status()
817 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_status()
823 fcoet_send_els_response(fct_cmd_t *cmd) in fcoet_send_els_response() argument
827 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_els_response()
828 CMD2ELS(cmd)->els_resp_size + FCFH_SIZE, NULL); in fcoet_send_els_response()
833 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_send_els_response()
839 FCOET_BUSY_XCHG(CMD2XCH(cmd)); in fcoet_send_els_response()
842 bcopy(CMD2ELS(cmd)->els_resp_payload, frm->frm_payload, in fcoet_send_els_response()
848 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_send_els_response()
849 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_send_els_response()
850 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_els_response()
851 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_els_response()
852 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_els_response()
859 fcoet_send_abts_response(fct_cmd_t *cmd, uint32_t flags) in fcoet_send_abts_response() argument
862 fct_rcvd_abts_t *abts = (fct_rcvd_abts_t *)cmd->cmd_specific; in fcoet_send_abts_response()
867 cmd->cmd_fca_private = NULL; in fcoet_send_abts_response()
868 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_abts_response()
883 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_send_abts_response()
884 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_send_abts_response()
885 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_abts_response()
886 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_abts_response()
887 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_abts_response()
1022 fcoet_send_good_status(fct_cmd_t *cmd) in fcoet_send_good_status() argument
1028 frm = CMD2SS(cmd)->ss_eport->eport_alloc_frame(CMD2SS(cmd)->ss_eport, in fcoet_send_good_status()
1034 fcoet_init_tfm(frm, CMD2XCH(cmd)); in fcoet_send_good_status()
1040 FCOET_BUSY_XCHG(CMD2XCH(cmd)); in fcoet_send_good_status()
1050 FFM_OXID(cmd->cmd_oxid, frm); in fcoet_send_good_status()
1051 FFM_RXID(cmd->cmd_rxid, frm); in fcoet_send_good_status()
1052 FFM_S_ID(cmd->cmd_lportid, frm); in fcoet_send_good_status()
1053 FFM_D_ID(cmd->cmd_rportid, frm); in fcoet_send_good_status()
1056 CMD2SS(cmd)->ss_eport->eport_tx_frame(frm); in fcoet_send_good_status()