Lines Matching defs:p_mad_bind_info

122 boolean_t __valid_mad_handle(IN mad_bind_info_t * p_mad_bind_info);
160 mad_bind_info_t *p_mad_bind_info;
165 p_mad_bind_info =
171 p_list_item = cl_qlist_next(&p_mad_bind_info->list_item);
176 osm_vendor_unbind((osm_bind_handle_t) p_mad_bind_info);
177 p_mad_bind_info = (mad_bind_info_t *) p_list_item;
382 mad_bind_info_t *p_mad_bind_info = (mad_bind_info_t *) h_bind;
383 umadt_obj_t *p_umadt_obj = p_mad_bind_info->p_umadt_obj;
389 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
394 CL_ASSERT(__valid_mad_handle(p_mad_bind_info));
399 p_umadt_obj->uMadtInterface.uMadtGetSendMad(p_mad_bind_info->
438 mad_bind_info_t *p_mad_bind_info;
445 p_mad_bind_info = (mad_bind_info_t *) h_bind;
446 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
451 CL_ASSERT(__valid_mad_handle(p_mad_bind_info));
465 uMadtReleaseSendMad(p_mad_bind_info->umadt_handle,
477 uMadtReleaseRecvMad(p_mad_bind_info->umadt_handle,
503 mad_bind_info_t *p_mad_bind_info;
517 p_mad_bind_info = (mad_bind_info_t *) h_bind;
518 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
523 CL_ASSERT(__valid_mad_handle(p_mad_bind_info));
536 if (p_mad_bind_info->umadt_reg_class.ClassId == IB_MCLASS_SUBN_LID ||
537 p_mad_bind_info->umadt_reg_class.ClassId == IB_MCLASS_SUBN_DIR) {
568 cl_spinlock_acquire(&p_mad_bind_info->trans_ctxt_lock);
569 cl_qlist_insert_tail(&p_mad_bind_info->trans_ctxt_list,
571 cl_spinlock_release(&p_mad_bind_info->trans_ctxt_lock);
574 if (p_mad_bind_info->umadt_reg_class.ClassId == IB_MCLASS_SUBN_LID ||
575 p_mad_bind_info->umadt_reg_class.ClassId == IB_MCLASS_SUBN_DIR) {
580 uMadtGetSendMad(p_mad_bind_info->umadt_handle, &mad_count,
593 p_umadt_obj->uMadtInterface.uMadtPostSend(p_mad_bind_info->
605 uMadtReleaseSendMad(p_mad_bind_info->umadt_handle,
629 uMadtGetSendMad(p_mad_bind_info->umadt_handle,
699 uMadtPostSend(p_mad_bind_info->umadt_handle,
710 uMadtReleaseSendMad(p_mad_bind_info->umadt_handle,
736 mad_bind_info_t *p_mad_bind_info;
753 p_mad_bind_info = (mad_bind_info_t *) malloc(sizeof(*p_mad_bind_info));
754 if (p_mad_bind_info) {
755 memset(p_mad_bind_info, 0, sizeof(*p_mad_bind_info));
756 p_umadt_reg_class = &p_mad_bind_info->umadt_reg_class;
769 p_mad_bind_info->p_umadt_obj = p_umadt_obj;
770 p_mad_bind_info->p_mad_pool = p_mad_pool;
771 p_mad_bind_info->mad_recv_callback = mad_recv_callback;
772 p_mad_bind_info->client_context = context;
776 &p_mad_bind_info->
779 free(p_mad_bind_info);
783 CL_ASSERT(p_mad_bind_info->umadt_handle);
787 cl_thread_construct(&p_mad_bind_info->recv_processor_thread);
788 cl_status = cl_thread_init(&p_mad_bind_info->recv_processor_thread,
790 (void *)p_mad_bind_info, "mad_recv_worker");
793 cl_qlist_init(&p_mad_bind_info->trans_ctxt_list);
794 cl_spinlock_construct(&p_mad_bind_info->trans_ctxt_lock);
795 cl_spinlock_init(&p_mad_bind_info->trans_ctxt_lock);
796 cl_spinlock_construct(&p_mad_bind_info->timeout_list_lock);
797 cl_spinlock_init(&p_mad_bind_info->timeout_list_lock);
799 cl_status = cl_timer_init(&p_mad_bind_info->timeout_timer,
801 (void *)p_mad_bind_info);
803 cl_qlist_init(&p_mad_bind_info->timeout_list);
810 &p_mad_bind_info->list_item);
818 cl_timer_start(&p_mad_bind_info->timeout_timer,
823 return ((osm_bind_handle_t) p_mad_bind_info);
830 mad_bind_info_t *p_mad_bind_info;
835 p_mad_bind_info = (mad_bind_info_t *) h_bind;
836 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
841 CL_ASSERT(__valid_mad_handle(p_mad_bind_info));
843 p_umadt_obj->uMadtInterface.uMadtDestroy(&p_mad_bind_info->
845 cl_timer_destroy(&p_mad_bind_info->timeout_timer);
846 cl_thread_destroy(&p_mad_bind_info->recv_processor_thread);
848 cl_spinlock_acquire(&p_mad_bind_info->trans_ctxt_lock);
849 p_list_item = cl_qlist_head(&p_mad_bind_info->trans_ctxt_list);
850 while (p_list_item != cl_qlist_end(&p_mad_bind_info->trans_ctxt_list)) {
852 cl_qlist_remove_item(&p_mad_bind_info->trans_ctxt_list,
857 cl_spinlock_release(&p_mad_bind_info->trans_ctxt_lock);
859 cl_spinlock_acquire(&p_mad_bind_info->timeout_list_lock);
860 p_list_item = cl_qlist_head(&p_mad_bind_info->timeout_list);
861 while (p_list_item != cl_qlist_end(&p_mad_bind_info->timeout_list)) {
863 cl_qlist_remove_item(&p_mad_bind_info->timeout_list,
868 cl_spinlock_release(&p_mad_bind_info->timeout_list_lock);
870 free(p_mad_bind_info);
877 mad_bind_info_t *p_mad_bind_info = (mad_bind_info_t *) context;
891 p_mad_bind_info = (mad_bind_info_t *) context;
892 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
898 uMadtPollForRecvCompletion(p_mad_bind_info->umadt_handle,
903 Status = p_umadt_obj->uMadtInterface.uMadtWaitForAnyCompletion(p_mad_bind_info->umadt_handle, RECV_COMPLETION, 0x5000); /* 5 sec timeout */
912 uMadtPollForRecvCompletion(p_mad_bind_info->
936 uMadtReleaseRecvMad(p_mad_bind_info->umadt_handle,
947 if (p_mad_bind_info->umadt_reg_class.ClassId ==
949 || p_mad_bind_info->umadt_reg_class.ClassId ==
967 osm_mad_pool_get_wrapper(p_mad_bind_info->p_mad_pool,
968 p_mad_bind_info, MAD_BLOCK_SIZE,
977 osm_log(p_mad_bind_info->p_umadt_obj->p_log, OSM_LOG_DEBUG,
986 cl_spinlock_acquire(&p_mad_bind_info->trans_ctxt_lock);
988 cl_qlist_find_from_head(&p_mad_bind_info->trans_ctxt_list,
993 cl_qlist_end(&p_mad_bind_info->trans_ctxt_list)) {
998 cl_qlist_remove_item(&p_mad_bind_info->trans_ctxt_list,
1002 cl_spinlock_release(&p_mad_bind_info->trans_ctxt_lock);
1005 osm_log(p_mad_bind_info->p_umadt_obj->p_log, OSM_LOG_DEBUG,
1012 (*(p_mad_bind_info->mad_recv_callback)) (p_osm_madw,
1013 p_mad_bind_info->
1035 boolean_t __valid_mad_handle(IN mad_bind_info_t * p_mad_bind_info)
1040 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
1044 &p_mad_bind_info->list_item)) {
1055 mad_bind_info_t *p_mad_bind_info;
1063 p_mad_bind_info = (mad_bind_info_t *) context;
1064 p_umadt_obj = p_mad_bind_info->p_umadt_obj;
1069 cl_spinlock_acquire(&p_mad_bind_info->trans_ctxt_lock);
1071 p_list_item = cl_qlist_head(&p_mad_bind_info->trans_ctxt_list);
1072 while (p_list_item != cl_qlist_end(&p_mad_bind_info->trans_ctxt_list)) {
1080 cl_qlist_remove_item(&p_mad_bind_info->trans_ctxt_list,
1082 cl_qlist_insert_tail(&p_mad_bind_info->timeout_list,
1089 cl_spinlock_release(&p_mad_bind_info->trans_ctxt_lock);
1091 p_list_item = cl_qlist_head(&p_mad_bind_info->timeout_list);
1092 while (p_list_item != cl_qlist_end(&p_mad_bind_info->timeout_list)) {
1093 osm_log(p_mad_bind_info->p_umadt_obj->p_log, OSM_LOG_DEBUG,
1098 (*(p_mad_bind_info->mad_recv_callback)) (NULL,
1099 p_mad_bind_info->
1106 cl_qlist_remove_item(&p_mad_bind_info->timeout_list,
1112 cl_timer_start(&p_mad_bind_info->timeout_timer,