Lines Matching defs:ibmf_cip

144 static int ibmf_i_init_qp(ibmf_ci_t *ibmf_cip, ibmf_qp_t *qpp);
145 static void ibmf_i_uninit_qp(ibmf_ci_t *ibmf_cip, ibmf_qp_t *qpp);
148 static void ibmf_i_init_qplist(ibmf_ci_t *ibmf_cip);
149 static void ibmf_i_fini_qplist(ibmf_ci_t *ibmf_cip);
150 static int ibmf_i_lookup_client_by_info(ibmf_ci_t *ibmf_cip,
1049 ibmf_i_init_qplist(ibmf_ci_t *ibmf_cip)
1053 tnf_opaque, cip, ibmf_cip);
1055 mutex_enter(&ibmf_cip->ci_mutex);
1056 ASSERT((ibmf_cip->ci_init_state & IBMF_CI_INIT_QP_LIST_INITED) == 0);
1057 ASSERT(ibmf_cip->ci_qp_list == NULL && ibmf_cip->ci_qp_list_tail ==
1059 cv_init(&ibmf_cip->ci_qp_cv, NULL, CV_DRIVER, NULL);
1060 ibmf_cip->ci_init_state |= IBMF_CI_INIT_QP_LIST_INITED;
1061 mutex_exit(&ibmf_cip->ci_mutex);
1072 ibmf_i_fini_qplist(ibmf_ci_t *ibmf_cip)
1080 tnf_opaque, cip, ibmf_cip);
1082 mutex_enter(&ibmf_cip->ci_mutex);
1084 if ((ibmf_cip->ci_init_state & IBMF_CI_INIT_QP_LIST_INITED) != 0) {
1087 qpp = ibmf_cip->ci_qp_list;
1090 ibmf_cip->ci_qp_list = qpp->iq_next;
1094 mutex_exit(&ibmf_cip->ci_mutex);
1108 mutex_enter(&ibmf_cip->ci_mutex);
1111 while (ibmf_cip->ci_wqes_alloced != 0) {
1112 cv_wait(&ibmf_cip->ci_wqes_cv,
1113 &ibmf_cip->ci_mutex);
1116 mutex_exit(&ibmf_cip->ci_mutex);
1133 mutex_enter(&ibmf_cip->ci_mutex);
1134 qpp = ibmf_cip->ci_qp_list;
1137 cv_destroy(&ibmf_cip->ci_qp_cv);
1139 ibmf_cip->ci_qp_list = ibmf_cip->ci_qp_list_tail = NULL;
1140 ibmf_cip->ci_init_state &= ~IBMF_CI_INIT_QP_LIST_INITED;
1142 altqpp = ibmf_cip->ci_alt_qp_list;
1145 ibmf_cip->ci_alt_qp_list = altqpp->isq_next;
1146 mutex_exit(&ibmf_cip->ci_mutex);
1175 mutex_enter(&ibmf_cip->ci_mutex);
1176 altqpp = ibmf_cip->ci_alt_qp_list;
1180 mutex_exit(&ibmf_cip->ci_mutex);
1399 ibmf_i_validate_classes_and_port(ibmf_ci_t *ibmf_cip,
1408 "clientp = %p\n", tnf_opaque, cip, ibmf_cip,
1431 status = ibmf_i_lookup_client_by_info(ibmf_cip, client_infop,
1455 ibmf_i_lookup_client_by_info(ibmf_ci_t *ibmf_cip,
1463 tnf_opaque, cip, ibmf_cip, tnf_opaque, clientinfo, ir_client);
1465 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_clients_mutex));
1470 mutex_enter(&ibmf_cip->ci_clients_mutex);
1471 clientp = ibmf_cip->ci_clients;
1483 mutex_exit(&ibmf_cip->ci_clients_mutex);
1505 ibmf_i_add_client(ibmf_ci_t *ibmf_cip, ibmf_client_t *ibmf_clientp)
1510 tnf_opaque, ibmf_ci, ibmf_cip, tnf_opaque, client, ibmf_clientp);
1512 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_clients_mutex));
1514 mutex_enter(&ibmf_cip->ci_clients_mutex);
1516 ibmf_clientp->ic_prev = ibmf_cip->ci_clients_last;
1517 if (ibmf_cip->ci_clients == NULL) {
1518 ibmf_cip->ci_clients = ibmf_clientp;
1520 if (ibmf_cip->ci_clients_last) {
1521 ibmf_cip->ci_clients_last->ic_next = ibmf_clientp;
1523 ibmf_cip->ci_clients_last = ibmf_clientp;
1524 mutex_exit(&ibmf_cip->ci_clients_mutex);
1535 ibmf_i_delete_client(ibmf_ci_t *ibmf_cip, ibmf_client_t *ibmf_clientp)
1540 tnf_opaque, ibmf_ci, ibmf_cip, tnf_opaque, client, ibmf_clientp);
1542 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_clients_mutex));
1544 mutex_enter(&ibmf_cip->ci_clients_mutex);
1551 if (ibmf_cip->ci_clients == ibmf_clientp) {
1552 ibmf_cip->ci_clients = ibmf_clientp->ic_next;
1554 if (ibmf_cip->ci_clients_last == ibmf_clientp) {
1555 ibmf_cip->ci_clients_last = ibmf_clientp->ic_prev;
1557 mutex_exit(&ibmf_cip->ci_clients_mutex);
1568 ibmf_i_get_qp(ibmf_ci_t *ibmf_cip, uint_t port_num, ibmf_client_type_t class,
1576 "port = %d, class = %x\n", tnf_opaque, ibmf_ci, ibmf_cip,
1579 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_mutex));
1581 mutex_enter(&ibmf_cip->ci_mutex);
1592 qpp = ibmf_cip->ci_qp_list;
1606 mutex_exit(&ibmf_cip->ci_mutex);
1611 mutex_enter(&ibmf_cip->ci_mutex);
1613 qpp = ibmf_cip->ci_qp_list;
1629 if (ibmf_cip->ci_qp_list == NULL)
1630 ibmf_cip->ci_qp_list = qpp;
1631 if (ibmf_cip->ci_qp_list_tail != NULL)
1632 ibmf_cip->ci_qp_list_tail->iq_next = qpp;
1633 ibmf_cip->ci_qp_list_tail = qpp;
1646 cv_wait(&ibmf_cip->ci_qp_cv, &ibmf_cip->ci_mutex);
1654 cv_wait(&ibmf_cip->ci_qp_cv, &ibmf_cip->ci_mutex);
1659 if ((status = ibmf_i_init_qp(ibmf_cip, qpp)) !=
1669 tqpp = ibmf_cip->ci_qp_list;
1672 ibmf_cip->ci_qp_list = NULL;
1673 ibmf_cip->ci_qp_list_tail = NULL;
1689 ibmf_cip->ci_qp_list_tail = tqpp;
1708 mutex_exit(&ibmf_cip->ci_mutex);
1731 ibmf_i_release_qp(ibmf_ci_t *ibmf_cip, ibmf_qp_t **qppp)
1737 "qpp = %p\n", tnf_opaque, cip, ibmf_cip, tnf_opaque, qpp, *qppp);
1739 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_mutex));
1741 mutex_enter(&ibmf_cip->ci_mutex);
1745 ibmf_i_uninit_qp(ibmf_cip, qpp);
1746 mutex_exit(&ibmf_cip->ci_mutex);
1758 ibmf_i_init_qp(ibmf_ci_t *ibmf_cip, ibmf_qp_t *qpp)
1769 "port = %d, qp = %d\n", tnf_opaque, ibmf_ci, ibmf_cip, tnf_int,
1774 ASSERT(MUTEX_HELD(&ibmf_cip->ci_mutex));
1777 mutex_exit(&ibmf_cip->ci_mutex);
1794 qp_attrs.qp_scq_hdl = ibmf_cip->ci_cq_handle;
1795 qp_attrs.qp_rcq_hdl = ibmf_cip->ci_cq_handle;
1796 qp_attrs.qp_pd_hdl = ibmf_cip->ci_pd;
1805 ibt_status = ibt_alloc_special_qp(ibmf_cip->ci_ci_handle,
1808 mutex_enter(&ibmf_cip->ci_mutex);
1810 cv_broadcast(&ibmf_cip->ci_qp_cv);
1825 if (ibmf_i_get_pkeyix(ibmf_cip->ci_ci_handle, IBMF_P_KEY_DEF_LIMITED,
1836 mutex_enter(&ibmf_cip->ci_mutex);
1838 cv_broadcast(&ibmf_cip->ci_qp_cv);
1861 mutex_enter(&ibmf_cip->ci_mutex);
1863 cv_broadcast(&ibmf_cip->ci_qp_cv);
1874 status = ibmf_i_post_recv_buffer(ibmf_cip, qpp,
1883 mutex_enter(&ibmf_cip->ci_mutex);
1887 cv_broadcast(&ibmf_cip->ci_qp_cv);
1899 ibmf_i_uninit_qp(ibmf_ci_t *ibmf_cip, ibmf_qp_t *qpp)
1905 "qpp = %p\n", tnf_opaque, cip, ibmf_cip, tnf_opaque, qpp, qpp);
1907 ASSERT(MUTEX_HELD(&ibmf_cip->ci_mutex));
1912 mutex_exit(&ibmf_cip->ci_mutex);
1924 mutex_enter(&ibmf_cip->ci_mutex);
1926 cv_broadcast(&ibmf_cip->ci_qp_cv);
2383 ibmf_ci_t *ibmf_cip = clientp->ic_myci;
2425 qp_attrs.qp_scq_hdl = ibmf_cip->ci_alt_cq_handle;
2426 qp_attrs.qp_rcq_hdl = ibmf_cip->ci_alt_cq_handle;
2427 qp_attrs.qp_pd_hdl = ibmf_cip->ci_pd;
2495 mutex_enter(&ibmf_cip->ci_mutex);
2496 if (ibmf_cip->ci_alt_qp_list == NULL) {
2497 ibmf_cip->ci_alt_qp_list = qp_ctx;
2501 qpp = ibmf_cip->ci_alt_qp_list;
2507 mutex_exit(&ibmf_cip->ci_mutex);
2518 status = ibmf_i_post_recv_buffer(ibmf_cip, clientp->ic_qp,
2556 ibmf_ci_t *ibmf_cip = qp_ctx->isq_client_hdl->ic_myci;
2567 mutex_enter(&ibmf_cip->ci_mutex);
2568 qpp = ibmf_cip->ci_alt_qp_list;
2571 ibmf_cip->ci_alt_qp_list = qpp->isq_next;
2583 mutex_exit(&ibmf_cip->ci_mutex);
2599 ibmf_i_mad_completions(ibmf_cip->ci_alt_cq_handle, (void*)ibmf_cip);
2715 ibmf_ci_t *ibmf_cip = clientp->ic_myci;
2746 mutex_enter(&ibmf_cip->ci_mutex);
2747 qpp = ibmf_cip->ci_alt_qp_list;
2756 mutex_exit(&ibmf_cip->ci_mutex);
2771 mutex_exit(&ibmf_cip->ci_mutex);
3074 ibmf_i_lookup_client_by_mgmt_class(ibmf_ci_t *ibmf_cip, int port_num,
3083 "port_num = %d, class = 0x%x\n", tnf_opaque, cip, ibmf_cip,
3086 ASSERT(MUTEX_NOT_HELD(&ibmf_cip->ci_clients_mutex));
3088 mutex_enter(&ibmf_cip->ci_clients_mutex);
3090 clientp = ibmf_cip->ci_clients;
3103 mutex_exit(&ibmf_cip->ci_clients_mutex);