Lines Matching refs:mcbi

559 	mac_cb_info_t	*mcbi;  in i_mac_destructor()  local
575 mcbi = &mip->mi_notify_cb_info; in i_mac_destructor()
576 ASSERT(mcbi->mcbi_del_cnt == 0 && mcbi->mcbi_walker_cnt == 0); in i_mac_destructor()
579 ASSERT(mcbi->mcbi_lockp == &mip->mi_notify_lock); in i_mac_destructor()
580 mcbi->mcbi_lockp = NULL; in i_mac_destructor()
582 mcbi = &mip->mi_promisc_cb_info; in i_mac_destructor()
583 ASSERT(mcbi->mcbi_del_cnt == 0 && mip->mi_promisc_list == NULL); in i_mac_destructor()
585 ASSERT(mcbi->mcbi_lockp == &mip->mi_promisc_lock); in i_mac_destructor()
586 mcbi->mcbi_lockp = NULL; in i_mac_destructor()
639 mac_callback_add(mac_cb_info_t *mcbi, mac_cb_t **mcb_head, in mac_callback_add() argument
657 ASSERT(MUTEX_HELD(mcbi->mcbi_lockp)); in mac_callback_add()
669 mac_callback_remove(mac_cb_info_t *mcbi, mac_cb_t **mcb_head, in mac_callback_remove() argument
675 ASSERT(MUTEX_HELD(mcbi->mcbi_lockp)); in mac_callback_remove()
689 if (mcbi->mcbi_walker_cnt != 0) { in mac_callback_remove()
691 mcbi->mcbi_del_cnt++; in mac_callback_remove()
695 ASSERT(mcbi->mcbi_del_cnt == 0); in mac_callback_remove()
705 mac_callback_remove_wait(mac_cb_info_t *mcbi) in mac_callback_remove_wait() argument
707 ASSERT(MUTEX_HELD(mcbi->mcbi_lockp)); in mac_callback_remove_wait()
708 while (mcbi->mcbi_del_cnt != 0) { in mac_callback_remove_wait()
709 DTRACE_PROBE1(need_wait, mac_cb_info_t *, mcbi); in mac_callback_remove_wait()
710 cv_wait(&mcbi->mcbi_cv, mcbi->mcbi_lockp); in mac_callback_remove_wait()
715 mac_callback_barrier(mac_cb_info_t *mcbi) in mac_callback_barrier() argument
717 ASSERT(MUTEX_HELD(mcbi->mcbi_lockp)); in mac_callback_barrier()
718 ASSERT3U(mcbi->mcbi_barrier_cnt, <, UINT_MAX); in mac_callback_barrier()
720 if (mcbi->mcbi_walker_cnt == 0) { in mac_callback_barrier()
724 mcbi->mcbi_barrier_cnt++; in mac_callback_barrier()
726 cv_wait(&mcbi->mcbi_cv, mcbi->mcbi_lockp); in mac_callback_barrier()
727 } while (mcbi->mcbi_walker_cnt > 0); in mac_callback_barrier()
728 mcbi->mcbi_barrier_cnt--; in mac_callback_barrier()
729 cv_broadcast(&mcbi->mcbi_cv); in mac_callback_barrier()
733 mac_callback_walker_enter(mac_cb_info_t *mcbi) in mac_callback_walker_enter() argument
735 mutex_enter(mcbi->mcbi_lockp); in mac_callback_walker_enter()
740 while (mcbi->mcbi_del_cnt > 0 || mcbi->mcbi_barrier_cnt > 0) { in mac_callback_walker_enter()
741 cv_wait(&mcbi->mcbi_cv, mcbi->mcbi_lockp); in mac_callback_walker_enter()
743 mcbi->mcbi_walker_cnt++; in mac_callback_walker_enter()
744 mutex_exit(mcbi->mcbi_lockp); in mac_callback_walker_enter()
753 mac_callback_walker_cleanup(mac_cb_info_t *mcbi, mac_cb_t **mcb_head) in mac_callback_walker_cleanup() argument
760 ASSERT(MUTEX_HELD(mcbi->mcbi_lockp)); in mac_callback_walker_cleanup()
761 ASSERT(mcbi->mcbi_del_cnt != 0 && mcbi->mcbi_walker_cnt == 0); in mac_callback_walker_cleanup()
776 ASSERT(mcbi->mcbi_del_cnt == cnt); in mac_callback_walker_cleanup()
777 mcbi->mcbi_del_cnt = 0; in mac_callback_walker_cleanup()
782 mac_callback_walker_exit(mac_cb_info_t *mcbi, mac_cb_t **headp, in mac_callback_walker_exit() argument
787 mutex_enter(mcbi->mcbi_lockp); in mac_callback_walker_exit()
790 if (--mcbi->mcbi_walker_cnt != 0) { in mac_callback_walker_exit()
791 mutex_exit(mcbi->mcbi_lockp); in mac_callback_walker_exit()
795 if (mcbi->mcbi_del_cnt != 0) { in mac_callback_walker_exit()
798 rmlist = mac_callback_walker_cleanup(mcbi, headp); in mac_callback_walker_exit()
829 ==, mcbi); in mac_callback_walker_exit()
833 VERIFY(mac_callback_remove(mcbi, in mac_callback_walker_exit()
850 if (mcbi->mcbi_barrier_cnt != 0) { in mac_callback_walker_exit()
859 cv_broadcast(&mcbi->mcbi_cv); in mac_callback_walker_exit()
861 mutex_exit(mcbi->mcbi_lockp); in mac_callback_walker_exit()
879 mac_callback_find(mac_cb_info_t *mcbi, mac_cb_t **mcb_headp, mac_cb_t *mcb_elem) in mac_callback_find() argument
883 mutex_enter(mcbi->mcbi_lockp); in mac_callback_find()
885 mutex_exit(mcbi->mcbi_lockp); in mac_callback_find()
906 mac_cb_info_t *mcbi; in i_mac_notify() local
926 mcbi = &mip->mi_notify_cb_info; in i_mac_notify()
927 mutex_enter(mcbi->mcbi_lockp); in i_mac_notify()
929 cv_broadcast(&mcbi->mcbi_cv); in i_mac_notify()
930 mutex_exit(mcbi->mcbi_lockp); in i_mac_notify()
7992 mac_cb_info_t *mcbi; in mac_client_tx_notify_add() local
8004 mcbi = &mcip->mci_tx_notify_cb_info; in mac_client_tx_notify_add()
8005 mutex_enter(mcbi->mcbi_lockp); in mac_client_tx_notify_add()
8006 mac_callback_add(mcbi, &mcip->mci_tx_notify_cb_list, &mtnfp->mtnf_link); in mac_client_tx_notify_add()
8007 mutex_exit(mcbi->mcbi_lockp); in mac_client_tx_notify_add()
8014 mac_cb_info_t *mcbi; in mac_client_tx_notify_remove() local
8027 mcbi = &mcip->mci_tx_notify_cb_info; in mac_client_tx_notify_remove()
8029 mutex_enter(mcbi->mcbi_lockp); in mac_client_tx_notify_remove()
8030 if (mac_callback_remove(mcbi, cblist, &mtnfp->mtnf_link)) in mac_client_tx_notify_remove()
8034 mutex_exit(mcbi->mcbi_lockp); in mac_client_tx_notify_remove()