Lines Matching refs:cmd

270 ql_xioctl(ql_adapter_state_t *ha, int cmd, intptr_t arg, int mode,  in ql_xioctl()  argument
275 QL_PRINT_9(ha, "started, cmd=%d\n", cmd); in ql_xioctl()
282 switch (cmd) { in ql_xioctl()
323 rval = ql_sdm_ioctl(ha, cmd, (void *)arg, mode); in ql_xioctl()
327 EL(ha, "function=%d not supported\n", cmd); in ql_xioctl()
361 EXT_IOCTL *cmd; in ql_sdm_ioctl() local
368 if ((rval = ql_sdm_setup(ha, &cmd, arg, mode, in ql_sdm_ioctl()
385 if (cmd->HbaSelect > ha->max_vports) { in ql_sdm_ioctl()
387 cmd->HbaSelect); in ql_sdm_ioctl()
388 cmd->Status = EXT_STATUS_INVALID_VPINDEX; in ql_sdm_ioctl()
389 cmd->ResponseLen = 0; in ql_sdm_ioctl()
395 if (cmd->HbaSelect != 0) { in ql_sdm_ioctl()
398 if (vha->vp_index == cmd->HbaSelect) { in ql_sdm_ioctl()
410 cmd->Status = EXT_STATUS_INVALID_VPINDEX; in ql_sdm_ioctl()
411 cmd->ResponseLen = 0; in ql_sdm_ioctl()
430 cmd->Status = EXT_STATUS_BUSY; in ql_sdm_ioctl()
431 cmd->ResponseLen = 0; in ql_sdm_ioctl()
435 if ((ql_sdm_return(ha, cmd, arg, mode)) == -1) { in ql_sdm_ioctl()
444 ql_query(ha, cmd, mode); in ql_sdm_ioctl()
447 ql_fcct(ha, cmd, mode); in ql_sdm_ioctl()
450 ql_aen_reg(ha, cmd, mode); in ql_sdm_ioctl()
453 ql_aen_get(ha, cmd, mode); in ql_sdm_ioctl()
456 ql_get_host_data(ha, cmd, mode); in ql_sdm_ioctl()
459 ql_set_host_data(ha, cmd, mode); in ql_sdm_ioctl()
462 ql_send_els_rnid(ha, cmd, mode); in ql_sdm_ioctl()
465 ql_scsi_passthru(ha, cmd, mode); in ql_sdm_ioctl()
468 ql_wwpn_to_scsiaddr(ha, cmd, mode); in ql_sdm_ioctl()
471 ql_host_idx(ha, cmd, mode); in ql_sdm_ioctl()
474 ql_host_drvname(ha, cmd, mode); in ql_sdm_ioctl()
477 ql_read_nvram(ha, cmd, mode); in ql_sdm_ioctl()
480 ql_write_nvram(ha, cmd, mode); in ql_sdm_ioctl()
484 ql_read_flash(ha, cmd, mode); in ql_sdm_ioctl()
488 ql_write_flash(ha, cmd, mode); in ql_sdm_ioctl()
491 ql_diagnostic_loopback(ha, cmd, mode); in ql_sdm_ioctl()
494 ql_read_vpd(ha, cmd, mode); in ql_sdm_ioctl()
497 ql_write_vpd(ha, cmd, mode); in ql_sdm_ioctl()
500 ql_get_fcache(ha, cmd, mode); in ql_sdm_ioctl()
503 ql_get_fcache_ex(ha, cmd, mode); in ql_sdm_ioctl()
506 ql_get_sfp(ha, cmd, mode); in ql_sdm_ioctl()
509 ql_port_param(ha, cmd, mode); in ql_sdm_ioctl()
512 ql_get_pci_data(ha, cmd, mode); in ql_sdm_ioctl()
515 ql_get_fwexttrace(ha, cmd, mode); in ql_sdm_ioctl()
518 ql_get_fwfcetrace(ha, cmd, mode); in ql_sdm_ioctl()
521 ql_menlo_reset(ha, cmd, mode); in ql_sdm_ioctl()
524 ql_menlo_get_fw_version(ha, cmd, mode); in ql_sdm_ioctl()
527 ql_menlo_update_fw(ha, cmd, mode); in ql_sdm_ioctl()
530 ql_menlo_manage_info(ha, cmd, mode); in ql_sdm_ioctl()
533 ql_get_vp_cnt_id(ha, cmd, mode); in ql_sdm_ioctl()
536 ql_vp_ioctl(ha, cmd, mode); in ql_sdm_ioctl()
539 ql_access_flash(ha, cmd, mode); in ql_sdm_ioctl()
542 ql_reset_cmd(ha, cmd); in ql_sdm_ioctl()
545 ql_get_temperature(ha, cmd, mode); in ql_sdm_ioctl()
548 ql_dump_cmd(ha, cmd, mode); in ql_sdm_ioctl()
551 ql_serdes_reg(ha, cmd, mode); in ql_sdm_ioctl()
554 ql_serdes_reg_ex(ha, cmd, mode); in ql_sdm_ioctl()
557 ql_els_passthru(ha, cmd, mode); in ql_sdm_ioctl()
560 ql_flash_update_caps(ha, cmd, mode); in ql_sdm_ioctl()
563 ql_get_bbcr_data(ha, cmd, mode); in ql_sdm_ioctl()
569 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_sdm_ioctl()
570 cmd->ResponseLen = 0; in ql_sdm_ioctl()
575 if (ql_sdm_return(ha, cmd, arg, mode) == -1) { in ql_sdm_ioctl()
610 EXT_IOCTL *cmd; in ql_sdm_setup() local
616 cmd = (EXT_IOCTL *)kmem_zalloc(sizeof (EXT_IOCTL), KM_SLEEP); in ql_sdm_setup()
617 if (cmd == NULL) { in ql_sdm_setup()
622 rval = ddi_copyin(arg, (void *)cmd, sizeof (EXT_IOCTL), mode); in ql_sdm_setup()
634 if (val_sig(cmd) == 0) { in ql_sdm_setup()
637 } else if (cmd->Version > EXT_VERSION) { in ql_sdm_setup()
645 *cmd_struct = cmd; in ql_sdm_setup()
646 cmd->Status = EXT_STATUS_OK; in ql_sdm_setup()
647 cmd->DetailStatus = 0; in ql_sdm_setup()
649 kmem_free((void *)cmd, sizeof (EXT_IOCTL)); in ql_sdm_setup()
708 ql_sdm_return(ql_adapter_state_t *ha, EXT_IOCTL *cmd, void *arg, int mode) in ql_sdm_return() argument
714 rval |= ddi_copyout((void *)&cmd->ResponseLen, in ql_sdm_return()
718 rval |= ddi_copyout((void *)&cmd->Status, in ql_sdm_return()
720 sizeof (cmd->Status), mode); in ql_sdm_return()
721 rval |= ddi_copyout((void *)&cmd->DetailStatus, in ql_sdm_return()
723 sizeof (cmd->DetailStatus), mode); in ql_sdm_return()
725 kmem_free((void *)cmd, sizeof (EXT_IOCTL)); in ql_sdm_return()
754 ql_query(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_query() argument
757 cmd->SubCode); in ql_query()
760 switch (cmd->SubCode) { in ql_query()
762 ql_qry_hba_node(ha, cmd, mode); in ql_query()
765 ql_qry_hba_port(ha, cmd, mode); in ql_query()
768 ql_qry_disc_port(ha, cmd, mode); in ql_query()
771 ql_qry_disc_tgt(ha, cmd, mode); in ql_query()
774 ql_qry_driver(ha, cmd, mode); in ql_query()
777 ql_qry_fw(ha, cmd, mode); in ql_query()
780 ql_qry_chip(ha, cmd, mode); in ql_query()
783 ql_qry_cna_port(ha, cmd, mode); in ql_query()
786 ql_qry_adapter_versions(ha, cmd, mode); in ql_query()
791 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_query()
793 cmd->SubCode); in ql_query()
816 ql_qry_hba_node(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_hba_node() argument
824 if (cmd->ResponseLen < sizeof (EXT_HBA_NODE)) { in ql_qry_hba_node()
825 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_hba_node()
826 cmd->DetailStatus = sizeof (EXT_HBA_NODE); in ql_qry_hba_node()
828 "Len=%xh\n", cmd->ResponseLen); in ql_qry_hba_node()
829 cmd->ResponseLen = 0; in ql_qry_hba_node()
926 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_hba_node()
928 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_hba_node()
929 cmd->ResponseLen = 0; in ql_qry_hba_node()
932 cmd->ResponseLen = sizeof (EXT_HBA_NODE); in ql_qry_hba_node()
953 ql_qry_hba_port(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_hba_port() argument
964 if (cmd->ResponseLen < sizeof (EXT_HBA_PORT)) { in ql_qry_hba_port()
965 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_hba_port()
966 cmd->DetailStatus = sizeof (EXT_HBA_PORT); in ql_qry_hba_port()
968 cmd->ResponseLen); in ql_qry_hba_port()
969 cmd->ResponseLen = 0; in ql_qry_hba_port()
1129 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_hba_port()
1132 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_hba_port()
1133 cmd->ResponseLen = 0; in ql_qry_hba_port()
1136 cmd->ResponseLen = sizeof (EXT_HBA_PORT); in ql_qry_hba_port()
1160 ql_qry_disc_port(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_disc_port() argument
1170 if (cmd->ResponseLen < sizeof (EXT_DISC_PORT)) { in ql_qry_disc_port()
1171 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_disc_port()
1172 cmd->DetailStatus = sizeof (EXT_DISC_PORT); in ql_qry_disc_port()
1174 cmd->ResponseLen); in ql_qry_disc_port()
1175 cmd->ResponseLen = 0; in ql_qry_disc_port()
1195 if (inst != cmd->Instance) { in ql_qry_disc_port()
1212 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_qry_disc_port()
1213 EL(ha, "failed, port not found port=%d\n", cmd->Instance); in ql_qry_disc_port()
1214 cmd->ResponseLen = 0; in ql_qry_disc_port()
1245 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_disc_port()
1247 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_disc_port()
1248 cmd->ResponseLen = 0; in ql_qry_disc_port()
1251 cmd->ResponseLen = sizeof (EXT_DISC_PORT); in ql_qry_disc_port()
1274 ql_qry_disc_tgt(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_disc_tgt() argument
1283 cmd->Instance); in ql_qry_disc_tgt()
1285 if (cmd->ResponseLen < sizeof (EXT_DISC_TARGET)) { in ql_qry_disc_tgt()
1286 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_disc_tgt()
1287 cmd->DetailStatus = sizeof (EXT_DISC_TARGET); in ql_qry_disc_tgt()
1289 cmd->ResponseLen); in ql_qry_disc_tgt()
1290 cmd->ResponseLen = 0; in ql_qry_disc_tgt()
1306 if (inst != cmd->Instance) { in ql_qry_disc_tgt()
1323 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_qry_disc_tgt()
1324 cmd->DetailStatus = EXT_DSTATUS_TARGET; in ql_qry_disc_tgt()
1325 EL(ha, "failed, not found target=%d\n", cmd->Instance); in ql_qry_disc_tgt()
1326 cmd->ResponseLen = 0; in ql_qry_disc_tgt()
1358 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_disc_tgt()
1360 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_disc_tgt()
1361 cmd->ResponseLen = 0; in ql_qry_disc_tgt()
1364 cmd->ResponseLen = sizeof (EXT_DISC_TARGET); in ql_qry_disc_tgt()
1385 ql_qry_fw(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_fw() argument
1391 if (cmd->ResponseLen < sizeof (EXT_FW)) { in ql_qry_fw()
1392 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_fw()
1393 cmd->DetailStatus = sizeof (EXT_FW); in ql_qry_fw()
1395 cmd->ResponseLen); in ql_qry_fw()
1396 cmd->ResponseLen = 0; in ql_qry_fw()
1407 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_fw()
1409 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_fw()
1410 cmd->ResponseLen = 0; in ql_qry_fw()
1414 cmd->ResponseLen = sizeof (EXT_FW); in ql_qry_fw()
1435 ql_qry_chip(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_chip() argument
1442 if (cmd->ResponseLen < sizeof (EXT_CHIP)) { in ql_qry_chip()
1443 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_chip()
1444 cmd->DetailStatus = sizeof (EXT_CHIP); in ql_qry_chip()
1446 cmd->ResponseLen); in ql_qry_chip()
1447 cmd->ResponseLen = 0; in ql_qry_chip()
1470 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_chip()
1472 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_chip()
1473 cmd->ResponseLen = 0; in ql_qry_chip()
1476 cmd->ResponseLen = sizeof (EXT_CHIP); in ql_qry_chip()
1497 ql_qry_driver(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_driver() argument
1503 if (cmd->ResponseLen < sizeof (EXT_DRIVER)) { in ql_qry_driver()
1504 cmd->Status = EXT_STATUS_DATA_OVERRUN; in ql_qry_driver()
1505 cmd->DetailStatus = sizeof (EXT_DRIVER); in ql_qry_driver()
1507 cmd->ResponseLen); in ql_qry_driver()
1508 cmd->ResponseLen = 0; in ql_qry_driver()
1521 if (ddi_copyout((void *)&qd, (void *)(uintptr_t)cmd->ResponseAdr, in ql_qry_driver()
1523 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_driver()
1524 cmd->ResponseLen = 0; in ql_qry_driver()
1527 cmd->ResponseLen = sizeof (EXT_DRIVER); in ql_qry_driver()
1548 ql_fcct(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_fcct() argument
1566 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_fcct()
1567 cmd->ResponseLen = 0; in ql_fcct()
1573 cmd->Status = EXT_STATUS_BUSY; in ql_fcct()
1574 cmd->ResponseLen = 0; in ql_fcct()
1589 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_fcct()
1590 cmd->ResponseLen = 0; in ql_fcct()
1598 QL_DUMP_9(cmd, 8, sizeof (EXT_IOCTL)); in ql_fcct()
1604 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_fcct()
1605 cmd->ResponseLen = 0; in ql_fcct()
1609 if (cmd->RequestLen < cmd->ResponseLen) { in ql_fcct()
1610 pld_byte_cnt = cmd->ResponseLen; in ql_fcct()
1612 pld_byte_cnt = cmd->RequestLen; in ql_fcct()
1620 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_fcct()
1621 cmd->ResponseLen = 0; in ql_fcct()
1627 if (ql_get_buffer_data((caddr_t)(uintptr_t)cmd->RequestAdr, pld, in ql_fcct()
1628 cmd->RequestLen, mode) != cmd->RequestLen) { in ql_fcct()
1631 cmd->Status = EXT_STATUS_COPY_ERR; in ql_fcct()
1632 cmd->ResponseLen = 0; in ql_fcct()
1643 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_fcct()
1644 cmd->ResponseLen = 0; in ql_fcct()
1680 pkt->ms24.cmd_byte_count = LE_32(cmd->RequestLen); in ql_fcct()
1683 pkt->ms24.resp_byte_count = LE_32(cmd->ResponseLen); in ql_fcct()
1692 *long_ptr++ = (uint32_t)(LE_32(cmd->RequestLen)); in ql_fcct()
1699 *long_ptr = (uint32_t)LE_32(cmd->ResponseLen); in ql_fcct()
1720 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_fcct()
1721 cmd->ResponseLen = 0; in ql_fcct()
1746 pkt->ms.resp_byte_count = LE_32(cmd->ResponseLen); in ql_fcct()
1747 pkt->ms.dseg[1].length = LE_32(cmd->ResponseLen); in ql_fcct()
1750 pkt->ms.cmd_byte_count = LE_32(cmd->RequestLen); in ql_fcct()
1751 pkt->ms.dseg[0].length = LE_32(cmd->RequestLen); in ql_fcct()
1778 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_fcct()
1779 cmd->ResponseLen = 0; in ql_fcct()
1793 if (cmd->ResponseLen != 0) { in ql_fcct()
1795 cmd->ResponseLen); in ql_fcct()
1796 QL_DUMP_9(pld, 8, cmd->ResponseLen); in ql_fcct()
1800 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_fcct()
1801 cmd->ResponseLen, mode) != cmd->ResponseLen) { in ql_fcct()
1803 cmd->Status = EXT_STATUS_COPY_ERR; in ql_fcct()
1804 cmd->ResponseLen = 0; in ql_fcct()
1831 ql_aen_reg(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_aen_reg() argument
1839 rval = ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, &reg_struct, in ql_aen_reg()
1840 cmd->RequestLen, mode); in ql_aen_reg()
1855 cmd->Status = EXT_STATUS_COPY_ERR; in ql_aen_reg()
1876 ql_aen_get(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_aen_get() argument
1889 request_cnt = (uint8_t)(cmd->ResponseLen / sizeof (EXT_ASYNC_EVENT)); in ql_aen_get()
1892 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_aen_get()
1893 cmd->DetailStatus = EXT_DEF_MAX_AEN_QUEUE; in ql_aen_get()
1896 cmd->ResponseLen = 0; in ql_aen_get()
1934 cmd->ResponseLen = 0; in ql_aen_get()
1936 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_aen_get()
1938 cmd->Status = EXT_STATUS_COPY_ERR; in ql_aen_get()
1939 cmd->ResponseLen = 0; in ql_aen_get()
1942 cmd->ResponseLen = out_size; in ql_aen_get()
2056 ql_scsi_passthru(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_scsi_passthru() argument
2104 if (cmd->SubCode == EXT_SC_SEND_SCSI_PASSTHRU) { in ql_scsi_passthru()
2106 } else if (cmd->SubCode == EXT_SC_SEND_FC_SCSI_PASSTHRU) { in ql_scsi_passthru()
2109 EL(ha, "failed, invalid SubCode=%xh\n", cmd->SubCode); in ql_scsi_passthru()
2110 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_scsi_passthru()
2111 cmd->ResponseLen = 0; in ql_scsi_passthru()
2118 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_scsi_passthru()
2119 cmd->ResponseLen = 0; in ql_scsi_passthru()
2123 if (cmd->RequestLen != pld_size) { in ql_scsi_passthru()
2126 cmd->RequestLen, pld_size); in ql_scsi_passthru()
2127 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_scsi_passthru()
2128 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_scsi_passthru()
2129 cmd->ResponseLen = 0; in ql_scsi_passthru()
2133 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, &pt_req, in ql_scsi_passthru()
2136 cmd->Status = EXT_STATUS_COPY_ERR; in ql_scsi_passthru()
2137 cmd->ResponseLen = 0; in ql_scsi_passthru()
2145 if (cmd->SubCode == EXT_SC_SEND_SCSI_PASSTHRU) { in ql_scsi_passthru()
2151 usp_req = (EXT_SCSI_PASSTHRU *)(uintptr_t)cmd->RequestAdr; in ql_scsi_passthru()
2153 cmd->DetailStatus = EXT_DSTATUS_TARGET; in ql_scsi_passthru()
2158 ha->instance, cmd->SubCode, sp_req->TargetAddr.Target); in ql_scsi_passthru()
2169 ha->instance, cmd->SubCode, name[0], name[1], in ql_scsi_passthru()
2179 ha->instance, cmd->SubCode, name[0], name[1], in ql_scsi_passthru()
2188 "%02x%02x%02x\n", cmd->SubCode, in ql_scsi_passthru()
2193 cmd->SubCode, fc_req->FCScsiAddr.DestType); in ql_scsi_passthru()
2194 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_scsi_passthru()
2195 cmd->ResponseLen = 0; in ql_scsi_passthru()
2202 ufc_req = (EXT_FC_SCSI_PASSTHRU *)(uintptr_t)cmd->RequestAdr; in ql_scsi_passthru()
2209 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_scsi_passthru()
2210 cmd->ResponseLen = 0; in ql_scsi_passthru()
2216 cmd->Status = EXT_STATUS_DEVICE_OFFLINE; in ql_scsi_passthru()
2217 cmd->ResponseLen = 0; in ql_scsi_passthru()
2224 cmd->ResponseLen) { in ql_scsi_passthru()
2225 pld_size = cmd->ResponseLen; in ql_scsi_passthru()
2230 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_scsi_passthru()
2231 cmd->ResponseLen = 0; in ql_scsi_passthru()
2242 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_scsi_passthru()
2243 cmd->ResponseLen = 0; in ql_scsi_passthru()
2255 cmd->ResponseLen = 0; in ql_scsi_passthru()
2259 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_scsi_passthru()
2262 cmd->Status = EXT_STATUS_COPY_ERR; in ql_scsi_passthru()
2282 cmd->ResponseLen = 0; in ql_scsi_passthru()
2288 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_scsi_passthru()
2297 cmd->Status = EXT_STATUS_OK; in ql_scsi_passthru()
2298 cmd->DetailStatus = EXT_DSTATUS_NOADNL_INFO; in ql_scsi_passthru()
2407 pkt->cmd.entry_type = IOCB_CMD_TYPE_2; in ql_scsi_passthru()
2408 pkt->cmd.entry_count = 1; in ql_scsi_passthru()
2410 pkt->cmd.target_l = LSB(tq->loop_id); in ql_scsi_passthru()
2411 pkt->cmd.target_h = MSB(tq->loop_id); in ql_scsi_passthru()
2413 pkt->cmd.target_h = LSB(tq->loop_id); in ql_scsi_passthru()
2415 pkt->cmd.lun_l = LSB(scsi_req.lun); in ql_scsi_passthru()
2416 pkt->cmd.lun_h = MSB(scsi_req.lun); in ql_scsi_passthru()
2417 pkt->cmd.control_flags_l = scsi_req.direction; in ql_scsi_passthru()
2418 pkt->cmd.timeout = LE_16(15); in ql_scsi_passthru()
2420 pkt->cmd.scsi_cdb[cnt] = scsi_req.cdbp[cnt]; in ql_scsi_passthru()
2423 pkt->cmd.dseg_count = LE_16(1); in ql_scsi_passthru()
2424 pkt->cmd.byte_count = LE_32(pld_size); in ql_scsi_passthru()
2425 pkt->cmd.dseg[0].address = (uint32_t) in ql_scsi_passthru()
2427 pkt->cmd.dseg[0].length = LE_32(pld_size); in ql_scsi_passthru()
2506 cmd->Status = EXT_STATUS_SUSPENDED; in ql_scsi_passthru()
2507 cmd->ResponseLen = 0; in ql_scsi_passthru()
2517 cmd->Status = EXT_STATUS_ERR; in ql_scsi_passthru()
2518 cmd->DetailStatus = status; in ql_scsi_passthru()
2519 cmd->ResponseLen = 0; in ql_scsi_passthru()
2611 cmd->Status = EXT_STATUS_BUSY; in ql_scsi_passthru()
2615 cmd->Status = EXT_STATUS_ERR; in ql_scsi_passthru()
2618 cmd->Status = EXT_STATUS_ERR; in ql_scsi_passthru()
2621 cmd->Status = EXT_STATUS_DATA_OVERRUN; in ql_scsi_passthru()
2624 cmd->Status = EXT_STATUS_DATA_UNDERRUN; in ql_scsi_passthru()
2651 cmd->ResponseLen = 0; in ql_scsi_passthru()
2654 cmd->Status = EXT_STATUS_OK; in ql_scsi_passthru()
2657 cmd->ResponseLen = pld_size; in ql_scsi_passthru()
2671 cmd->Status = (uint32_t)EXT_STATUS_OK; in ql_scsi_passthru()
2673 cmd->ResponseLen = (uint32_t) in ql_scsi_passthru()
2677 cmd->Status = EXT_STATUS_ERR; in ql_scsi_passthru()
2678 cmd->ResponseLen = 0; in ql_scsi_passthru()
2706 cmd->Status = EXT_STATUS_SCSI_STATUS; in ql_scsi_passthru()
2707 cmd->DetailStatus = sts.scsi_status_l; in ql_scsi_passthru()
2740 cmd->Status = EXT_STATUS_SCSI_STATUS; in ql_scsi_passthru()
2741 cmd->DetailStatus = sts.scsi_status_l; in ql_scsi_passthru()
2746 cmd->ResponseLen != 0) { in ql_scsi_passthru()
2749 scsi_req.resid, pld_size, cmd->ResponseLen); in ql_scsi_passthru()
2750 QL_DUMP_9(pld, 8, cmd->ResponseLen); in ql_scsi_passthru()
2754 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_scsi_passthru()
2755 cmd->ResponseLen, mode) != cmd->ResponseLen) { in ql_scsi_passthru()
2757 cmd->Status = EXT_STATUS_COPY_ERR; in ql_scsi_passthru()
2758 cmd->ResponseLen = 0; in ql_scsi_passthru()
2762 if (cmd->Status != EXT_STATUS_OK) { in ql_scsi_passthru()
2764 "d_id=%xh\n", cmd->Status, sts.comp_status, tq->d_id.b24); in ql_scsi_passthru()
2768 ha->instance, cmd->ResponseLen); in ql_scsi_passthru()
2788 ql_wwpn_to_scsiaddr(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_wwpn_to_scsiaddr() argument
2797 if (cmd->RequestLen != EXT_DEF_WWN_NAME_SIZE) { in ql_wwpn_to_scsiaddr()
2800 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_wwpn_to_scsiaddr()
2801 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_wwpn_to_scsiaddr()
2805 status = ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, wwpn, in ql_wwpn_to_scsiaddr()
2806 cmd->RequestLen, mode); in ql_wwpn_to_scsiaddr()
2809 cmd->Status = EXT_STATUS_COPY_ERR; in ql_wwpn_to_scsiaddr()
2818 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_wwpn_to_scsiaddr()
2824 tmp_addr = (EXT_SCSI_ADDR *)(uintptr_t)cmd->ResponseAdr; in ql_wwpn_to_scsiaddr()
2829 cmd->Status = EXT_STATUS_COPY_ERR; in ql_wwpn_to_scsiaddr()
2832 cmd->Status = EXT_STATUS_OK; in ql_wwpn_to_scsiaddr()
2853 ql_host_idx(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_host_idx() argument
2859 if (cmd->ResponseLen < sizeof (uint16_t)) { in ql_host_idx()
2860 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_host_idx()
2861 cmd->DetailStatus = sizeof (uint16_t); in ql_host_idx()
2862 EL(ha, "failed, ResponseLen < Len=%xh\n", cmd->ResponseLen); in ql_host_idx()
2863 cmd->ResponseLen = 0; in ql_host_idx()
2869 if (ddi_copyout((void *)&idx, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_host_idx()
2871 cmd->Status = EXT_STATUS_COPY_ERR; in ql_host_idx()
2872 cmd->ResponseLen = 0; in ql_host_idx()
2875 cmd->ResponseLen = sizeof (uint16_t); in ql_host_idx()
2896 ql_host_drvname(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_host_drvname() argument
2906 if (cmd->ResponseLen < qlnamelen) { in ql_host_drvname()
2907 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_host_drvname()
2908 cmd->DetailStatus = qlnamelen; in ql_host_drvname()
2910 cmd->ResponseLen, qlnamelen); in ql_host_drvname()
2911 cmd->ResponseLen = 0; in ql_host_drvname()
2916 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_host_drvname()
2918 cmd->Status = EXT_STATUS_COPY_ERR; in ql_host_drvname()
2919 cmd->ResponseLen = 0; in ql_host_drvname()
2922 cmd->ResponseLen = qlnamelen - 1; in ql_host_drvname()
2944 ql_read_nvram(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_read_nvram() argument
2949 if (cmd->ResponseLen < ha->nvram_cache->size) { in ql_read_nvram()
2950 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_read_nvram()
2951 cmd->DetailStatus = ha->nvram_cache->size; in ql_read_nvram()
2953 cmd->ResponseLen); in ql_read_nvram()
2954 cmd->ResponseLen = 0; in ql_read_nvram()
2959 if (ql_nv_util_dump(ha, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_read_nvram()
2961 cmd->Status = EXT_STATUS_COPY_ERR; in ql_read_nvram()
2962 cmd->ResponseLen = 0; in ql_read_nvram()
2965 cmd->ResponseLen = ha->nvram_cache->size; in ql_read_nvram()
2986 ql_write_nvram(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_write_nvram() argument
2991 if (cmd->RequestLen < ha->nvram_cache->size) { in ql_write_nvram()
2992 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_write_nvram()
2993 cmd->DetailStatus = ha->nvram_cache->size; in ql_write_nvram()
2995 cmd->RequestLen); in ql_write_nvram()
3000 if (ql_nv_util_load(ha, (void *)(uintptr_t)(cmd->RequestAdr), in ql_write_nvram()
3002 cmd->Status = EXT_STATUS_COPY_ERR; in ql_write_nvram()
3026 ql_write_vpd(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_write_vpd() argument
3033 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_write_vpd()
3038 if (cmd->RequestLen < QL_24XX_VPD_SIZE) { in ql_write_vpd()
3039 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_write_vpd()
3040 cmd->DetailStatus = QL_24XX_VPD_SIZE; in ql_write_vpd()
3042 cmd->RequestLen); in ql_write_vpd()
3047 if ((rval = ql_vpd_load(ha, (void *)(uintptr_t)(cmd->RequestAdr), in ql_write_vpd()
3049 cmd->Status = EXT_STATUS_COPY_ERR; in ql_write_vpd()
3050 cmd->DetailStatus = rval; in ql_write_vpd()
3074 ql_read_vpd(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_read_vpd() argument
3079 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_read_vpd()
3084 if (cmd->ResponseLen < QL_24XX_VPD_SIZE) { in ql_read_vpd()
3085 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_read_vpd()
3086 cmd->DetailStatus = QL_24XX_VPD_SIZE; in ql_read_vpd()
3088 cmd->ResponseLen); in ql_read_vpd()
3093 if ((ql_vpd_dump(ha, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_read_vpd()
3095 cmd->Status = EXT_STATUS_COPY_ERR; in ql_read_vpd()
3119 ql_get_fcache(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_fcache() argument
3127 cmd->Status = EXT_STATUS_ERR; in ql_get_fcache()
3138 if (cmd->ResponseLen < bsize) { in ql_get_fcache()
3139 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_fcache()
3140 cmd->DetailStatus = bsize; in ql_get_fcache()
3142 bsize, cmd->ResponseLen); in ql_get_fcache()
3161 (void *)(uintptr_t)(cmd->ResponseAdr + boff), in ql_get_fcache()
3164 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcache()
3165 cmd->DetailStatus = 0; in ql_get_fcache()
3185 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcache()
3186 cmd->DetailStatus = 0; in ql_get_fcache()
3194 (void *)(uintptr_t)(cmd->ResponseAdr + 300), in ql_get_fcache()
3197 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcache()
3198 cmd->DetailStatus = 0; in ql_get_fcache()
3204 cmd->Status = EXT_STATUS_OK; in ql_get_fcache()
3205 cmd->DetailStatus = bsize; in ql_get_fcache()
3226 ql_get_fcache_ex(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_fcache_ex() argument
3235 cmd->Status = EXT_STATUS_ERR; in ql_get_fcache_ex()
3245 if (cmd->ResponseLen < bsize) { in ql_get_fcache_ex()
3246 if (cmd->ResponseLen != 0) { in ql_get_fcache_ex()
3248 bsize, cmd->ResponseLen); in ql_get_fcache_ex()
3250 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_fcache_ex()
3251 cmd->DetailStatus = bsize; in ql_get_fcache_ex()
3260 (void *)(uintptr_t)(cmd->ResponseAdr + boff), in ql_get_fcache_ex()
3264 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcache_ex()
3265 cmd->DetailStatus = 0; in ql_get_fcache_ex()
3272 cmd->Status = EXT_STATUS_OK; in ql_get_fcache_ex()
3273 cmd->DetailStatus = bsize; in ql_get_fcache_ex()
3294 ql_read_flash(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_read_flash() argument
3304 cmd->Status = EXT_STATUS_BUSY; in ql_read_flash()
3305 cmd->DetailStatus = xp->fdesc.flash_size; in ql_read_flash()
3306 cmd->ResponseLen = 0; in ql_read_flash()
3311 cmd->Status = EXT_STATUS_ERR; in ql_read_flash()
3312 cmd->DetailStatus = xp->fdesc.flash_size; in ql_read_flash()
3314 cmd->ResponseLen, xp->fdesc.flash_size); in ql_read_flash()
3315 cmd->ResponseLen = 0; in ql_read_flash()
3318 if (cmd->ResponseLen > xp->fdesc.flash_size) { in ql_read_flash()
3320 cmd->ResponseLen, xp->fdesc.flash_size); in ql_read_flash()
3321 cmd->ResponseLen = xp->fdesc.flash_size; in ql_read_flash()
3326 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_read_flash()
3327 (size_t)(cmd->ResponseLen), 0, mode) != 0) { in ql_read_flash()
3328 cmd->Status = EXT_STATUS_COPY_ERR; in ql_read_flash()
3329 cmd->ResponseLen = 0; in ql_read_flash()
3360 ql_write_flash(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_write_flash() argument
3370 cmd->Status = EXT_STATUS_BUSY; in ql_write_flash()
3371 cmd->DetailStatus = xp->fdesc.flash_size; in ql_write_flash()
3372 cmd->ResponseLen = 0; in ql_write_flash()
3377 cmd->Status = EXT_STATUS_ERR; in ql_write_flash()
3378 cmd->DetailStatus = xp->fdesc.flash_size; in ql_write_flash()
3380 cmd->RequestLen, xp->fdesc.flash_size); in ql_write_flash()
3381 cmd->ResponseLen = 0; in ql_write_flash()
3384 if (cmd->RequestLen > xp->fdesc.flash_size) { in ql_write_flash()
3385 cmd->Status = EXT_STATUS_ERR; in ql_write_flash()
3386 cmd->DetailStatus = xp->fdesc.flash_size; in ql_write_flash()
3388 cmd->RequestLen, xp->fdesc.flash_size); in ql_write_flash()
3390 (void *)(uintptr_t)(cmd->RequestAdr), in ql_write_flash()
3391 (size_t)(cmd->RequestLen), mode) != 0) { in ql_write_flash()
3392 cmd->Status = EXT_STATUS_COPY_ERR; in ql_write_flash()
3423 ql_diagnostic_loopback(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_diagnostic_loopback() argument
3436 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_diagnostic_loopback()
3439 cmd->Status = EXT_STATUS_COPY_ERR; in ql_diagnostic_loopback()
3440 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3449 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_diagnostic_loopback()
3450 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3459 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_diagnostic_loopback()
3460 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3471 cmd->Status = EXT_STATUS_COPY_ERR; in ql_diagnostic_loopback()
3472 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3481 cmd->Status = EXT_STATUS_BUSY; in ql_diagnostic_loopback()
3482 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3509 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_diagnostic_loopback()
3510 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3575 cmd->Status = EXT_STATUS_MAILBOX; in ql_diagnostic_loopback()
3576 cmd->DetailStatus = rval; in ql_diagnostic_loopback()
3577 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3586 cmd->Status = EXT_STATUS_COPY_ERR; in ql_diagnostic_loopback()
3587 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3611 (void *)(uintptr_t)cmd->ResponseAdr, in ql_diagnostic_loopback()
3615 cmd->Status = EXT_STATUS_COPY_ERR; in ql_diagnostic_loopback()
3616 cmd->ResponseLen = 0; in ql_diagnostic_loopback()
3619 cmd->ResponseLen = sizeof (EXT_LOOPBACK_RSP); in ql_diagnostic_loopback()
3707 ql_send_els_rnid(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_send_els_rnid() argument
3723 cmd->Status = EXT_STATUS_BUSY; in ql_send_els_rnid()
3724 cmd->ResponseLen = 0; in ql_send_els_rnid()
3728 if (cmd->RequestLen != sizeof (EXT_RNID_REQ)) { in ql_send_els_rnid()
3731 cmd->RequestLen); in ql_send_els_rnid()
3732 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_send_els_rnid()
3733 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_send_els_rnid()
3734 cmd->ResponseLen = 0; in ql_send_els_rnid()
3738 if (ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, in ql_send_els_rnid()
3739 &tmp_rnid, cmd->RequestLen, mode) != 0) { in ql_send_els_rnid()
3741 cmd->Status = EXT_STATUS_COPY_ERR; in ql_send_els_rnid()
3742 cmd->ResponseLen = 0; in ql_send_els_rnid()
3786 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_send_els_rnid()
3787 cmd->ResponseLen = 0; in ql_send_els_rnid()
3796 cmd->Status = EXT_STATUS_ERR; in ql_send_els_rnid()
3797 cmd->ResponseLen = 0; in ql_send_els_rnid()
3822 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_send_els_rnid()
3823 cmd->DetailStatus = EXT_DSTATUS_TARGET; in ql_send_els_rnid()
3824 cmd->ResponseLen = 0; in ql_send_els_rnid()
3838 cmd->Status = EXT_STATUS_ERR; in ql_send_els_rnid()
3839 cmd->ResponseLen = 0; in ql_send_els_rnid()
3850 cmd->Status = EXT_STATUS_ERR; in ql_send_els_rnid()
3851 cmd->ResponseLen = 0; in ql_send_els_rnid()
3858 copy_len = (cmd->ResponseLen > SEND_RNID_RSP_SIZE) ? in ql_send_els_rnid()
3859 SEND_RNID_RSP_SIZE : cmd->ResponseLen; in ql_send_els_rnid()
3861 if (ql_send_buffer_data(tmp_buf, (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_send_els_rnid()
3863 cmd->Status = EXT_STATUS_COPY_ERR; in ql_send_els_rnid()
3866 cmd->ResponseLen = copy_len; in ql_send_els_rnid()
3868 cmd->Status = EXT_STATUS_DATA_OVERRUN; in ql_send_els_rnid()
3871 } else if (cmd->ResponseLen > SEND_RNID_RSP_SIZE) { in ql_send_els_rnid()
3872 cmd->Status = EXT_STATUS_DATA_UNDERRUN; in ql_send_els_rnid()
3875 cmd->Status = EXT_STATUS_OK; in ql_send_els_rnid()
3900 ql_set_host_data(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_set_host_data() argument
3903 cmd->SubCode); in ql_set_host_data()
3908 switch (cmd->SubCode) { in ql_set_host_data()
3910 ql_set_rnid_parameters(ha, cmd, mode); in ql_set_host_data()
3913 (void) ql_reset_statistics(ha, cmd); in ql_set_host_data()
3916 ql_set_led_state(ha, cmd, mode); in ql_set_host_data()
3932 EL(ha, "failed, function not supported=%d\n", cmd->SubCode); in ql_set_host_data()
3933 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_set_host_data()
3937 if (cmd->Status != EXT_STATUS_OK) { in ql_set_host_data()
3938 EL(ha, "failed, Status=%d\n", cmd->Status); in ql_set_host_data()
3961 ql_get_host_data(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_host_data() argument
3966 cmd->SubCode); in ql_get_host_data()
3969 switch (cmd->SubCode) { in ql_get_host_data()
4001 out_size = cmd->ResponseLen; in ql_get_host_data()
4021 EL(ha, "failed, function not supported=%d\n", cmd->SubCode); in ql_get_host_data()
4022 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_get_host_data()
4023 cmd->ResponseLen = 0; in ql_get_host_data()
4027 if (cmd->ResponseLen < out_size) { in ql_get_host_data()
4028 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_host_data()
4029 cmd->DetailStatus = out_size; in ql_get_host_data()
4031 cmd->ResponseLen, out_size); in ql_get_host_data()
4032 cmd->ResponseLen = 0; in ql_get_host_data()
4036 switch (cmd->SubCode) { in ql_get_host_data()
4038 ql_get_rnid_parameters(ha, cmd, mode); in ql_get_host_data()
4041 ql_get_statistics(ha, cmd, mode); in ql_get_host_data()
4044 ql_get_statistics_fc(ha, cmd, mode); in ql_get_host_data()
4047 ql_get_statistics_fc4(ha, cmd, mode); in ql_get_host_data()
4050 ql_get_port_summary(ha, cmd, mode); in ql_get_host_data()
4053 ql_get_target_id(ha, cmd, mode); in ql_get_host_data()
4056 ql_get_led_state(ha, cmd, mode); in ql_get_host_data()
4059 ql_get_dcbx_parameters(ha, cmd, mode); in ql_get_host_data()
4062 ql_get_fcf_list(ha, cmd, mode); in ql_get_host_data()
4065 ql_get_resource_counts(ha, cmd, mode); in ql_get_host_data()
4068 ql_get_priv_stats(ha, cmd, mode); in ql_get_host_data()
4072 if (cmd->Status != EXT_STATUS_OK) { in ql_get_host_data()
4073 EL(ha, "failed, Status=%d\n", cmd->Status); in ql_get_host_data()
4249 pkt->cmd.entry_type = IOCB_CMD_TYPE_2; in ql_report_lun()
4250 pkt->cmd.entry_count = 1; in ql_report_lun()
4252 pkt->cmd.target_l = LSB(tq->loop_id); in ql_report_lun()
4253 pkt->cmd.target_h = MSB(tq->loop_id); in ql_report_lun()
4255 pkt->cmd.target_h = LSB(tq->loop_id); in ql_report_lun()
4257 pkt->cmd.control_flags_l = CF_DATA_IN | CF_STAG; in ql_report_lun()
4258 pkt->cmd.timeout = LE_16(15); in ql_report_lun()
4259 pkt->cmd.dseg_count = LE_16(1); in ql_report_lun()
4260 pkt->cmd.scsi_cdb[0] = SCMD_REPORT_LUNS; in ql_report_lun()
4261 pkt->cmd.scsi_cdb[6] = in ql_report_lun()
4263 pkt->cmd.scsi_cdb[7] = in ql_report_lun()
4265 pkt->cmd.scsi_cdb[8] = in ql_report_lun()
4267 pkt->cmd.scsi_cdb[9] = in ql_report_lun()
4269 pkt->cmd.byte_count = in ql_report_lun()
4271 pkt->cmd.dseg[0].address = (uint32_t) in ql_report_lun()
4273 pkt->cmd.dseg[0].length = in ql_report_lun()
4591 pkt->cmd.entry_type = IOCB_CMD_TYPE_2; in ql_inq()
4594 pkt->cmd.entry_count = 1; in ql_inq()
4596 pkt->cmd.target_l = LSB(tq->loop_id); in ql_inq()
4597 pkt->cmd.target_h = MSB(tq->loop_id); in ql_inq()
4599 pkt->cmd.target_h = LSB(tq->loop_id); in ql_inq()
4601 pkt->cmd.lun_l = LSB(lun); in ql_inq()
4602 pkt->cmd.lun_h = MSB(lun); in ql_inq()
4603 pkt->cmd.control_flags_l = CF_DATA_IN | CF_STAG; in ql_inq()
4604 pkt->cmd.timeout = LE_16(15); in ql_inq()
4605 pkt->cmd.scsi_cdb[0] = SCMD_INQUIRY; in ql_inq()
4606 pkt->cmd.scsi_cdb[4] = LSB(LSW(inq_len)); in ql_inq()
4607 pkt->cmd.dseg_count = LE_16(1); in ql_inq()
4608 pkt->cmd.byte_count = LE_32(inq_len); in ql_inq()
4609 pkt->cmd.dseg[0].address = (uint32_t) in ql_inq()
4611 pkt->cmd.dseg[0].length = LE_32(inq_len); in ql_inq()
5575 ql_set_rnid_parameters(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_set_rnid_parameters() argument
5585 cmd->Status = EXT_STATUS_BUSY; in ql_set_rnid_parameters()
5586 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5590 cmd->ResponseLen = 0; /* NO response to caller. */ in ql_set_rnid_parameters()
5591 if (cmd->RequestLen != sizeof (EXT_SET_RNID_REQ)) { in ql_set_rnid_parameters()
5594 cmd->RequestLen); in ql_set_rnid_parameters()
5595 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_set_rnid_parameters()
5596 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_set_rnid_parameters()
5597 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5601 rval = ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, &tmp_set, in ql_set_rnid_parameters()
5602 cmd->RequestLen, mode); in ql_set_rnid_parameters()
5605 cmd->Status = EXT_STATUS_COPY_ERR; in ql_set_rnid_parameters()
5606 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5614 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_set_rnid_parameters()
5615 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5625 cmd->Status = EXT_STATUS_ERR; in ql_set_rnid_parameters()
5626 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5640 cmd->Status = EXT_STATUS_ERR; in ql_set_rnid_parameters()
5641 cmd->ResponseLen = 0; in ql_set_rnid_parameters()
5659 ql_get_rnid_parameters(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_rnid_parameters() argument
5668 cmd->Status = EXT_STATUS_BUSY; in ql_get_rnid_parameters()
5669 cmd->ResponseLen = 0; in ql_get_rnid_parameters()
5677 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_rnid_parameters()
5678 cmd->ResponseLen = 0; in ql_get_rnid_parameters()
5689 cmd->Status = EXT_STATUS_ERR; in ql_get_rnid_parameters()
5690 cmd->ResponseLen = 0; in ql_get_rnid_parameters()
5696 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_get_rnid_parameters()
5699 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_rnid_parameters()
5700 cmd->ResponseLen = 0; in ql_get_rnid_parameters()
5703 cmd->ResponseLen = sizeof (EXT_RNID_DATA); in ql_get_rnid_parameters()
5724 ql_reset_statistics(ql_adapter_state_t *ha, EXT_IOCTL *cmd) in ql_reset_statistics() argument
5733 cmd->Status = EXT_STATUS_BUSY; in ql_reset_statistics()
5734 cmd->ResponseLen = 0; in ql_reset_statistics()
5741 cmd->Status = EXT_STATUS_MAILBOX; in ql_reset_statistics()
5742 cmd->DetailStatus = rval; in ql_reset_statistics()
5743 cmd->ResponseLen = 0; in ql_reset_statistics()
5786 ql_get_statistics(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_statistics() argument
5804 cmd->Status = EXT_STATUS_BUSY; in ql_get_statistics()
5805 cmd->ResponseLen = 0; in ql_get_statistics()
5814 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_statistics()
5815 cmd->ResponseLen = 0; in ql_get_statistics()
5829 cmd->Status = EXT_STATUS_MAILBOX; in ql_get_statistics()
5830 cmd->DetailStatus = rval; in ql_get_statistics()
5831 cmd->ResponseLen = 0; in ql_get_statistics()
5849 (void *)(uintptr_t)cmd->ResponseAdr, in ql_get_statistics()
5853 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_statistics()
5854 cmd->ResponseLen = 0; in ql_get_statistics()
5856 cmd->ResponseLen = sizeof (EXT_HBA_PORT_STAT); in ql_get_statistics()
5881 ql_get_statistics_fc(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_statistics_fc() argument
5894 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_get_statistics_fc()
5897 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_statistics_fc()
5898 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5913 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_get_statistics_fc()
5914 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5926 cmd->Status = EXT_STATUS_BUSY; in ql_get_statistics_fc()
5927 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5936 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_statistics_fc()
5937 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5946 cmd->Status = EXT_STATUS_MAILBOX; in ql_get_statistics_fc()
5947 cmd->DetailStatus = rval; in ql_get_statistics_fc()
5948 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5958 (void *)(uintptr_t)cmd->ResponseAdr, in ql_get_statistics_fc()
5963 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_statistics_fc()
5964 cmd->ResponseLen = 0; in ql_get_statistics_fc()
5966 cmd->ResponseLen = sizeof (EXT_HBA_PORT_STAT); in ql_get_statistics_fc()
5991 ql_get_statistics_fc4(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_statistics_fc4() argument
6006 (void *)(uintptr_t)cmd->ResponseAdr, in ql_get_statistics_fc4()
6011 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_statistics_fc4()
6012 cmd->ResponseLen = 0; in ql_get_statistics_fc4()
6014 cmd->ResponseLen = sizeof (EXT_HBA_FC4STATISTICS); in ql_get_statistics_fc4()
6036 ql_set_led_state(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_set_led_state() argument
6044 if (cmd->RequestLen < sizeof (EXT_BEACON_CONTROL)) { in ql_set_led_state()
6045 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_set_led_state()
6046 cmd->DetailStatus = sizeof (EXT_BEACON_CONTROL); in ql_set_led_state()
6048 " Len=%xh\n", cmd->RequestLen); in ql_set_led_state()
6049 cmd->ResponseLen = 0; in ql_set_led_state()
6054 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_set_led_state()
6055 cmd->DetailStatus = 0; in ql_set_led_state()
6057 cmd->ResponseLen = 0; in ql_set_led_state()
6061 rval = ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, &bstate, in ql_set_led_state()
6062 cmd->RequestLen, mode); in ql_set_led_state()
6065 cmd->Status = EXT_STATUS_COPY_ERR; in ql_set_led_state()
6074 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6086 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6088 cmd->Status = EXT_STATUS_ERR; in ql_set_led_state()
6099 cmd->Status = EXT_STATUS_MAILBOX; in ql_set_led_state()
6101 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6108 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6120 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6122 cmd->Status = EXT_STATUS_ERR; in ql_set_led_state()
6130 cmd->Status = EXT_STATUS_MAILBOX; in ql_set_led_state()
6141 cmd->Status = EXT_STATUS_OK; in ql_set_led_state()
6144 cmd->Status = EXT_STATUS_ERR; in ql_set_led_state()
6168 ql_get_led_state(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_led_state() argument
6175 if (cmd->ResponseLen < sizeof (EXT_BEACON_CONTROL)) { in ql_get_led_state()
6176 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_led_state()
6177 cmd->DetailStatus = sizeof (EXT_BEACON_CONTROL); in ql_get_led_state()
6179 "Len=%xh\n", cmd->ResponseLen); in ql_get_led_state()
6180 cmd->ResponseLen = 0; in ql_get_led_state()
6185 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_get_led_state()
6186 cmd->DetailStatus = 0; in ql_get_led_state()
6188 cmd->ResponseLen = 0; in ql_get_led_state()
6193 cmd->Status = EXT_STATUS_BUSY; in ql_get_led_state()
6195 cmd->ResponseLen = 0; in ql_get_led_state()
6203 (void *)(uintptr_t)cmd->ResponseAdr, in ql_get_led_state()
6208 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_led_state()
6209 cmd->ResponseLen = 0; in ql_get_led_state()
6211 cmd->Status = EXT_STATUS_OK; in ql_get_led_state()
6212 cmd->ResponseLen = sizeof (EXT_BEACON_CONTROL); in ql_get_led_state()
6575 ql_get_port_summary(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_port_summary() argument
6594 rval = ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_get_port_summary()
6597 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_port_summary()
6598 cmd->ResponseLen = 0; in ql_get_port_summary()
6628 if (rlen > cmd->ResponseLen) { in ql_get_port_summary()
6629 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_port_summary()
6630 cmd->DetailStatus = rlen; in ql_get_port_summary()
6632 rlen, cmd->ResponseLen); in ql_get_port_summary()
6633 cmd->ResponseLen = 0; in ql_get_port_summary()
6636 cmd->ResponseLen = 0; in ql_get_port_summary()
6637 uddp = (EXT_DEVICEDATA *)(uintptr_t)cmd->ResponseAdr; in ql_get_port_summary()
6679 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_port_summary()
6680 cmd->ResponseLen = 0; in ql_get_port_summary()
6686 cmd->ResponseLen += (uint32_t) in ql_get_port_summary()
6694 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_port_summary()
6695 cmd->ResponseLen = 0; in ql_get_port_summary()
6698 cmd->ResponseLen += (uint32_t)sizeof (EXT_DEVICEDATAENTRY); in ql_get_port_summary()
6719 ql_get_target_id(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_target_id() argument
6730 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_get_target_id()
6733 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_target_id()
6734 cmd->ResponseLen = 0; in ql_get_target_id()
6747 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_get_target_id()
6748 cmd->ResponseLen = 0; in ql_get_target_id()
6755 (void *)(uintptr_t)cmd->ResponseAdr, sizeof (EXT_DEST_ADDR), mode); in ql_get_target_id()
6758 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_target_id()
6759 cmd->ResponseLen = 0; in ql_get_target_id()
7794 ql_get_sfp(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_sfp() argument
7799 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_sfp()
7804 if (cmd->ResponseLen < QL_24XX_SFP_SIZE) { in ql_get_sfp()
7805 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_sfp()
7806 cmd->DetailStatus = QL_24XX_SFP_SIZE; in ql_get_sfp()
7808 cmd->ResponseLen); in ql_get_sfp()
7813 if ((ql_dump_sfp(ha, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_sfp()
7815 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_sfp()
7818 cmd->Status = EXT_STATUS_OK; in ql_get_sfp()
7903 ql_port_param(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_port_param() argument
7915 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_port_param()
7916 cmd->ResponseLen = 0; in ql_port_param()
7922 cmd->Status = EXT_STATUS_DEVICE_OFFLINE; in ql_port_param()
7923 cmd->ResponseLen = 0; in ql_port_param()
7927 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_port_param()
7930 cmd->Status = EXT_STATUS_COPY_ERR; in ql_port_param()
7931 cmd->ResponseLen = 0; in ql_port_param()
7938 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_port_param()
7939 cmd->ResponseLen = 0; in ql_port_param()
7953 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_port_param()
7954 cmd->ResponseLen = 0; in ql_port_param()
7958 cmd->Status = EXT_STATUS_OK; in ql_port_param()
7959 cmd->DetailStatus = EXT_STATUS_OK; in ql_port_param()
7971 cmd->Status = EXT_STATUS_MAILBOX; in ql_port_param()
7972 cmd->DetailStatus = rval; in ql_port_param()
7973 cmd->ResponseLen = 0; in ql_port_param()
8014 (void *)(uintptr_t)cmd->ResponseAdr, in ql_port_param()
8018 cmd->Status = EXT_STATUS_COPY_ERR; in ql_port_param()
8019 cmd->ResponseLen = 0; in ql_port_param()
8022 cmd->ResponseLen = (uint32_t) in ql_port_param()
8057 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_port_param()
8058 cmd->ResponseLen = 0; in ql_port_param()
8068 cmd->Status = EXT_STATUS_MAILBOX; in ql_port_param()
8069 cmd->DetailStatus = rval; in ql_port_param()
8070 cmd->ResponseLen = 0; in ql_port_param()
8076 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_port_param()
8077 cmd->ResponseLen = 0; in ql_port_param()
8078 cmd->DetailStatus = 0; in ql_port_param()
8101 ql_get_fwexttrace(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_fwexttrace() argument
8110 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_fwexttrace()
8111 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8118 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_fwexttrace()
8119 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8123 if (cmd->ResponseLen < FWEXTSIZE) { in ql_get_fwexttrace()
8124 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_fwexttrace()
8125 cmd->DetailStatus = FWEXTSIZE; in ql_get_fwexttrace()
8127 cmd->ResponseLen, FWEXTSIZE); in ql_get_fwexttrace()
8128 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8138 cmd->Status = EXT_STATUS_ERR; in ql_get_fwexttrace()
8139 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8148 cmd->Status = EXT_STATUS_ERR; in ql_get_fwexttrace()
8149 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8157 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_fwexttrace()
8158 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8172 if (ql_send_buffer_data(payload, (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_get_fwexttrace()
8173 cmd->ResponseLen, mode) != cmd->ResponseLen) { in ql_get_fwexttrace()
8175 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fwexttrace()
8176 cmd->ResponseLen = 0; in ql_get_fwexttrace()
8178 cmd->Status = EXT_STATUS_OK; in ql_get_fwexttrace()
8202 ql_get_fwfcetrace(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_fwfcetrace() argument
8215 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_fwfcetrace()
8216 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8223 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_fwfcetrace()
8224 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8228 if (cmd->ResponseLen < FWFCESIZE) { in ql_get_fwfcetrace()
8229 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_fwfcetrace()
8230 cmd->DetailStatus = FWFCESIZE; in ql_get_fwfcetrace()
8232 cmd->ResponseLen, FWFCESIZE); in ql_get_fwfcetrace()
8233 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8241 cmd->Status = EXT_STATUS_ERR; in ql_get_fwfcetrace()
8242 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8250 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_fwfcetrace()
8251 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8293 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_get_fwfcetrace()
8294 cmd->ResponseLen, mode) != cmd->ResponseLen) { in ql_get_fwfcetrace()
8296 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fwfcetrace()
8297 cmd->ResponseLen = 0; in ql_get_fwfcetrace()
8299 cmd->Status = EXT_STATUS_OK; in ql_get_fwfcetrace()
8334 ql_get_pci_data(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_pci_data() argument
8364 if (cmd->ResponseLen < buf_size) { in ql_get_pci_data()
8365 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_pci_data()
8366 cmd->DetailStatus = buf_size; in ql_get_pci_data()
8368 cmd->ResponseLen); in ql_get_pci_data()
8373 if ((ql_pci_dump(ha, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_pci_data()
8375 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_pci_data()
8376 cmd->DetailStatus = 0; in ql_get_pci_data()
8379 cmd->Status = EXT_STATUS_OK; in ql_get_pci_data()
8380 cmd->DetailStatus = buf_size; in ql_get_pci_data()
8452 ql_menlo_reset(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_menlo_reset() argument
8462 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_menlo_reset()
8463 cmd->ResponseLen = 0; in ql_menlo_reset()
8472 if (cmd->RequestLen < sizeof (EXT_MENLO_RESET)) { in ql_menlo_reset()
8474 EL(ha, "RequestLen=%d < %d\n", cmd->RequestLen, in ql_menlo_reset()
8476 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_menlo_reset()
8477 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_menlo_reset()
8478 cmd->ResponseLen = 0; in ql_menlo_reset()
8483 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_menlo_reset()
8486 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_reset()
8487 cmd->ResponseLen = 0; in ql_menlo_reset()
8495 cmd->Status = EXT_STATUS_BUSY; in ql_menlo_reset()
8496 cmd->ResponseLen = 0; in ql_menlo_reset()
8503 cmd->Status = EXT_STATUS_MAILBOX; in ql_menlo_reset()
8504 cmd->DetailStatus = rval; in ql_menlo_reset()
8505 cmd->ResponseLen = 0; in ql_menlo_reset()
8508 cmd->Status = EXT_STATUS_ERR; in ql_menlo_reset()
8509 cmd->DetailStatus = mr.mb[1]; in ql_menlo_reset()
8510 cmd->ResponseLen = 0; in ql_menlo_reset()
8533 ql_menlo_get_fw_version(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_menlo_get_fw_version() argument
8543 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_menlo_get_fw_version()
8544 cmd->ResponseLen = 0; in ql_menlo_get_fw_version()
8548 if (cmd->ResponseLen < sizeof (EXT_MENLO_GET_FW_VERSION)) { in ql_menlo_get_fw_version()
8549 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_menlo_get_fw_version()
8550 cmd->DetailStatus = sizeof (EXT_MENLO_GET_FW_VERSION); in ql_menlo_get_fw_version()
8551 EL(ha, "ResponseLen=%d < %d\n", cmd->ResponseLen, in ql_menlo_get_fw_version()
8553 cmd->ResponseLen = 0; in ql_menlo_get_fw_version()
8561 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_menlo_get_fw_version()
8562 cmd->ResponseLen = 0; in ql_menlo_get_fw_version()
8581 cmd->Status = EXT_STATUS_ERR; in ql_menlo_get_fw_version()
8582 cmd->DetailStatus = rval != QL_SUCCESS ? rval : in ql_menlo_get_fw_version()
8584 cmd->ResponseLen = 0; in ql_menlo_get_fw_version()
8586 (void *)(uintptr_t)cmd->ResponseAdr, in ql_menlo_get_fw_version()
8589 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_get_fw_version()
8590 cmd->ResponseLen = 0; in ql_menlo_get_fw_version()
8592 cmd->ResponseLen = sizeof (EXT_MENLO_GET_FW_VERSION); in ql_menlo_get_fw_version()
8615 ql_menlo_update_fw(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_menlo_update_fw() argument
8627 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_menlo_update_fw()
8628 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8637 if (cmd->RequestLen < sizeof (EXT_MENLO_UPDATE_FW)) { in ql_menlo_update_fw()
8639 EL(ha, "RequestLen=%d < %d\n", cmd->RequestLen, in ql_menlo_update_fw()
8641 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_menlo_update_fw()
8642 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_menlo_update_fw()
8643 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8648 if (ddi_copyin((caddr_t)(uintptr_t)cmd->RequestAdr, (caddr_t)&fw, in ql_menlo_update_fw()
8651 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_update_fw()
8652 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8660 cmd->Status = EXT_STATUS_BUSY; in ql_menlo_update_fw()
8661 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8669 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_menlo_update_fw()
8670 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8678 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_menlo_update_fw()
8679 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8691 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_menlo_update_fw()
8692 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8704 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_update_fw()
8705 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8737 cmd->Status = EXT_STATUS_ERR; in ql_menlo_update_fw()
8738 cmd->DetailStatus = rval != QL_SUCCESS ? rval : in ql_menlo_update_fw()
8740 cmd->ResponseLen = 0; in ql_menlo_update_fw()
8766 ql_menlo_manage_info(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_menlo_manage_info() argument
8778 ql_get_xgmac_statistics(ha, cmd, mode); in ql_menlo_manage_info()
8785 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_menlo_manage_info()
8786 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8791 if (cmd->RequestLen < sizeof (EXT_MENLO_MANAGE_INFO)) { in ql_menlo_manage_info()
8793 EL(ha, "RequestLen=%d < %d\n", cmd->RequestLen, in ql_menlo_manage_info()
8795 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_menlo_manage_info()
8796 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_menlo_manage_info()
8797 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8802 if (ddi_copyin((caddr_t)(uintptr_t)cmd->RequestAdr, in ql_menlo_manage_info()
8805 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_manage_info()
8806 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8815 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_menlo_manage_info()
8816 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8835 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_menlo_manage_info()
8836 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8845 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_menlo_manage_info()
8846 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8859 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_manage_info()
8860 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8896 cmd->Status = EXT_STATUS_ERR; in ql_menlo_manage_info()
8897 cmd->DetailStatus = rval != QL_SUCCESS ? rval : in ql_menlo_manage_info()
8899 cmd->ResponseLen = 0; in ql_menlo_manage_info()
8906 cmd->Status = EXT_STATUS_COPY_ERR; in ql_menlo_manage_info()
8907 cmd->ResponseLen = 0; in ql_menlo_manage_info()
9002 ql_get_vp_cnt_id(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_vp_cnt_id() argument
9016 if (cmd->ResponseLen < sizeof (EXT_VPORT_ID_CNT) && in ql_get_vp_cnt_id()
9017 (cmd->ResponseLen != EXT_OLD_VPORT_ID_CNT_SIZE)) { in ql_get_vp_cnt_id()
9018 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_vp_cnt_id()
9019 cmd->DetailStatus = sizeof (EXT_VPORT_ID_CNT); in ql_get_vp_cnt_id()
9021 cmd->ResponseLen); in ql_get_vp_cnt_id()
9022 cmd->ResponseLen = 0; in ql_get_vp_cnt_id()
9030 cmd->ResponseLen = 0; in ql_get_vp_cnt_id()
9045 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_vp_cnt_id()
9046 cmd->ResponseLen, mode); in ql_get_vp_cnt_id()
9048 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_vp_cnt_id()
9049 cmd->ResponseLen = 0; in ql_get_vp_cnt_id()
9052 cmd->ResponseLen = sizeof (EXT_VPORT_ID_CNT); in ql_get_vp_cnt_id()
9075 ql_vp_ioctl(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_vp_ioctl() argument
9078 cmd->SubCode); in ql_vp_ioctl()
9081 switch (cmd->SubCode) { in ql_vp_ioctl()
9083 ql_qry_vport(ha, cmd, mode); in ql_vp_ioctl()
9087 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_vp_ioctl()
9089 cmd->SubCode); in ql_vp_ioctl()
9112 ql_qry_vport(ql_adapter_state_t *vha, EXT_IOCTL *cmd, int mode) in ql_qry_vport() argument
9119 if (cmd->ResponseLen < sizeof (EXT_VPORT_INFO)) { in ql_qry_vport()
9120 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_vport()
9121 cmd->DetailStatus = sizeof (EXT_VPORT_INFO); in ql_qry_vport()
9123 cmd->ResponseLen); in ql_qry_vport()
9124 cmd->ResponseLen = 0; in ql_qry_vport()
9147 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_vport()
9149 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_vport()
9150 cmd->ResponseLen = 0; in ql_qry_vport()
9153 cmd->ResponseLen = sizeof (EXT_VPORT_INFO); in ql_qry_vport()
9174 ql_access_flash(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_access_flash() argument
9184 cmd->Status = EXT_STATUS_BUSY; in ql_access_flash()
9185 cmd->ResponseLen = 0; in ql_access_flash()
9189 switch (cmd->SubCode) { in ql_access_flash()
9192 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_access_flash()
9193 (size_t)(cmd->ResponseLen), cmd->Reserved1, mode)) != 0) { in ql_access_flash()
9194 cmd->Status = EXT_STATUS_COPY_ERR; in ql_access_flash()
9195 cmd->ResponseLen = 0; in ql_access_flash()
9201 (void *)(uintptr_t)(cmd->RequestAdr), in ql_access_flash()
9202 (size_t)(cmd->RequestLen), cmd->Reserved1, mode)) != in ql_access_flash()
9204 cmd->Status = EXT_STATUS_COPY_ERR; in ql_access_flash()
9205 cmd->ResponseLen = 0; in ql_access_flash()
9213 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_access_flash()
9214 cmd->Status = EXT_STATUS_ERR; in ql_access_flash()
9215 cmd->ResponseLen = 0; in ql_access_flash()
9244 ql_reset_cmd(ql_adapter_state_t *ha, EXT_IOCTL *cmd) in ql_reset_cmd() argument
9250 switch (cmd->SubCode) { in ql_reset_cmd()
9272 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_reset_cmd()
9273 cmd->ResponseLen = 0; in ql_reset_cmd()
9282 cmd->Status = EXT_STATUS_BUSY; in ql_reset_cmd()
9283 cmd->ResponseLen = 0; in ql_reset_cmd()
9285 cmd->Status = EXT_STATUS_ERR; in ql_reset_cmd()
9286 cmd->ResponseLen = 0; in ql_reset_cmd()
9310 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_reset_cmd()
9311 cmd->Status = EXT_STATUS_ERR; in ql_reset_cmd()
9312 cmd->ResponseLen = 0; in ql_reset_cmd()
9329 ql_get_dcbx_parameters(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_dcbx_parameters() argument
9338 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_dcbx_parameters()
9339 cmd->ResponseLen = 0; in ql_get_dcbx_parameters()
9347 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_dcbx_parameters()
9348 cmd->ResponseLen = 0; in ql_get_dcbx_parameters()
9358 cmd->Status = EXT_STATUS_ERR; in ql_get_dcbx_parameters()
9359 cmd->ResponseLen = 0; in ql_get_dcbx_parameters()
9365 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_get_dcbx_parameters()
9368 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_dcbx_parameters()
9369 cmd->ResponseLen = 0; in ql_get_dcbx_parameters()
9371 cmd->ResponseLen = EXT_DEF_DCBX_PARAM_BUF_SIZE; in ql_get_dcbx_parameters()
9394 ql_qry_cna_port(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_qry_cna_port() argument
9402 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_qry_cna_port()
9403 cmd->ResponseLen = 0; in ql_qry_cna_port()
9407 if (cmd->ResponseLen < sizeof (EXT_CNA_PORT)) { in ql_qry_cna_port()
9408 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_cna_port()
9409 cmd->DetailStatus = sizeof (EXT_CNA_PORT); in ql_qry_cna_port()
9411 cmd->ResponseLen); in ql_qry_cna_port()
9412 cmd->ResponseLen = 0; in ql_qry_cna_port()
9422 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_cna_port()
9424 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_cna_port()
9425 cmd->ResponseLen = 0; in ql_qry_cna_port()
9428 cmd->ResponseLen = sizeof (EXT_CNA_PORT); in ql_qry_cna_port()
9449 ql_qry_adapter_versions(ql_adapter_state_t *ha, EXT_IOCTL *cmd, in ql_qry_adapter_versions() argument
9477 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_qry_adapter_versions()
9478 cmd->ResponseLen = 0; in ql_qry_adapter_versions()
9509 if (cmd->ResponseLen < ver_len) { in ql_qry_adapter_versions()
9511 "RespLen=%xh ver_len=%xh\n", cmd->ResponseLen, ver_len); in ql_qry_adapter_versions()
9514 ((cmd->ResponseLen - 8) / sizeof (EXT_REGIONVERSION)); in ql_qry_adapter_versions()
9515 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_qry_adapter_versions()
9516 cmd->DetailStatus = ver_len; in ql_qry_adapter_versions()
9517 transfer_size = cmd->ResponseLen; in ql_qry_adapter_versions()
9523 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_qry_adapter_versions()
9525 cmd->Status = EXT_STATUS_COPY_ERR; in ql_qry_adapter_versions()
9526 cmd->ResponseLen = 0; in ql_qry_adapter_versions()
9529 cmd->ResponseLen = ver_len; in ql_qry_adapter_versions()
9552 ql_get_xgmac_statistics(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_xgmac_statistics() argument
9562 if (cmd->RequestLen < sizeof (EXT_MENLO_MANAGE_INFO)) { in ql_get_xgmac_statistics()
9564 EL(ha, "RequestLen=%d < %d\n", cmd->RequestLen, in ql_get_xgmac_statistics()
9566 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_get_xgmac_statistics()
9567 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_get_xgmac_statistics()
9568 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9573 if (ddi_copyin((caddr_t)(uintptr_t)cmd->RequestAdr, in ql_get_xgmac_statistics()
9576 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_xgmac_statistics()
9577 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9584 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_get_xgmac_statistics()
9585 cmd->DetailStatus = 0; in ql_get_xgmac_statistics()
9587 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9595 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_xgmac_statistics()
9596 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9603 cmd->Status = EXT_STATUS_ERR; in ql_get_xgmac_statistics()
9604 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9614 cmd->Status = EXT_STATUS_ERR; in ql_get_xgmac_statistics()
9615 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9622 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_xgmac_statistics()
9623 cmd->ResponseLen = 0; in ql_get_xgmac_statistics()
9625 cmd->ResponseLen = info.TotalByteCount; in ql_get_xgmac_statistics()
9642 ql_get_fcf_list(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_fcf_list() argument
9653 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_fcf_list()
9654 cmd->ResponseLen = 0; in ql_get_fcf_list()
9658 if (ddi_copyin((caddr_t)(uintptr_t)cmd->RequestAdr, in ql_get_fcf_list()
9661 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcf_list()
9662 cmd->ResponseLen = 0; in ql_get_fcf_list()
9670 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_get_fcf_list()
9671 cmd->ResponseLen = 0; in ql_get_fcf_list()
9678 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_get_fcf_list()
9679 cmd->ResponseLen = 0; in ql_get_fcf_list()
9697 cmd->Status = EXT_STATUS_ERR; in ql_get_fcf_list()
9698 cmd->ResponseLen = 0; in ql_get_fcf_list()
9704 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_get_fcf_list()
9707 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_fcf_list()
9708 cmd->ResponseLen = 0; in ql_get_fcf_list()
9710 cmd->ResponseLen = mb_fcf_list.buffer_size; in ql_get_fcf_list()
9727 ql_get_resource_counts(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_resource_counts() argument
9735 if (cmd->ResponseLen < sizeof (EXT_RESOURCE_CNTS)) { in ql_get_resource_counts()
9736 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_resource_counts()
9737 cmd->DetailStatus = sizeof (EXT_RESOURCE_CNTS); in ql_get_resource_counts()
9739 "Len=%xh\n", cmd->ResponseLen); in ql_get_resource_counts()
9740 cmd->ResponseLen = 0; in ql_get_resource_counts()
9747 cmd->Status = EXT_STATUS_ERR; in ql_get_resource_counts()
9748 cmd->ResponseLen = 0; in ql_get_resource_counts()
9766 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_resource_counts()
9769 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_resource_counts()
9770 cmd->ResponseLen = 0; in ql_get_resource_counts()
9773 cmd->ResponseLen = sizeof (EXT_RESOURCE_CNTS); in ql_get_resource_counts()
9794 ql_get_temperature(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_temperature() argument
9804 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_temperature()
9805 cmd->ResponseLen = 0; in ql_get_temperature()
9809 if (cmd->ResponseLen < sizeof (EXT_BOARD_TEMP)) { in ql_get_temperature()
9810 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_temperature()
9811 cmd->DetailStatus = sizeof (EXT_BOARD_TEMP); in ql_get_temperature()
9813 "Len=%xh \n", cmd->ResponseLen); in ql_get_temperature()
9814 cmd->ResponseLen = 0; in ql_get_temperature()
9818 switch (cmd->SubCode) { in ql_get_temperature()
9824 cmd->Status = EXT_STATUS_ERR; in ql_get_temperature()
9825 cmd->ResponseLen = 0; in ql_get_temperature()
9831 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_temperature()
9834 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_temperature()
9835 cmd->ResponseLen = 0; in ql_get_temperature()
9838 cmd->ResponseLen = sizeof (EXT_BOARD_TEMP); in ql_get_temperature()
9842 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_get_temperature()
9843 cmd->Status = EXT_STATUS_ERR; in ql_get_temperature()
9844 cmd->ResponseLen = 0; in ql_get_temperature()
9866 ql_dump_cmd(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_dump_cmd() argument
9883 cmd->Status = EXT_STATUS_OK; in ql_dump_cmd()
9884 cmd->DetailStatus = 0; in ql_dump_cmd()
9886 switch (cmd->SubCode) { in ql_dump_cmd()
9888 cmd->ResponseLen = 0; in ql_dump_cmd()
9890 cmd->DetailStatus = ha->risc_dump_size; in ql_dump_cmd()
9895 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_dump_cmd()
9896 cmd->ResponseLen = 0; in ql_dump_cmd()
9900 if (cmd->ResponseLen < ha->risc_dump_size) { in ql_dump_cmd()
9901 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_dump_cmd()
9902 cmd->DetailStatus = ha->risc_dump_size; in ql_dump_cmd()
9905 cmd->ResponseLen); in ql_dump_cmd()
9916 cmd->ResponseLen = (uint32_t)ql_ascii_fw_dump(ha, dump); in ql_dump_cmd()
9919 (void *)(uintptr_t)(cmd->ResponseAdr), cmd->ResponseLen, in ql_dump_cmd()
9923 cmd->Status = EXT_STATUS_COPY_ERR; in ql_dump_cmd()
9924 cmd->ResponseLen = 0; in ql_dump_cmd()
9938 cmd->ResponseLen = 0; in ql_dump_cmd()
9945 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_dump_cmd()
9951 cmd->Status = EXT_STATUS_ERR; in ql_dump_cmd()
9960 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_dump_cmd()
9961 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_dump_cmd()
9962 cmd->ResponseLen = 0; in ql_dump_cmd()
9985 ql_serdes_reg(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_serdes_reg() argument
9996 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_serdes_reg()
9997 cmd->ResponseLen = 0; in ql_serdes_reg()
10002 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_serdes_reg()
10005 cmd->Status = EXT_STATUS_COPY_ERR; in ql_serdes_reg()
10006 cmd->ResponseLen = 0; in ql_serdes_reg()
10010 switch (cmd->SubCode) { in ql_serdes_reg()
10019 cmd->Status = EXT_STATUS_ERR; in ql_serdes_reg()
10020 cmd->ResponseLen = 0; in ql_serdes_reg()
10023 cmd->Status = EXT_STATUS_OK; in ql_serdes_reg()
10028 if (cmd->ResponseLen < sizeof (EXT_SERDES_REG)) { in ql_serdes_reg()
10029 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_serdes_reg()
10030 cmd->DetailStatus = sizeof (EXT_SERDES_REG); in ql_serdes_reg()
10032 "Len=%xh \n", cmd->ResponseLen); in ql_serdes_reg()
10033 cmd->ResponseLen = 0; in ql_serdes_reg()
10040 cmd->Status = EXT_STATUS_ERR; in ql_serdes_reg()
10041 cmd->ResponseLen = 0; in ql_serdes_reg()
10047 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_serdes_reg()
10049 cmd->Status = EXT_STATUS_COPY_ERR; in ql_serdes_reg()
10050 cmd->ResponseLen = 0; in ql_serdes_reg()
10053 cmd->Status = EXT_STATUS_OK; in ql_serdes_reg()
10054 cmd->ResponseLen = sizeof (EXT_SERDES_REG); in ql_serdes_reg()
10059 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_serdes_reg()
10060 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_serdes_reg()
10061 cmd->ResponseLen = 0; in ql_serdes_reg()
10084 ql_serdes_reg_ex(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_serdes_reg_ex() argument
10095 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_serdes_reg_ex()
10096 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10101 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_serdes_reg_ex()
10104 cmd->Status = EXT_STATUS_COPY_ERR; in ql_serdes_reg_ex()
10105 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10109 switch (cmd->SubCode) { in ql_serdes_reg_ex()
10118 cmd->Status = EXT_STATUS_ERR; in ql_serdes_reg_ex()
10119 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10122 cmd->Status = EXT_STATUS_OK; in ql_serdes_reg_ex()
10127 if (cmd->ResponseLen < sizeof (EXT_SERDES_REG_EX)) { in ql_serdes_reg_ex()
10128 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_serdes_reg_ex()
10129 cmd->DetailStatus = sizeof (EXT_SERDES_REG_EX); in ql_serdes_reg_ex()
10131 "Len=%xh\n", cmd->ResponseLen); in ql_serdes_reg_ex()
10132 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10140 cmd->Status = EXT_STATUS_ERR; in ql_serdes_reg_ex()
10141 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10147 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_serdes_reg_ex()
10149 cmd->Status = EXT_STATUS_COPY_ERR; in ql_serdes_reg_ex()
10150 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10153 cmd->Status = EXT_STATUS_OK; in ql_serdes_reg_ex()
10154 cmd->ResponseLen = sizeof (EXT_SERDES_REG_EX); in ql_serdes_reg_ex()
10159 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_serdes_reg_ex()
10160 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_serdes_reg_ex()
10161 cmd->ResponseLen = 0; in ql_serdes_reg_ex()
10184 ql_els_passthru(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_els_passthru() argument
10201 cmd->Status = EXT_STATUS_BUSY; in ql_els_passthru()
10202 cmd->ResponseLen = 0; in ql_els_passthru()
10206 if (cmd->RequestLen < sizeof (EXT_ELS_PT_REQ)) { in ql_els_passthru()
10209 cmd->RequestLen); in ql_els_passthru()
10210 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_els_passthru()
10211 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_els_passthru()
10212 cmd->ResponseLen = 0; in ql_els_passthru()
10217 bp = kmem_zalloc(cmd->RequestLen, KM_SLEEP); in ql_els_passthru()
10219 if (ddi_copyin((void*)(uintptr_t)cmd->RequestAdr, in ql_els_passthru()
10220 bp, cmd->RequestLen, mode) != 0) { in ql_els_passthru()
10222 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10223 cmd->Status = EXT_STATUS_COPY_ERR; in ql_els_passthru()
10224 cmd->ResponseLen = 0; in ql_els_passthru()
10266 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10267 cmd->Status = EXT_STATUS_ERR; in ql_els_passthru()
10268 cmd->ResponseLen = 0; in ql_els_passthru()
10275 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10276 cmd->Status = EXT_STATUS_DEV_NOT_FOUND; in ql_els_passthru()
10277 cmd->DetailStatus = EXT_DSTATUS_TARGET; in ql_els_passthru()
10278 cmd->ResponseLen = 0; in ql_els_passthru()
10286 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10287 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_els_passthru()
10288 cmd->ResponseLen = 0; in ql_els_passthru()
10292 cmd_size = cmd->RequestLen - sizeof (EXT_ELS_PT_REQ); in ql_els_passthru()
10293 pld_byte_cnt = cmd_size < cmd->ResponseLen ? cmd->ResponseLen : in ql_els_passthru()
10303 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10304 cmd->Status = EXT_STATUS_NO_MEMORY; in ql_els_passthru()
10305 cmd->ResponseLen = 0; in ql_els_passthru()
10315 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10316 cmd->Status = EXT_STATUS_MS_NO_RESPONSE; in ql_els_passthru()
10317 cmd->ResponseLen = 0; in ql_els_passthru()
10355 pkt->els.rcv_payld_data_bcnt = LE_32(cmd->ResponseLen); in ql_els_passthru()
10374 *long_ptr = LE_32(cmd->ResponseLen); in ql_els_passthru()
10392 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10393 cmd->Status = EXT_STATUS_ERR; in ql_els_passthru()
10394 cmd->ResponseLen = 0; in ql_els_passthru()
10419 pkt->ms.resp_byte_count = LE_32(cmd->ResponseLen); in ql_els_passthru()
10420 pkt->ms.dseg[1].length = LE_32(cmd->ResponseLen); in ql_els_passthru()
10452 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10453 cmd->Status = EXT_STATUS_ERR; in ql_els_passthru()
10454 cmd->ResponseLen = 0; in ql_els_passthru()
10460 (void) ddi_dma_sync(dma_mem->dma_handle, 0, cmd->ResponseLen, in ql_els_passthru()
10464 (caddr_t)(uintptr_t)cmd->ResponseAdr, in ql_els_passthru()
10465 cmd->ResponseLen, mode) != cmd->ResponseLen) { in ql_els_passthru()
10466 cmd->Status = EXT_STATUS_COPY_ERR; in ql_els_passthru()
10470 QL_DUMP_9(pld, 8, cmd->ResponseLen); in ql_els_passthru()
10471 cmd->Status = EXT_STATUS_OK; in ql_els_passthru()
10478 kmem_free(bp, cmd->RequestLen); in ql_els_passthru()
10497 ql_flash_update_caps(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_flash_update_caps() argument
10507 switch (cmd->SubCode) { in ql_flash_update_caps()
10509 if (cmd->ResponseLen < sizeof (EXT_FLASH_UPDATE_CAPS)) { in ql_flash_update_caps()
10510 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_flash_update_caps()
10511 cmd->DetailStatus = sizeof (EXT_FLASH_UPDATE_CAPS); in ql_flash_update_caps()
10513 sizeof (EXT_FLASH_UPDATE_CAPS), cmd->ResponseLen); in ql_flash_update_caps()
10514 cmd->ResponseLen = 0; in ql_flash_update_caps()
10521 (void *)(uintptr_t)(cmd->ResponseAdr), in ql_flash_update_caps()
10524 cmd->Status = EXT_STATUS_COPY_ERR; in ql_flash_update_caps()
10525 cmd->ResponseLen = 0; in ql_flash_update_caps()
10528 cmd->ResponseLen = sizeof (EXT_FLASH_UPDATE_CAPS); in ql_flash_update_caps()
10532 if (cmd->RequestLen < sizeof (EXT_FLASH_UPDATE_CAPS)) { in ql_flash_update_caps()
10535 "Len=%xh\n", cmd->RequestLen); in ql_flash_update_caps()
10536 cmd->Status = EXT_STATUS_INVALID_PARAM; in ql_flash_update_caps()
10537 cmd->DetailStatus = EXT_DSTATUS_REQUEST_LEN; in ql_flash_update_caps()
10538 cmd->ResponseLen = 0; in ql_flash_update_caps()
10543 if (ddi_copyin((void *)(uintptr_t)cmd->RequestAdr, in ql_flash_update_caps()
10546 cmd->Status = EXT_STATUS_COPY_ERR; in ql_flash_update_caps()
10547 cmd->ResponseLen = 0; in ql_flash_update_caps()
10552 cmd->Status = EXT_STATUS_ERR; in ql_flash_update_caps()
10553 cmd->ResponseLen = 0; in ql_flash_update_caps()
10558 EL(ha, "unknown subcode=%xh\n", cmd->SubCode); in ql_flash_update_caps()
10559 cmd->Status = EXT_STATUS_UNSUPPORTED_SUBCODE; in ql_flash_update_caps()
10560 cmd->ResponseLen = 0; in ql_flash_update_caps()
10583 ql_get_bbcr_data(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_bbcr_data() argument
10591 if (cmd->ResponseLen < sizeof (EXT_BBCR_DATA)) { in ql_get_bbcr_data()
10592 cmd->Status = EXT_STATUS_BUFFER_TOO_SMALL; in ql_get_bbcr_data()
10593 cmd->DetailStatus = sizeof (EXT_BBCR_DATA); in ql_get_bbcr_data()
10595 sizeof (EXT_BBCR_DATA), cmd->ResponseLen); in ql_get_bbcr_data()
10596 cmd->ResponseLen = 0; in ql_get_bbcr_data()
10602 cmd->Status = EXT_STATUS_INVALID_REQUEST; in ql_get_bbcr_data()
10603 cmd->ResponseLen = 0; in ql_get_bbcr_data()
10641 rval = ddi_copyout((void *)&bb, (void *)(uintptr_t)(cmd->ResponseAdr), in ql_get_bbcr_data()
10644 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_bbcr_data()
10645 cmd->ResponseLen = 0; in ql_get_bbcr_data()
10648 cmd->ResponseLen = sizeof (EXT_BBCR_DATA); in ql_get_bbcr_data()
10670 ql_get_priv_stats(ql_adapter_state_t *ha, EXT_IOCTL *cmd, int mode) in ql_get_priv_stats() argument
10686 cmd->Status = EXT_STATUS_BUSY; in ql_get_priv_stats()
10687 cmd->ResponseLen = 0; in ql_get_priv_stats()
10693 ls = kmem_zalloc(cmd->ResponseLen, KM_SLEEP); in ql_get_priv_stats()
10701 cmd->ResponseLen, (caddr_t)ls, 0); in ql_get_priv_stats()
10705 cmd->Status = EXT_STATUS_MAILBOX; in ql_get_priv_stats()
10706 cmd->DetailStatus = rval; in ql_get_priv_stats()
10707 cmd->ResponseLen = 0; in ql_get_priv_stats()
10710 (void *)(uintptr_t)cmd->ResponseAdr, cmd->ResponseLen, in ql_get_priv_stats()
10714 cmd->Status = EXT_STATUS_COPY_ERR; in ql_get_priv_stats()
10715 cmd->ResponseLen = 0; in ql_get_priv_stats()
10719 kmem_free(ls, cmd->ResponseLen); in ql_get_priv_stats()