ocs_hw_io_t
ocs_ddump_hw_io(ocs_textbuf_t *textbuf, ocs_hw_io_t *io)
ocs_hw_io_t *io = NULL;
ocs_bls_send_acc_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *app)
ocs_els_abort_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *app)
ocs_ct_acc_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg)
ocs_els_req_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg)
ocs_els_acc_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg)
static int32_t ocs_els_acc_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg);
static int32_t ocs_bls_send_acc_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length,
ocs_hw_io_t *io = NULL;
ocs_hw_io_t *io_next = NULL;
ocs_hw_is_io_port_owned(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_t *io = ocs_hw_io_lookup(hw, xri);
ocs_hw_io_t *io;
ocs_hw_io_t *io;
ocs_hw_reque_xri( ocs_hw_t *hw, ocs_hw_io_t *io )
ocs_free(hw->os, hw->io[i], sizeof(ocs_hw_io_t));
ocs_free(hw->os, hw->io, hw->config.n_io * sizeof(ocs_hw_io_t *));
ocs_hw_set_io_wqe_timeout(ocs_hw_io_t *io, uint32_t timeout)
ocs_hw_add_io_timed_wqe(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_remove_io_timed_wqe(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_init_free_io(ocs_hw_io_t *io)
static inline ocs_hw_io_t *
ocs_hw_io_t *io = NULL;
ocs_hw_io_t *
ocs_hw_io_t *io = NULL;
ocs_hw_io_t *
ocs_hw_io_activate_port_owned(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_free_move_correct_list(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_free_common(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_t *io = (ocs_hw_io_t *)arg;
ocs_hw_io_t *io = (ocs_hw_io_t *)arg;
ocs_hw_io_free(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_inuse(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_t *io;
ocs_hw_io_t *sec_io;
ocs_hw_srrs_send(ocs_hw_t *hw, ocs_hw_io_type_e type, ocs_hw_io_t *io,
ocs_hw_io_send(ocs_hw_t *hw, ocs_hw_io_type_e type, ocs_hw_io_t *io,
ocs_hw_io_register_sgl(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_dma_t *sgl, uint32_t sgl_count)
ocs_hw_io_restore_sgl(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_list_init(&hw->sec_hio_wait_list, ocs_hw_io_t, link);
ocs_hw_io_init_sges(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_hw_io_type_e type)
ocs_hw_io_add_seed_sge(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_hw_dif_info_t *dif_info)
ocs_hw_io_overflow_sgl(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_add_sge(ocs_hw_t *hw, ocs_hw_io_t *io, uintptr_t addr, uint32_t length)
ocs_hw_io_add_dif_sge(ocs_hw_t *hw, ocs_hw_io_t *io, uintptr_t addr)
ocs_hw_io_abort(ocs_hw_t *hw, ocs_hw_io_t *io_to_abort, uint32_t send_abts, void *cb, void *arg)
ocs_hw_io_get_xid(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_list_init(&hw->io_inuse, ocs_hw_io_t, link);
ocs_list_init(&hw->io_free, ocs_hw_io_t, link);
ocs_list_init(&hw->io_port_owned, ocs_hw_io_t, link);
ocs_list_init(&hw->io_wait_free, ocs_hw_io_t, link);
ocs_list_init(&hw->io_timed_wqe, ocs_hw_io_t, wqe_link);
ocs_list_init(&hw->io_port_dnrx, ocs_hw_io_t, dnrx_link);
ocs_hw_io_t *io = NULL;
ocs_hw_io_quarantine(ocs_hw_t *hw, hw_wq_t *wq, ocs_hw_io_t *io)
ocs_hw_io_t *free_io = NULL;
ocs_hw_io_t *io = arg;
static void ocs_hw_io_quarantine(ocs_hw_t *hw, hw_wq_t *wq, ocs_hw_io_t *io);
ocs_hw_io_t *io = arg;
static void ocs_hw_io_restore_sgl(ocs_hw_t *, ocs_hw_io_t *);
ocs_hw_io_t *io = NULL;
static int32_t ocs_hw_io_ini_sge(ocs_hw_t *, ocs_hw_io_t *, ocs_dma_t *, uint32_t, ocs_dma_t *);
ocs_hw_io_t *io = NULL;
hw->io = ocs_malloc(hw->os, hw->config.n_io * sizeof(ocs_hw_io_t *), OCS_M_ZERO | OCS_M_NOWAIT);
sizeof(ocs_hw_io_t *));
hw->io[i] = ocs_malloc(hw->os, sizeof(ocs_hw_io_t),
ocs_free(hw->os, hw->io, hw->config.n_io * sizeof(ocs_hw_io_t));
ocs_free(hw->os, hw->io[i], sizeof(ocs_hw_io_t));
ocs_hw_io_t *io = NULL;
ocs_hw_io_t *
ocs_hw_io_cancel_cleanup(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_io_t *io = NULL;
ocs_hw_io_t *tmp_io = NULL;
ocs_hw_io_ini_sge(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_dma_t *cmnd, uint32_t cmnd_size,
ocs_hw_io_t **io; /**< pointer array of IO objects */
ocs_hw_io_t *send_frame_io;
extern ocs_hw_io_t *ocs_hw_io_alloc(ocs_hw_t *);
extern ocs_hw_io_t *ocs_hw_io_activate_port_owned(ocs_hw_t *, ocs_hw_io_t *);
extern int32_t ocs_hw_io_free(ocs_hw_t *, ocs_hw_io_t *);
extern uint8_t ocs_hw_io_inuse(ocs_hw_t *hw, ocs_hw_io_t *io);
typedef int32_t (*ocs_hw_srrs_cb_t)(ocs_hw_io_t *io, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *arg);
extern ocs_hw_rtn_e ocs_hw_srrs_send(ocs_hw_t *, ocs_hw_io_type_e, ocs_hw_io_t *, ocs_dma_t *, uint32_t, ocs_dma_t *, ocs_remote_node_t *, ocs_hw_io_param_t *, ocs_hw_srrs_cb_t, void *);
extern ocs_hw_rtn_e ocs_hw_io_send(ocs_hw_t *, ocs_hw_io_type_e, ocs_hw_io_t *, uint32_t, ocs_hw_io_param_t *, ocs_remote_node_t *, void *, void *);
extern ocs_hw_rtn_e _ocs_hw_io_send(ocs_hw_t *hw, ocs_hw_io_type_e type, ocs_hw_io_t *io,
extern ocs_hw_rtn_e ocs_hw_io_register_sgl(ocs_hw_t *, ocs_hw_io_t *, ocs_dma_t *, uint32_t);
extern ocs_hw_rtn_e ocs_hw_io_init_sges(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_hw_io_type_e type);
extern ocs_hw_rtn_e ocs_hw_io_add_seed_sge(ocs_hw_t *hw, ocs_hw_io_t *io, ocs_hw_dif_info_t *dif_info);
extern ocs_hw_rtn_e ocs_hw_io_add_sge(ocs_hw_t *, ocs_hw_io_t *, uintptr_t, uint32_t);
extern ocs_hw_rtn_e ocs_hw_io_add_dif_sge(ocs_hw_t *hw, ocs_hw_io_t *io, uintptr_t addr);
extern ocs_hw_rtn_e ocs_hw_io_abort(ocs_hw_t *, ocs_hw_io_t *, uint32_t, void *, void *);
extern int32_t ocs_hw_io_get_xid(ocs_hw_t *, ocs_hw_io_t *);
extern uint8_t ocs_hw_is_io_port_owned(ocs_hw_t *hw, ocs_hw_io_t *io);
extern ocs_hw_io_t * ocs_hw_io_lookup(ocs_hw_t *hw, uint32_t indicator);
extern int32_t ocs_hw_reque_xri(ocs_hw_t *hw, ocs_hw_io_t *io);
extern uint8_t ocs_hw_rqpair_auto_xfer_rdy_buffer_post(ocs_hw_t *hw, ocs_hw_io_t *io, int reuse_buf);
extern ocs_hw_rtn_e ocs_hw_rqpair_auto_xfer_rdy_move_to_port(ocs_hw_t *hw, ocs_hw_io_t *io);
extern void ocs_hw_rqpair_auto_xfer_rdy_move_to_host(ocs_hw_t *hw, ocs_hw_io_t *io);
ocs_hw_io_t *ovfl_io; /**< Used for SGL chaining on skyhawk */
ocs_hw_io_t *hio; /**< HW IO */
ocs_hw_io_t *quarantine_ios[OCS_HW_QUARANTINE_QUEUE_DEPTH];
ocs_hw_io_t *io;
ocs_hw_io_t *io;
ocs_hw_rqpair_auto_xfer_rdy_move_to_port(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_rqpair_auto_xfer_rdy_move_to_host(ocs_hw_t *hw, ocs_hw_io_t *io)
ocs_hw_rqpair_auto_xfer_rdy_buffer_post(ocs_hw_t *hw, ocs_hw_io_t *io, int reuse_buf)
ocs_hw_queue_next_wq(ocs_hw_t *hw, ocs_hw_io_t *io)
extern hw_wq_t *ocs_hw_queue_next_wq(ocs_hw_t *hw, ocs_hw_io_t *io);
ocs_hw_io_t *hio = NULL;
ocs_hw_io_t *hio; /**< HW IO context */
ocs_hw_io_t *hio;
ocs_scsi_io_dispatch_hw_io(ocs_io_t *io, ocs_hw_io_t *hio)
ocs_hw_io_t *hio_to_abort = NULL;
ocs_target_abort_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *app)
ocs_target_bls_resp_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length, int32_t status, uint32_t ext_status, void *app)
ocs_initiator_io_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length,
ocs_target_io_cb(ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t length,
ocs_scsi_build_sgls(ocs_hw_t *hw, ocs_hw_io_t *hio, ocs_hw_dif_info_t *hw_dif, ocs_scsi_sgl_t *sgl, uint32_t sgl_count, ocs_hw_io_type_e type)
static int32_t ocs_scsi_io_dispatch_hw_io(ocs_io_t *io, ocs_hw_io_t *hio);
ocs_hw_io_t *hio = io->hio;
ocs_hw_io_t *hio;
ocs_hw_io_t *hio = seq->hio;
ocs_unsol_abort_cb (ocs_hw_io_t *hio, ocs_remote_node_t *rnode, uint32_t len, int32_t status, uint32_t ext, void *arg)
ocs_port_owned_abort(ocs_t *ocs, ocs_hw_io_t *hio)
extern void ocs_seq_coalesce_cleanup(ocs_hw_io_t *hio, uint8_t abort_io);