Lines Matching refs:lock

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