Lines Matching refs:sq

692 	syncq_t		*sq, *outer;  in qwait_sig()  local
705 sq = q->q_syncq; in qwait_sig()
706 ASSERT(sq); in qwait_sig()
707 is_sq_cioc = (sq->sq_type & SQ_CIOC) ? 1 : 0; in qwait_sig()
708 ASSERT(sq->sq_outer == NULL || sq->sq_outer->sq_flags & SQ_WRITER); in qwait_sig()
709 outer = sq->sq_outer; in qwait_sig()
717 mutex_enter(SQLOCK(sq)); in qwait_sig()
719 SQ_PUTLOCKS_ENTER(sq); in qwait_sig()
721 flags = sq->sq_flags; in qwait_sig()
726 ASSERT(sq->sq_count > 0); in qwait_sig()
727 sq->sq_count--; in qwait_sig()
740 cv_broadcast(&sq->sq_wait); in qwait_sig()
743 sq->sq_flags = flags; in qwait_sig()
746 SQ_PUTLOCKS_EXIT(sq); in qwait_sig()
749 drain_syncq(sq); in qwait_sig()
750 ASSERT(MUTEX_NOT_HELD(SQLOCK(sq))); in qwait_sig()
751 entersq(sq, SQ_OPENCLOSE); in qwait_sig()
761 sq->sq_flags |= SQ_WANTEXWAKEUP; in qwait_sig()
763 SQ_PUTLOCKS_EXIT(sq); in qwait_sig()
765 ret = cv_wait_sig(&sq->sq_exitwait, SQLOCK(sq)); in qwait_sig()
767 SQ_PUTLOCKS_ENTER(sq); in qwait_sig()
769 } while (ret && (sq->sq_flags & SQ_WANTEXWAKEUP)); in qwait_sig()
771 SQ_PUTLOCKS_EXIT(sq); in qwait_sig()
773 mutex_exit(SQLOCK(sq)); in qwait_sig()
778 entersq(sq, SQ_OPENCLOSE); in qwait_sig()
805 syncq_t *sq, *outer; in qwait() local
817 sq = q->q_syncq; in qwait()
818 ASSERT(sq); in qwait()
819 is_sq_cioc = (sq->sq_type & SQ_CIOC) ? 1 : 0; in qwait()
820 ASSERT(sq->sq_outer == NULL || sq->sq_outer->sq_flags & SQ_WRITER); in qwait()
821 outer = sq->sq_outer; in qwait()
829 mutex_enter(SQLOCK(sq)); in qwait()
831 SQ_PUTLOCKS_ENTER(sq); in qwait()
833 flags = sq->sq_flags; in qwait()
838 ASSERT(sq->sq_count > 0); in qwait()
839 sq->sq_count--; in qwait()
852 cv_broadcast(&sq->sq_wait); in qwait()
855 sq->sq_flags = flags; in qwait()
858 SQ_PUTLOCKS_EXIT(sq); in qwait()
861 drain_syncq(sq); in qwait()
862 ASSERT(MUTEX_NOT_HELD(SQLOCK(sq))); in qwait()
863 entersq(sq, SQ_OPENCLOSE); in qwait()
873 sq->sq_flags |= SQ_WANTEXWAKEUP; in qwait()
875 SQ_PUTLOCKS_EXIT(sq); in qwait()
877 cv_wait(&sq->sq_exitwait, SQLOCK(sq)); in qwait()
879 SQ_PUTLOCKS_ENTER(sq); in qwait()
881 } while (sq->sq_flags & SQ_WANTEXWAKEUP); in qwait()
883 SQ_PUTLOCKS_EXIT(sq); in qwait()
885 mutex_exit(SQLOCK(sq)); in qwait()
890 entersq(sq, SQ_OPENCLOSE); in qwait()
907 syncq_t *sq; in qwait_rw() local
919 sq = q->q_syncq; in qwait_rw()
920 ASSERT(sq); in qwait_rw()
922 mutex_enter(SQLOCK(sq)); in qwait_rw()
923 flags = sq->sq_flags; in qwait_rw()
928 ASSERT(sq->sq_count > 0); in qwait_rw()
929 sq->sq_count--; in qwait_rw()
930 if (!(sq->sq_type & SQ_CIPUT)) { in qwait_rw()
941 cv_broadcast(&sq->sq_wait); in qwait_rw()
944 sq->sq_flags = flags; in qwait_rw()
947 drain_syncq(sq); in qwait_rw()
948 ASSERT(MUTEX_NOT_HELD(SQLOCK(sq))); in qwait_rw()
949 entersq(sq, SQ_PUT); in qwait_rw()
959 sq->sq_flags |= SQ_WANTEXWAKEUP; in qwait_rw()
960 if (cv_wait_sig(&sq->sq_exitwait, SQLOCK(sq)) <= 0) { in qwait_rw()
961 sq->sq_flags &= ~SQ_WANTEXWAKEUP; in qwait_rw()
965 } while (sq->sq_flags & SQ_WANTEXWAKEUP); in qwait_rw()
966 mutex_exit(SQLOCK(sq)); in qwait_rw()
971 entersq(sq, SQ_PUT); in qwait_rw()
996 syncq_t *sq; in qtimeout() local
1000 sq = q->q_syncq; in qtimeout()
1007 cbp = callbparams_alloc(sq, func, arg, KM_NOSLEEP | KM_PANIC); in qtimeout()
1017 mutex_exit(SQLOCK(sq)); in qtimeout()
1025 syncq_t *sq; in qbufcall() local
1029 sq = q->q_syncq; in qbufcall()
1034 cbp = callbparams_alloc(sq, func, arg, KM_NOSLEEP); in qbufcall()
1048 callbparams_free(sq, cbp); in qbufcall()
1050 mutex_exit(SQLOCK(sq)); in qbufcall()
1067 syncq_t *sq = q->q_syncq; in quntimeout() local
1070 mutex_enter(SQLOCK(sq)); in quntimeout()
1072 while (sq->sq_callbflags & SQ_CALLB_CANCEL_MASK) { in quntimeout()
1073 sq->sq_flags |= SQ_WANTWAKEUP; in quntimeout()
1074 cv_wait(&sq->sq_wait, SQLOCK(sq)); in quntimeout()
1076 sq->sq_cancelid = (callbparams_id_t)id; in quntimeout()
1077 sq->sq_callbflags = SQ_CANCEL_TOUT; in quntimeout()
1078 if (sq->sq_flags & SQ_WANTWAKEUP) { in quntimeout()
1079 cv_broadcast(&sq->sq_wait); in quntimeout()
1080 sq->sq_flags &= ~SQ_WANTWAKEUP; in quntimeout()
1082 mutex_exit(SQLOCK(sq)); in quntimeout()
1084 mutex_enter(SQLOCK(sq)); in quntimeout()
1087 callbparams_free_id(sq, (callbparams_id_t)id, SQ_CANCEL_TOUT); in quntimeout()
1089 if (sq->sq_callbflags & SQ_CALLB_BYPASSED) { in quntimeout()
1092 sq->sq_callbflags = 0; in quntimeout()
1093 if (sq->sq_flags & SQ_WANTWAKEUP) { in quntimeout()
1094 cv_broadcast(&sq->sq_wait); in quntimeout()
1095 sq->sq_flags &= ~SQ_WANTWAKEUP; in quntimeout()
1097 mutex_exit(SQLOCK(sq)); in quntimeout()
1105 syncq_t *sq = q->q_syncq; in qunbufcall() local
1107 mutex_enter(SQLOCK(sq)); in qunbufcall()
1109 while (sq->sq_callbflags & SQ_CALLB_CANCEL_MASK) { in qunbufcall()
1110 sq->sq_flags |= SQ_WANTWAKEUP; in qunbufcall()
1111 cv_wait(&sq->sq_wait, SQLOCK(sq)); in qunbufcall()
1113 sq->sq_cancelid = (callbparams_id_t)id; in qunbufcall()
1114 sq->sq_callbflags = SQ_CANCEL_BUFCALL; in qunbufcall()
1115 if (sq->sq_flags & SQ_WANTWAKEUP) { in qunbufcall()
1116 cv_broadcast(&sq->sq_wait); in qunbufcall()
1117 sq->sq_flags &= ~SQ_WANTWAKEUP; in qunbufcall()
1119 mutex_exit(SQLOCK(sq)); in qunbufcall()
1121 mutex_enter(SQLOCK(sq)); in qunbufcall()
1126 callbparams_free_id(sq, (callbparams_id_t)id, SQ_CANCEL_BUFCALL); in qunbufcall()
1127 sq->sq_callbflags = 0; in qunbufcall()
1128 if (sq->sq_flags & SQ_WANTWAKEUP) { in qunbufcall()
1129 cv_broadcast(&sq->sq_wait); in qunbufcall()
1130 sq->sq_flags &= ~SQ_WANTWAKEUP; in qunbufcall()
1132 mutex_exit(SQLOCK(sq)); in qunbufcall()