Lines Matching refs:sl

819     smb_slist_t	*sl,  in smb_slist_constructor()  argument
823 mutex_init(&sl->sl_mutex, NULL, MUTEX_DEFAULT, NULL); in smb_slist_constructor()
824 cv_init(&sl->sl_cv, NULL, CV_DEFAULT, NULL); in smb_slist_constructor()
825 list_create(&sl->sl_list, size, offset); in smb_slist_constructor()
826 sl->sl_count = 0; in smb_slist_constructor()
827 sl->sl_waiting = B_FALSE; in smb_slist_constructor()
837 smb_slist_t *sl) in smb_slist_destructor() argument
839 VERIFY(sl->sl_count == 0); in smb_slist_destructor()
841 mutex_destroy(&sl->sl_mutex); in smb_slist_destructor()
842 cv_destroy(&sl->sl_cv); in smb_slist_destructor()
843 list_destroy(&sl->sl_list); in smb_slist_destructor()
851 smb_slist_enter(smb_slist_t *sl) in smb_slist_enter() argument
853 mutex_enter(&(sl)->sl_mutex); in smb_slist_enter()
863 smb_slist_t *sl, in smb_slist_insert_head() argument
866 mutex_enter(&sl->sl_mutex); in smb_slist_insert_head()
867 list_insert_head(&sl->sl_list, obj); in smb_slist_insert_head()
868 ++sl->sl_count; in smb_slist_insert_head()
869 mutex_exit(&sl->sl_mutex); in smb_slist_insert_head()
879 smb_slist_t *sl, in smb_slist_insert_tail() argument
882 mutex_enter(&sl->sl_mutex); in smb_slist_insert_tail()
883 list_insert_tail(&sl->sl_list, obj); in smb_slist_insert_tail()
884 ++sl->sl_count; in smb_slist_insert_tail()
885 mutex_exit(&sl->sl_mutex); in smb_slist_insert_tail()
895 smb_slist_t *sl, in smb_slist_remove() argument
898 mutex_enter(&sl->sl_mutex); in smb_slist_remove()
899 list_remove(&sl->sl_list, obj); in smb_slist_remove()
900 if ((--sl->sl_count == 0) && (sl->sl_waiting)) { in smb_slist_remove()
901 sl->sl_waiting = B_FALSE; in smb_slist_remove()
902 cv_broadcast(&sl->sl_cv); in smb_slist_remove()
904 mutex_exit(&sl->sl_mutex); in smb_slist_remove()
916 smb_slist_t *sl) in smb_slist_move_tail() argument
920 mutex_enter(&sl->sl_mutex); in smb_slist_move_tail()
921 rv = sl->sl_count; in smb_slist_move_tail()
922 if (sl->sl_count) { in smb_slist_move_tail()
923 list_move_tail(lst, &sl->sl_list); in smb_slist_move_tail()
924 sl->sl_count = 0; in smb_slist_move_tail()
925 if (sl->sl_waiting) { in smb_slist_move_tail()
926 sl->sl_waiting = B_FALSE; in smb_slist_move_tail()
927 cv_broadcast(&sl->sl_cv); in smb_slist_move_tail()
930 mutex_exit(&sl->sl_mutex); in smb_slist_move_tail()
966 smb_slist_t *sl) in smb_slist_wait_for_empty() argument
968 mutex_enter(&sl->sl_mutex); in smb_slist_wait_for_empty()
969 while (sl->sl_count) { in smb_slist_wait_for_empty()
970 sl->sl_waiting = B_TRUE; in smb_slist_wait_for_empty()
971 cv_wait(&sl->sl_cv, &sl->sl_mutex); in smb_slist_wait_for_empty()
973 mutex_exit(&sl->sl_mutex); in smb_slist_wait_for_empty()
983 smb_slist_exit(smb_slist_t *sl) in smb_slist_exit() argument
985 if ((sl->sl_count == 0) && (sl->sl_waiting)) { in smb_slist_exit()
986 sl->sl_waiting = B_FALSE; in smb_slist_exit()
987 cv_broadcast(&sl->sl_cv); in smb_slist_exit()
989 mutex_exit(&sl->sl_mutex); in smb_slist_exit()