Lines Matching refs:lock

65 #define	CV_ASSERT(cvp, lock, td) do {					\  argument
69 KASSERT((lock) != NULL, ("%s: lock NULL", __func__)); \
108 _cv_wait(struct cv *cvp, struct lock_object *lock) in _cv_wait() argument
119 CV_ASSERT(cvp, lock, td); in _cv_wait()
120 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, in _cv_wait()
135 class = LOCK_CLASS(lock); in _cv_wait()
140 if (lock == &Giant.lock_object) in _cv_wait()
144 sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR, 0); in _cv_wait()
145 if (lock != &Giant.lock_object) { in _cv_wait()
148 WITNESS_SAVE(lock, lock_witness); in _cv_wait()
149 lock_state = class->lc_unlock(lock); in _cv_wait()
160 if (lock != &Giant.lock_object) { in _cv_wait()
161 class->lc_lock(lock, lock_state); in _cv_wait()
162 WITNESS_RESTORE(lock, lock_witness); in _cv_wait()
171 _cv_wait_unlock(struct cv *cvp, struct lock_object *lock) in _cv_wait_unlock() argument
180 CV_ASSERT(cvp, lock, td); in _cv_wait_unlock()
181 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, in _cv_wait_unlock()
183 KASSERT(lock != &Giant.lock_object, in _cv_wait_unlock()
185 class = LOCK_CLASS(lock); in _cv_wait_unlock()
188 class->lc_unlock(lock); in _cv_wait_unlock()
206 sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR, 0); in _cv_wait_unlock()
209 class->lc_unlock(lock); in _cv_wait_unlock()
228 _cv_wait_sig(struct cv *cvp, struct lock_object *lock) in _cv_wait_sig() argument
240 CV_ASSERT(cvp, lock, td); in _cv_wait_sig()
241 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, in _cv_wait_sig()
256 class = LOCK_CLASS(lock); in _cv_wait_sig()
261 if (lock == &Giant.lock_object) in _cv_wait_sig()
265 sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR | in _cv_wait_sig()
267 if (lock != &Giant.lock_object) { in _cv_wait_sig()
270 WITNESS_SAVE(lock, lock_witness); in _cv_wait_sig()
271 lock_state = class->lc_unlock(lock); in _cv_wait_sig()
282 if (lock != &Giant.lock_object) { in _cv_wait_sig()
283 class->lc_lock(lock, lock_state); in _cv_wait_sig()
284 WITNESS_RESTORE(lock, lock_witness); in _cv_wait_sig()
296 _cv_timedwait_sbt(struct cv *cvp, struct lock_object *lock, sbintime_t sbt, in _cv_timedwait_sbt() argument
308 CV_ASSERT(cvp, lock, td); in _cv_timedwait_sbt()
309 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, in _cv_timedwait_sbt()
324 class = LOCK_CLASS(lock); in _cv_timedwait_sbt()
329 if (lock == &Giant.lock_object) in _cv_timedwait_sbt()
333 sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR, 0); in _cv_timedwait_sbt()
335 if (lock != &Giant.lock_object) { in _cv_timedwait_sbt()
338 WITNESS_SAVE(lock, lock_witness); in _cv_timedwait_sbt()
339 lock_state = class->lc_unlock(lock); in _cv_timedwait_sbt()
350 if (lock != &Giant.lock_object) { in _cv_timedwait_sbt()
351 class->lc_lock(lock, lock_state); in _cv_timedwait_sbt()
352 WITNESS_RESTORE(lock, lock_witness); in _cv_timedwait_sbt()
366 _cv_timedwait_sig_sbt(struct cv *cvp, struct lock_object *lock, in _cv_timedwait_sig_sbt() argument
378 CV_ASSERT(cvp, lock, td); in _cv_timedwait_sig_sbt()
379 WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, lock, in _cv_timedwait_sig_sbt()
394 class = LOCK_CLASS(lock); in _cv_timedwait_sig_sbt()
399 if (lock == &Giant.lock_object) in _cv_timedwait_sig_sbt()
403 sleepq_add(cvp, lock, cvp->cv_description, SLEEPQ_CONDVAR | in _cv_timedwait_sig_sbt()
406 if (lock != &Giant.lock_object) { in _cv_timedwait_sig_sbt()
409 WITNESS_SAVE(lock, lock_witness); in _cv_timedwait_sig_sbt()
410 lock_state = class->lc_unlock(lock); in _cv_timedwait_sig_sbt()
421 if (lock != &Giant.lock_object) { in _cv_timedwait_sig_sbt()
422 class->lc_lock(lock, lock_state); in _cv_timedwait_sig_sbt()
423 WITNESS_RESTORE(lock, lock_witness); in _cv_timedwait_sig_sbt()