static void endpoint_init_qp(mca_btl_base_endpoint_t *ep, const int qp) { mca_btl_openib_endpoint_qp_t *ep_qp = &ep->qps[qp]; ep_qp->rd_credit_send_lock = 0; ep_qp->credit_frag = NULL; OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[0], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[1], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[0], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[1], opal_list_t); switch(BTL_OPENIB_QP_TYPE(qp)) { case MCA_BTL_OPENIB_PP_QP: endpoint_init_qp_pp(ep_qp, qp); break; case MCA_BTL_OPENIB_SRQ_QP: endpoint_init_qp_srq(ep_qp, qp); break; case MCA_BTL_OPENIB_XRC_QP: if (NULL == ep->ib_addr->qp) { ep->ib_addr->qp = endpoint_alloc_qp(); } endpoint_init_qp_xrc(ep, qp); break; default: BTL_ERROR(("Wrong QP type")); return; } ep_qp->qp->sd_wqe_inflight = 0; ep_qp->qp->wqe_count = QP_TX_BATCH_COUNT; }
static void endpoint_init_qp(mca_btl_base_endpoint_t *ep, const int qp) { mca_btl_wv_endpoint_qp_t *ep_qp = &ep->qps[qp]; ep_qp->rd_credit_send_lock = 0; ep_qp->credit_frag = NULL; OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[0], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_wqe_pending_frags[1], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[0], opal_list_t); OBJ_CONSTRUCT(&ep_qp->no_credits_pending_frags[1], opal_list_t); switch(BTL_WV_QP_TYPE(qp)) { case MCA_BTL_WV_PP_QP: endpoint_init_qp_pp(ep_qp, qp); break; case MCA_BTL_WV_SRQ_QP: endpoint_init_qp_srq(ep_qp, qp); break; default: BTL_ERROR(("Wrong QP type")); break; } }