mptsas_cmd_t
print_cdb(mptsas_cmd_t *m)
slots = mdb_alloc(sizeof (mptsas_cmd_t) * nslots, UM_SLEEP);
if (mdb_vread(&slots[i], sizeof (mptsas_cmd_t),
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q) == -1) {
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q) == -1) {
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q)
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q)
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q) == -1) {
if (mdb_vread(&c, sizeof (mptsas_cmd_t), (uintptr_t)q) == -1) {
mdb_free(slots, sizeof (mptsas_cmd_t) * nslots);
(sizeof (mptsas_cmd_t *) * (nslots-1));
mptsas_cmd_t *cmd;
mptsas_cmd_t *cmd;
mptsas_dump_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_start_passthru(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd = NULL;
mptsas_start_diag(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd = NULL;
mptsas_cmd_t *cmd = NULL;
static int mptsas_alloc_extra_sgl_frame(mptsas_t *mpt, mptsas_cmd_t *cmd);
static void mptsas_free_extra_sgl_frame(mptsas_t *mpt, mptsas_cmd_t *cmd);
static int mptsas_prepare_pkt(mptsas_cmd_t *cmd);
static int mptsas_accept_pkt(mptsas_t *mpt, mptsas_cmd_t *sp);
static int mptsas_accept_txwq_and_pkt(mptsas_t *mpt, mptsas_cmd_t *sp);
static void mptsas_handle_qfull(mptsas_t *mpt, mptsas_cmd_t *cmd);
static void mptsas_set_pkt_reason(mptsas_t *mpt, mptsas_cmd_t *cmd,
static void mptsas_sge_setup(mptsas_t *mpt, mptsas_cmd_t *cmd,
static void mptsas_start_passthru(mptsas_t *mpt, mptsas_cmd_t *cmd);
static void mptsas_start_diag(mptsas_t *mpt, mptsas_cmd_t *cmd);
static int mptsas_pkt_alloc_extern(mptsas_t *mpt, mptsas_cmd_t *cmd,
static void mptsas_pkt_destroy_extern(mptsas_t *mpt, mptsas_cmd_t *cmd);
mptsas_alloc_extra_sgl_frame(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_free_extra_sgl_frame(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd);
pMpi2SCSIManagementReply_t reply, mptsas_cmd_t *cmd);
static int mptsas_start_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd);
static void mptsas_doneq_add(mptsas_t *mpt, mptsas_cmd_t *cmd);
static mptsas_cmd_t *mptsas_doneq_thread_rm(mptsas_t *mpt, uint64_t t);
static mptsas_cmd_t *mptsas_waitq_rm(mptsas_t *mpt);
static void mptsas_waitq_delete(mptsas_t *mpt, mptsas_cmd_t *cmd);
static mptsas_cmd_t *mptsas_tx_waitq_rm(mptsas_t *mpt);
static void mptsas_tx_waitq_delete(mptsas_t *mpt, mptsas_cmd_t *cmd);
mptsas_cmd_t *cmd = PKT2CMD(pkt);
static void mptsas_dump_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd);
mptsas_accept_txwq_and_pkt(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_accept_pkt(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_save_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_prepare_pkt(mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd, *new_cmd;
mptsas_cmd_t *cmd = PKT2CMD(pkt);
mptsas_cmd_t *cmd = buf;
mptsas_cmd_t *cmd = buf;
mptsas_cmdarqsize(mptsas_t *mpt, mptsas_cmd_t *cmd, size_t senselength, int kf)
mptsas_pkt_alloc_extern(mptsas_t *mpt, mptsas_cmd_t *cmd,
mptsas_pkt_destroy_extern(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd = PKT2CMD(pkt);
mptsas_cmd_t *cmd = PKT2CMD(pkt);
mptsas_pkt_comp(struct scsi_pkt *pkt, mptsas_cmd_t *cmd)
mptsas_sge_mainframe(mptsas_cmd_t *cmd, pMpi2SCSIIORequest_t frame,
mptsas_sge_chain(mptsas_t *mpt, mptsas_cmd_t *cmd,
mptsas_ieee_sge_mainframe(mptsas_cmd_t *cmd, pMpi2SCSIIORequest_t frame,
mptsas_ieee_sge_chain(mptsas_t *mpt, mptsas_cmd_t *cmd,
mptsas_sge_setup(mptsas_t *mpt, mptsas_cmd_t *cmd, uint32_t *control,
mptsas_poll(mptsas_t *mpt, mptsas_cmd_t *poll_cmd, int polltime)
mptsas_cmd_t *cmd = NULL;
mptsas_cmd_t *cmd = NULL;
mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd;
mptsas_handle_qfull(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_remove_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd, *next_cmd;
mptsas_cmd_t *cmd;
mptsas_start_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *c;
mptsas_cmd_t *cmd;
mptsas_fma_check(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_doneq_add(mptsas_t *mpt, mptsas_cmd_t *cmd)
static mptsas_cmd_t *
mptsas_cmd_t *cmd;
mptsas_cmd_t *cmd, *next;
mptsas_waitq_add(mptsas_t *mpt, mptsas_cmd_t *cmd)
static mptsas_cmd_t *
mptsas_cmd_t *cmd;
mptsas_waitq_delete(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *prevp = mpt->m_waitq;
static mptsas_cmd_t *
mptsas_cmd_t *cmd;
mptsas_tx_waitq_delete(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *prevp = mpt->m_tx_waitq;
mptsas_cmd_t *cmd, *next_cmd;
mptsas_cmd_t *cmd;
mptsas_set_pkt_reason(mptsas_t *mpt, mptsas_cmd_t *cmd, uchar_t reason,
mptsas_cmd_t *sp = NULL;
mptsas_request_from_pool(mptsas_t *mpt, mptsas_cmd_t **cmd,
mptsas_return_to_pool(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd;
mptsas_cmd_t *cmd;
mptsas_start_config_page_access(mptsas_t *mpt, mptsas_cmd_t *cmd)
mptsas_cmd_t *cmd;
mptsas_cmd_t *cmd;
void mptsas_remove_cmd(mptsas_t *mpt, mptsas_cmd_t *cmd);
void mptsas_waitq_add(mptsas_t *mpt, mptsas_cmd_t *cmd);
int mptsas_poll(mptsas_t *mpt, mptsas_cmd_t *poll_cmd, int polltime);
void mptsas_fma_check(mptsas_t *mpt, mptsas_cmd_t *cmd);
int mptsas_request_from_pool(mptsas_t *mpt, mptsas_cmd_t **cmd,
void mptsas_return_to_pool(mptsas_t *mpt, mptsas_cmd_t *cmd);
void mptsas_start_config_page_access(mptsas_t *mpt, mptsas_cmd_t *cmd);
mptsas_cmd_t *m_slot[1];
mptsas_cmd_t *doneq;
mptsas_cmd_t **donetail;
mptsas_cmd_t *m_waitq; /* cmd queue for active request */
mptsas_cmd_t **m_waitqtail; /* wait queue tail ptr */
mptsas_cmd_t *m_tx_waitq; /* TX cmd queue for active request */
mptsas_cmd_t **m_tx_waitqtail; /* tx_wait queue tail ptr */
mptsas_cmd_t *m_doneq; /* queue of completed commands */
mptsas_cmd_t **m_donetail; /* queue tail ptr */