Lines Matching refs:dopers

2843 	if (idn.dopers)  in idn_dopers_init()
2846 idn.dopers = GETSTRUCT(struct dopers, 1); in idn_dopers_init()
2848 bzero(idn.dopers, sizeof (struct dopers)); in idn_dopers_init()
2850 dwl = &idn.dopers->_dop_wcache[0]; in idn_dopers_init()
2855 idn.dopers->dop_freelist = &idn.dopers->_dop_wcache[0]; in idn_dopers_init()
2856 idn.dopers->dop_waitcount = 0; in idn_dopers_init()
2857 idn.dopers->dop_domset = 0; in idn_dopers_init()
2858 idn.dopers->dop_waitlist = NULL; in idn_dopers_init()
2860 cv_init(&idn.dopers->dop_cv, NULL, CV_DEFAULT, NULL); in idn_dopers_init()
2861 mutex_init(&idn.dopers->dop_mutex, NULL, MUTEX_DEFAULT, NULL); in idn_dopers_init()
2870 if (idn.dopers == NULL) in idn_dopers_deinit()
2873 for (dwl = idn.dopers->dop_waitlist; dwl; dwl = next_dwl) { in idn_dopers_deinit()
2879 cv_destroy(&idn.dopers->dop_cv); in idn_dopers_deinit()
2880 mutex_destroy(&idn.dopers->dop_mutex); in idn_dopers_deinit()
2882 FREESTRUCT(idn.dopers, struct dopers, 1); in idn_dopers_deinit()
2883 idn.dopers = NULL; in idn_dopers_deinit()
2899 mutex_enter(&idn.dopers->dop_mutex); in idn_init_op()
2900 if ((dwl = idn.dopers->dop_freelist) == NULL) { in idn_init_op()
2903 idn.dopers->dop_freelist = dwl->dw_next; in idn_init_op()
2909 dwl->dw_next = idn.dopers->dop_waitlist; in idn_init_op()
2911 idn.dopers->dop_waitlist = dwl; in idn_init_op()
2912 idn.dopers->dop_waitcount++; in idn_init_op()
2913 idn.dopers->dop_domset |= domset; in idn_init_op()
2914 mutex_exit(&idn.dopers->dop_mutex); in idn_init_op()
2932 mutex_enter(&idn.dopers->dop_mutex); in idn_add_op()
2933 if ((idn.dopers->dop_waitcount == 0) || in idn_add_op()
2934 ((idn.dopers->dop_domset & domset) == 0)) { in idn_add_op()
2935 mutex_exit(&idn.dopers->dop_mutex); in idn_add_op()
2938 for (dwl = idn.dopers->dop_waitlist; dwl; dwl = dwl->dw_next) in idn_add_op()
2941 mutex_exit(&idn.dopers->dop_mutex); in idn_add_op()
2956 mutex_enter(&idn.dopers->dop_mutex); in idn_update_op()
2962 if ((idn.dopers->dop_waitcount == 0) || in idn_update_op()
2963 ((idn.dopers->dop_domset & domset) == 0)) { in idn_update_op()
2964 mutex_exit(&idn.dopers->dop_mutex); in idn_update_op()
2970 for (dw = idn.dopers->dop_waitlist; dw; dw = dw->dw_next) { in idn_update_op()
3006 cv_broadcast(&idn.dopers->dop_cv); in idn_update_op()
3008 mutex_exit(&idn.dopers->dop_mutex); in idn_update_op()
3018 mutex_enter(&idn.dopers->dop_mutex); in idn_deinit_op()
3020 ASSERT(idn.dopers->dop_waitlist); in idn_deinit_op()
3022 if (dwl == idn.dopers->dop_waitlist) { in idn_deinit_op()
3023 idn.dopers->dop_waitlist = dwl->dw_next; in idn_deinit_op()
3025 dwl->dw_next = idn.dopers->dop_freelist; in idn_deinit_op()
3026 idn.dopers->dop_freelist = dwl; in idn_deinit_op()
3031 for (tw = idn.dopers->dop_waitlist, hw = tw->dw_next; in idn_deinit_op()
3049 for (hw = idn.dopers->dop_waitlist, domset = 0; hw; hw = hw->dw_next) in idn_deinit_op()
3052 idn.dopers->dop_waitcount--; in idn_deinit_op()
3053 idn.dopers->dop_domset = domset; in idn_deinit_op()
3055 mutex_exit(&idn.dopers->dop_mutex); in idn_deinit_op()
3081 mutex_enter(&idn.dopers->dop_mutex); in idn_wait_op()
3084 rv = cv_reltimedwait_sig(&idn.dopers->dop_cv, in idn_wait_op()
3085 &idn.dopers->dop_mutex, (wait_timeout * hz), TR_CLOCK_TICK); in idn_wait_op()
3124 mutex_exit(&idn.dopers->dop_mutex); in idn_wait_op()