Lines Matching defs:evd_rp

2586 	daplka_evd_resource_t		*evd_rp = NULL;
2608 evd_rp = kmem_zalloc(sizeof (daplka_evd_resource_t), daplka_km_flags);
2609 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*evd_rp))
2610 DAPLKA_RS_INIT(evd_rp, DAPL_TYPE_EVD,
2613 mutex_init(&evd_rp->evd_lock, NULL, MUTEX_DRIVER, NULL);
2614 cv_init(&evd_rp->evd_cv, NULL, CV_DRIVER, NULL);
2615 evd_rp->evd_hca = ia_rp->ia_hca;
2616 evd_rp->evd_flags = args.evd_flags;
2617 evd_rp->evd_hca_hdl = ia_rp->ia_hca_hdl;
2618 evd_rp->evd_cookie = args.evd_cookie;
2619 evd_rp->evd_cno_res = NULL;
2620 evd_rp->evd_cr_events.eel_event_type = DAPLKA_EVD_CM_EVENTS;
2621 evd_rp->evd_conn_events.eel_event_type = DAPLKA_EVD_CM_EVENTS;
2622 evd_rp->evd_async_events.eel_event_type = DAPLKA_EVD_ASYNC_EVENTS;
2639 evd_rp->evd_cno_res = cno_rp;
2642 if ((evd_rp->evd_flags &
2654 status = daplka_ibt_alloc_cq(evd_rp, evd_rp->evd_hca_hdl,
2655 &cq_attr, &evd_rp->evd_cq_hdl, &evd_rp->evd_cq_real_size);
2669 ibt_set_cq_private(evd_rp->evd_cq_hdl, (void *)evd_rp);
2673 status = ibt_ci_data_out(evd_rp->evd_hca_hdl,
2674 IBT_CI_NO_FLAGS, IBT_HDL_CQ, (void *)evd_rp->evd_cq_hdl,
2684 args.evd_cq_real_size = evd_rp->evd_cq_real_size;
2686 ibt_set_cq_handler(evd_rp->evd_cq_hdl, daplka_cq_handler,
2687 (void *)evd_rp);
2691 &evd_hkey, (void *)evd_rp);
2697 _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*evd_rp))
2703 if (evd_rp->evd_flags & DAT_EVD_ASYNC_FLAG) {
2729 if (free_rp != evd_rp) {
2738 DAPLKA_RS_UNREF(evd_rp);
2750 daplka_evd_resource_t *evd_rp = NULL;
2764 evd_rp = (daplka_evd_resource_t *)
2766 if (evd_rp == NULL) {
2770 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
2785 status = ibt_resize_cq(evd_rp->evd_cq_hdl, args.cqr_cq_new_size,
2789 args.cqr_cq_real_size = evd_rp->evd_cq_real_size;
2793 mutex_enter(&evd_rp->evd_lock);
2794 evd_rp->evd_cq_real_size = args.cqr_cq_real_size;
2795 mutex_exit(&evd_rp->evd_lock);
2799 DAPLKA_RS_RNUM(evd_rp),
2803 status = ibt_ci_data_out(evd_rp->evd_hca_hdl,
2804 IBT_CI_NO_FLAGS, IBT_HDL_CQ, (void *)evd_rp->evd_cq_hdl,
2823 if (evd_rp != NULL) {
2824 DAPLKA_RS_UNREF(evd_rp);
2913 dapl_ib_event_t *evd_rp, daplka_evd_event_t *cr_ev)
2942 evd_rp->ibe_ce.ibce_priv_data_size = clen;
2945 bcopy(dp, evd_rp->ibe_ce.ibce_priv_data_ptr, clen);
2959 bcopy(dp, evd_rp->ibe_ce.ibce_priv_data_ptr, clen);
2962 bzero(evd_rp->ibe_ce.ibce_priv_data_ptr,
2965 evd_rp->ibe_ce.ibce_priv_data_size = sizeof (DAPL_PRIVATE);
2966 dp = (DAPL_PRIVATE *)evd_rp->ibe_ce.ibce_priv_data_ptr;
3024 daplka_evd_resource_t *evd_rp = NULL;
3072 evd_rp = (daplka_evd_resource_t *)
3074 if (evd_rp == NULL) {
3078 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
3132 mutex_enter(&evd_rp->evd_lock);
3137 if ((evd_rp->evd_flags & DAT_EVD_CR_FLAG) &&
3138 (evd_rp->evd_cr_events.eel_num_elements > 0)) {
3141 &evd_rp->evd_cr_events)) {
3157 mutex_exit(&evd_rp->evd_lock);
3163 if ((evd_rp->evd_flags & DAT_EVD_CONNECTION_FLAG) &&
3164 (evd_rp->evd_conn_events.eel_num_elements > 0)) {
3167 (&evd_rp->evd_conn_events))) {
3200 mutex_exit(&evd_rp->evd_lock);
3206 if ((evd_rp->evd_flags & DAT_EVD_ASYNC_FLAG) &&
3207 (evd_rp->evd_async_events.eel_num_elements > 0)) {
3210 &evd_rp->evd_async_events)) {
3237 mutex_exit(&evd_rp->evd_lock);
3241 evd_rp->evd_waiters++;
3247 while ((evd_rp->evd_newevents == DAPLKA_EVD_NO_EVENTS) &&
3249 retval = DAPLKA_EVD_WAIT(&evd_rp->evd_cv,
3250 &evd_rp->evd_lock, timeout);
3262 evd_rp->evd_waiters--;
3263 if (evd_rp->evd_newevents != DAPLKA_EVD_NO_EVENTS) {
3271 if (!(evd_rp->evd_newevents &
3273 evd_rp->evd_newevents = DAPLKA_EVD_NO_EVENTS;
3274 mutex_exit(&evd_rp->evd_lock);
3281 evd_rp->evd_newevents = DAPLKA_EVD_NO_EVENTS;
3283 mutex_exit(&evd_rp->evd_lock);
3316 if (evd_rp != NULL) {
3317 DAPLKA_RS_UNREF(evd_rp);
3328 daplka_evd_resource_t *evd_rp;
3339 evd_rp = (daplka_evd_resource_t *)
3341 if (evd_rp == NULL) {
3345 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
3347 daplka_evd_wakeup(evd_rp, NULL, NULL);
3349 DAPLKA_RS_UNREF(evd_rp);
3360 daplka_evd_resource_t *evd_rp;
3373 evd_rp = (daplka_evd_resource_t *)
3375 if (evd_rp == NULL) {
3380 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
3397 mutex_enter(&evd_rp->evd_lock);
3398 old_cno_rp = evd_rp->evd_cno_res;
3399 evd_rp->evd_cno_res = cno_rp;
3400 mutex_exit(&evd_rp->evd_lock);
3411 if (evd_rp) {
3412 DAPLKA_RS_UNREF(evd_rp);
3428 daplka_evd_resource_t *evd_rp = NULL;
3440 (void **)&evd_rp);
3441 if (retval != 0 || evd_rp == NULL) {
3445 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
3448 if (evd_rp->evd_flags & DAT_EVD_ASYNC_FLAG) {
3475 DAPLKA_RS_UNREF(evd_rp);
3486 daplka_evd_resource_t *evd_rp = (daplka_evd_resource_t *)gen_rp;
3491 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*evd_rp))
3492 D3("evd_destroy: entering, evd_rp 0x%p, rnum %d\n",
3493 evd_rp, DAPLKA_RS_RNUM(evd_rp));
3497 if (evd_rp->evd_cq_hdl) {
3498 ibt_set_cq_handler(evd_rp->evd_cq_hdl, NULL, NULL);
3500 ibt_set_cq_private(evd_rp->evd_cq_hdl, NULL);
3503 status = daplka_ibt_free_cq(evd_rp, evd_rp->evd_cq_hdl);
3507 evd_rp->evd_cq_hdl = NULL;
3508 D2("evd_destroy: cq freed, rnum %d\n", DAPLKA_RS_RNUM(evd_rp));
3514 if (evd_rp->evd_cno_res != NULL) {
3515 mutex_enter(&evd_rp->evd_cno_res->cno_lock);
3516 if (evd_rp->evd_cno_res->cno_evd_cookie ==
3517 evd_rp->evd_cookie) {
3518 evd_rp->evd_cno_res->cno_evd_cookie = 0;
3520 mutex_exit(&evd_rp->evd_cno_res->cno_lock);
3521 DAPLKA_RS_UNREF(evd_rp->evd_cno_res);
3522 evd_rp->evd_cno_res = NULL;
3528 mutex_enter(&evd_rp->evd_lock);
3529 while ((evt = daplka_evd_event_dequeue(&evd_rp->evd_cr_events))) {
3540 ASSERT(evd_rp->evd_cr_events.eel_num_elements == 0);
3542 while ((evt = daplka_evd_event_dequeue(&evd_rp->evd_conn_events))) {
3553 ASSERT(evd_rp->evd_conn_events.eel_num_elements == 0);
3555 while ((evt = daplka_evd_event_dequeue(&evd_rp->evd_async_events))) {
3560 ASSERT(evd_rp->evd_async_events.eel_num_elements == 0);
3561 mutex_exit(&evd_rp->evd_lock);
3563 mutex_destroy(&evd_rp->evd_lock);
3564 DAPLKA_RS_FINI(evd_rp);
3565 kmem_free(evd_rp, sizeof (daplka_evd_resource_t));
3566 D3("evd_destroy: exiting, evd_rp 0x%p\n", evd_rp);
3573 daplka_evd_resource_t *evd_rp = (daplka_evd_resource_t *)obj;
3575 ASSERT(DAPLKA_RS_TYPE(evd_rp) == DAPL_TYPE_EVD);
3576 DAPLKA_RS_UNREF(evd_rp);
3597 daplka_evd_wakeup(daplka_evd_resource_t *evd_rp, daplka_evd_event_list_t *evtq,
3602 mutex_enter(&evd_rp->evd_lock);
3604 ASSERT(evtq == &evd_rp->evd_cr_events ||
3605 evtq == &evd_rp->evd_conn_events ||
3606 evtq == &evd_rp->evd_async_events);
3610 evd_rp->evd_newevents |= evtq->eel_event_type;
3612 evd_rp->evd_newevents |= DAPLKA_EVD_ULAND_EVENTS;
3614 waiters = evd_rp->evd_waiters;
3615 cv_broadcast(&evd_rp->evd_cv);
3616 mutex_exit(&evd_rp->evd_lock);
3621 if (evd_rp->evd_cno_res != NULL && waiters == 0) {
3622 mutex_enter(&evd_rp->evd_cno_res->cno_lock);
3623 evd_rp->evd_cno_res->cno_evd_cookie = evd_rp->evd_cookie;
3624 cv_broadcast(&evd_rp->evd_cno_res->cno_cv);
3625 mutex_exit(&evd_rp->evd_cno_res->cno_lock);
6182 daplka_evd_resource_t *evd_rp = NULL;
6211 evd_rp = (daplka_evd_resource_t *)
6213 if (evd_rp == NULL) {
6221 if (evd_rp && evd_rp->evd_cq_real_size > 0) {
6222 backlog_size = evd_rp->evd_cq_real_size + 1;
6236 sp_rp->sp_evd_res = evd_rp;
8327 daplka_ibt_alloc_cq(daplka_evd_resource_t *evd_rp, ibt_hca_hdl_t hca_hdl,
8336 hca_p = evd_rp->evd_hca;
8347 DAPLKA_RS_ACCT_INC(evd_rp, 1);
8353 DAPLKA_RS_ACCT_DEC(evd_rp, 1);
8360 daplka_ibt_free_cq(daplka_evd_resource_t *evd_rp, ibt_cq_hdl_t cq_hdl)
8365 hca_p = evd_rp->evd_hca;
8371 if (DAPLKA_RS_ACCT_CHARGED(evd_rp) > 0) {
8372 DAPLKA_RS_ACCT_DEC(evd_rp, 1);