Lines Matching refs:rmsgimplp

215 	ibmf_msg_impl_t	*rmsgimplp;
300 rmsgimplp = ibmf_i_find_msg(rclientp, msgimplp->im_tid,
305 if (rmsgimplp != NULL) {
307 mutex_enter(&rmsgimplp->im_mutex);
313 if ((rmsgimplp->im_trans_state_flags &
315 (rmsgimplp->im_trans_state_flags &
317 IBMF_MSG_DECR_REFCNT(rmsgimplp);
318 msg_trans_state_flags = rmsgimplp->im_trans_state_flags;
319 msg_flags = rmsgimplp->im_flags;
320 ref_cnt = rmsgimplp->im_ref_count;
321 mutex_exit(&rmsgimplp->im_mutex);
341 ibmf_i_notify_client(rmsgimplp);
356 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*rmsgimplp))
360 rmsgimplp = (ibmf_msg_impl_t *)kmem_zalloc(
362 if (rmsgimplp == NULL) {
373 mutex_init(&rmsgimplp->im_mutex, NULL, MUTEX_DRIVER, NULL);
375 rmsgimplp->im_client = rclientp;
376 rmsgimplp->im_qp_hdl = msgimplp->im_qp_hdl;
377 rmsgimplp->im_unsolicited = B_TRUE;
378 rmsgimplp->im_tid = b2h64(dr_hdr->TransactionID);
379 rmsgimplp->im_mgt_class = dr_hdr->MgmtClass;
382 if (rmsgimplp->im_qp_hdl == IBMF_QP_HANDLE_DEFAULT) {
389 qpp = (ibmf_alt_qp_t *)rmsgimplp->im_qp_hdl;
396 IBMF_MSG_INCR_REFCNT(rmsgimplp);
397 rmsgimplp->im_trans_state_flags = IBMF_TRANS_STATE_FLAG_UNINIT;
399 _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*rmsgimplp))
402 ibmf_i_client_add_msg(rclientp, rmsgimplp);
404 mutex_enter(&rmsgimplp->im_mutex);
407 ASSERT(rmsgimplp->im_trans_state_flags ==
411 rmsgimplp->im_trans_state_flags = IBMF_TRANS_STATE_FLAG_INIT;
415 if (rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr == NULL) {
416 rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr =
418 if (rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr == NULL) {
419 IBMF_MSG_DECR_REFCNT(rmsgimplp);
420 mutex_exit(&rmsgimplp->im_mutex);
421 kmem_free(rmsgimplp, sizeof (ibmf_msg_impl_t));
438 (void *)rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr,
446 rmsgimplp->im_msgbufs_recv.im_bufs_cl_hdr =
447 (uchar_t *)rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr +
449 rmsgimplp->im_msgbufs_recv.im_bufs_cl_hdr_len =
452 (void *)rmsgimplp->im_msgbufs_recv.im_bufs_cl_hdr,
456 rmsgimplp->im_msgbufs_recv.im_bufs_cl_data =
457 (uchar_t *)rmsgimplp->im_msgbufs_recv.im_bufs_mad_hdr +
459 rmsgimplp->im_msgbufs_recv.im_bufs_cl_hdr_len;
460 rmsgimplp->im_msgbufs_recv.im_bufs_cl_data_len =
463 (void *)rmsgimplp->im_msgbufs_recv.im_bufs_cl_data,
468 (void *)&rmsgimplp->im_global_addr,
473 (void *)&rmsgimplp->im_local_addr,
480 rmsgimplp->im_trans_state_flags |= IBMF_TRANS_STATE_FLAG_DONE;
488 IBMF_MSG_DECR_REFCNT(rmsgimplp);
490 mutex_exit(&rmsgimplp->im_mutex);
502 ibmf_i_client_rem_msg(rclientp, rmsgimplp, &ref_cnt);
512 ibmf_i_notify_client(rmsgimplp);