Lines Matching defs:msgimplp

1939 	ibmf_msg_impl_t *msgimplp;
1948 msgimplp = (ibmf_msg_impl_t *)kmem_zalloc(sizeof (ibmf_msg_impl_t),
1950 if (msgimplp != NULL) {
1964 *msgp = msgimplp;
1976 ibmf_i_free_msg(ibmf_msg_impl_t *msgimplp)
1978 ibmf_msg_bufs_t *msgbufp = &msgimplp->im_msgbufs_recv;
1979 ibmf_client_t *clientp = (ibmf_client_t *)msgimplp->im_client;
1984 "ibmf_i_free_msg() enter, msg = %p\n", tnf_opaque, msg, msgimplp);
1987 if (msgimplp->im_ibmf_ud_dest != NULL) {
1988 ibmf_i_free_ud_dest(clientp, msgimplp);
2006 mutex_destroy(&msgimplp->im_mutex);
2009 kmem_free(msgimplp, sizeof (ibmf_msg_impl_t));
2022 ibmf_msg_impl_t *msgimplp, int blocking)
2038 tnf_opaque, msg, msgimplp, tnf_uint, block, blocking);
2040 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*msgimplp, *msgbufp))
2042 mutex_enter(&msgimplp->im_mutex);
2044 madhdrp = msgimplp->im_msgbufs_send.im_bufs_mad_hdr;
2045 msgbufp = &msgimplp->im_msgbufs_recv;
2046 smsgbufp = &msgimplp->im_msgbufs_send;
2053 if ((msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_RMPP) == 0) {
2061 mutex_exit(&msgimplp->im_mutex);
2071 msgimplp->im_qp_hdl = ibmf_qp_handle;
2072 msgimplp->im_tid = b2h64(madhdrp->TransactionID);
2073 msgimplp->im_mgt_class = madhdrp->MgmtClass;
2074 msgimplp->im_unsolicited = B_FALSE;
2075 msgimplp->im_trans_state_flags = IBMF_TRANS_STATE_FLAG_UNINIT;
2076 bzero(&msgimplp->im_rmpp_ctx, sizeof (ibmf_rmpp_ctx_t));
2077 msgimplp->im_rmpp_ctx.rmpp_state = IBMF_RMPP_STATE_UNDEFINED;
2078 msgimplp->im_rmpp_ctx.rmpp_respt = IBMF_RMPP_DEFAULT_RRESPT;
2079 msgimplp->im_rmpp_ctx.rmpp_retry_cnt = 0;
2080 msgimplp->im_ref_count = 0;
2081 msgimplp->im_pending_send_compls = 0;
2082 IBMF_MSG_INCR_REFCNT(msgimplp);
2083 if (msgimplp->im_retrans.retrans_retries == 0)
2084 msgimplp->im_retrans.retrans_retries = IBMF_RETRANS_DEF_RETRIES;
2085 if (msgimplp->im_retrans.retrans_rtv == 0)
2086 msgimplp->im_retrans.retrans_rtv = IBMF_RETRANS_DEF_RTV;
2087 if (msgimplp->im_retrans.retrans_rttv == 0)
2088 msgimplp->im_retrans.retrans_rttv = IBMF_RETRANS_DEF_RTTV;
2093 tnf_string, msg, "Added message", tnf_opaque, msgimplp,
2094 msgimplp, tnf_opaque, class, msgimplp->im_mgt_class, tnf_opaque,
2101 tnf_opaque, msgimplp, msgimplp, tnf_opaque, tid, msgimplp->im_tid,
2102 tnf_uint, transp_op_flags, msgimplp->im_transp_op_flags);
2109 (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_SEQ)) {
2110 IBMF_MSG_DECR_REFCNT(msgimplp);
2111 mutex_exit(&msgimplp->im_mutex);
2121 if (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_SEQ)
2122 msgimplp->im_flags |= IBMF_MSG_FLAGS_SEQUENCED;
2124 if (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_RMPP)
2125 msgimplp->im_flags |= IBMF_MSG_FLAGS_SEND_RMPP;
2127 msgimplp->im_flags |= IBMF_MSG_FLAGS_NOT_RMPP;
2131 (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_SEQ)) {
2137 tnf_opaque, msgimplp, msgimplp,
2155 mutex_exit(&msgimplp->im_mutex);
2158 status = ibmf_i_alloc_ud_dest(clientp, msgimplp,
2159 &msgimplp->im_ud_dest, blocking);
2166 _NOTE(NOW_VISIBLE_TO_OTHER_THREADS(*msgimplp, *msgbufp))
2169 ibmf_i_client_add_msg(clientp, msgimplp);
2171 mutex_enter(&msgimplp->im_mutex);
2174 ASSERT(msgimplp->im_trans_state_flags == IBMF_TRANS_STATE_FLAG_UNINIT);
2177 msgimplp->im_trans_state_flags = IBMF_TRANS_STATE_FLAG_INIT;
2182 "block = %d\n", tnf_opaque, msgp, msgimplp,
2183 tnf_uint, local_lid, msgimplp->im_local_addr.ia_local_lid,
2184 tnf_uint, remote_lid, msgimplp->im_local_addr.ia_remote_lid,
2185 tnf_uint, remote_qpn, msgimplp->im_local_addr.ia_remote_qno,
2190 "unsetting timer %p %d\n", tnf_opaque, msgimplp, msgimplp,
2191 tnf_opaque, timeout_id, msgimplp->im_rp_timeout_id);
2193 ASSERT(msgimplp->im_rp_timeout_id == 0);
2194 ASSERT(msgimplp->im_tr_timeout_id == 0);
2196 if ((msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_RMPP) == 0) {
2201 msgimplp, blocking);
2203 IBMF_MSG_DECR_REFCNT(msgimplp);
2204 mutex_exit(&msgimplp->im_mutex);
2205 ibmf_i_client_rem_msg(clientp, msgimplp, &refcnt);
2211 } else if (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_RMPP) {
2217 IBMF_MSG_DECR_REFCNT(msgimplp);
2218 mutex_exit(&msgimplp->im_mutex);
2219 ibmf_i_client_rem_msg(clientp, msgimplp, &refcnt);
2230 IBMF_MSG_DECR_REFCNT(msgimplp);
2231 mutex_exit(&msgimplp->im_mutex);
2232 ibmf_i_client_rem_msg(clientp, msgimplp, &refcnt);
2240 if (msgimplp->im_transp_op_flags & IBMF_MSG_TRANS_FLAG_SEQ)
2244 msgimplp, isDS, blocking);
2246 IBMF_MSG_DECR_REFCNT(msgimplp);
2247 mutex_exit(&msgimplp->im_mutex);
2248 ibmf_i_client_rem_msg(clientp, msgimplp, &refcnt);
2259 IBMF_MSG_DECR_REFCNT(msgimplp);
2262 if (blocking && ((msgimplp->im_trans_state_flags &
2266 msgimplp->im_trans_state_flags |= IBMF_TRANS_STATE_FLAG_WAIT;
2272 tnf_opaque, msgimplp, msgimplp);
2275 cv_wait(&msgimplp->im_trans_cv, &msgimplp->im_mutex);
2281 tnf_opaque, msgimplp, msgimplp);
2284 msgimplp->im_trans_state_flags &= ~IBMF_TRANS_STATE_FLAG_WAIT;
2285 msgimplp->im_flags &= ~IBMF_MSG_FLAGS_BUSY;
2287 if (msgimplp->im_msg_status != IBMF_SUCCESS) {
2292 tnf_uint, msgstatus, msgimplp->im_msg_status);
2294 status = msgimplp->im_msg_status;
2296 } else if (blocking && (msgimplp->im_trans_state_flags &
2298 msgimplp->im_flags &= ~IBMF_MSG_FLAGS_BUSY;
2300 if (msgimplp->im_msg_status != IBMF_SUCCESS) {
2304 tnf_uint, msgstatus, msgimplp->im_msg_status);
2305 status = msgimplp->im_msg_status;
2310 msg_rp_unset_id = msgimplp->im_rp_unset_timeout_id;
2311 msg_tr_unset_id = msgimplp->im_tr_unset_timeout_id;
2312 msgimplp->im_rp_unset_timeout_id = 0;
2313 msgimplp->im_tr_unset_timeout_id = 0;
2315 mutex_exit(&msgimplp->im_mutex);
2336 tnf_string, msg, errmsg, tnf_opaque, msgimplp, msgimplp);
2351 ibmf_i_init_msg(ibmf_msg_impl_t *msgimplp, ibmf_msg_cb_t trans_cb,
2357 _NOTE(ASSUMING_PROTECTED(msgimplp->im_trans_cb,
2358 msgimplp->im_trans_cb_arg))
2361 msgimplp->im_msg_flags |= IBMF_MSG_FLAGS_BLOCKING;
2362 msgimplp->im_trans_cb = trans_cb;
2363 msgimplp->im_trans_cb_arg = trans_cb_arg;
2365 bzero(&msgimplp->im_retrans, sizeof (ibmf_retrans_t));
2367 bcopy((void *)retrans, (void *)&msgimplp->im_retrans,
3441 ibmf_msg_impl_t *msgimplp;
3453 msgimplp = (ibmf_msg_impl_t *)kmem_zalloc(sizeof (ibmf_msg_impl_t),
3455 if (msgimplp == NULL) {
3466 _NOTE(NOW_INVISIBLE_TO_OTHER_THREADS(*msgimplp))
3469 *msgimplp = *regmsgimplp;
3472 mutex_init(&msgimplp->im_mutex, NULL, MUTEX_DRIVER, NULL);
3477 msgimplp->im_msgbufs_recv.im_bufs_mad_hdr =
3479 if (msgimplp->im_msgbufs_recv.im_bufs_mad_hdr == NULL) {
3480 kmem_free(msgimplp, sizeof (ibmf_msg_impl_t));
3493 (void *)msgimplp->im_msgbufs_recv.im_bufs_mad_hdr,
3505 msgimplp->im_msgbufs_recv.im_bufs_cl_hdr =
3506 (uchar_t *)msgimplp->im_msgbufs_recv.im_bufs_mad_hdr + offset;
3507 msgimplp->im_msgbufs_recv.im_bufs_cl_hdr_len =
3510 (void *)msgimplp->im_msgbufs_recv.im_bufs_cl_hdr,
3517 msgimplp->im_rp_timeout_id = 0;
3518 msgimplp->im_tr_timeout_id = 0;
3521 msgimplp->im_flags |= IBMF_MSG_FLAGS_RECV_RMPP;
3524 msgimplp->im_flags |= IBMF_MSG_FLAGS_TERMINATION;
3530 msgimplp->im_flags &= ~IBMF_MSG_FLAGS_SET_TERMINATION;
3536 msgimplp->im_trans_state_flags &= ~IBMF_TRANS_STATE_FLAG_RECV_DONE;
3537 msgimplp->im_trans_state_flags &= ~IBMF_TRANS_STATE_FLAG_DONE;
3540 msgimplp->im_ibmf_ud_dest = NULL;
3541 msgimplp->im_ud_dest = NULL;
3549 status = ibmf_i_alloc_ud_dest(clientp, msgimplp, &msgimplp->im_ud_dest,
3552 kmem_free(msgimplp, sizeof (ibmf_msg_impl_t));
3568 ibmf_i_client_add_msg(clientp, msgimplp);
3581 mutex_enter(&msgimplp->im_mutex);
3583 ibmf_i_set_timer(ibmf_i_recv_timeout, msgimplp, IBMF_RESP_TIMER);
3584 mutex_exit(&msgimplp->im_mutex);