Lines Matching refs:cv

379 void condvar_init(struct condvar *cv)  in condvar_init()  argument
381 *cv = (struct condvar)CONDVAR_INITIALIZER; in condvar_init()
384 void condvar_destroy(struct condvar *cv) in condvar_destroy() argument
386 if (cv->m && wq_have_condvar(&cv->m->wq, cv)) in condvar_destroy()
389 condvar_init(cv); in condvar_destroy()
392 static void cv_signal(struct condvar *cv, bool only_one, const char *fname, in cv_signal() argument
398 old_itr_status = cpu_spin_lock_xsave(&cv->spin_lock); in cv_signal()
399 m = cv->m; in cv_signal()
400 cpu_spin_unlock_xrestore(&cv->spin_lock, old_itr_status); in cv_signal()
403 wq_promote_condvar(&m->wq, cv, only_one, m, fname, lineno); in cv_signal()
408 void condvar_signal_debug(struct condvar *cv, const char *fname, int lineno) in condvar_signal_debug() argument
410 cv_signal(cv, true /* only one */, fname, lineno); in condvar_signal_debug()
413 void condvar_broadcast_debug(struct condvar *cv, const char *fname, int lineno) in condvar_broadcast_debug() argument
415 cv_signal(cv, false /* all */, fname, lineno); in condvar_broadcast_debug()
419 void condvar_signal(struct condvar *cv) in condvar_signal() argument
421 cv_signal(cv, true /* only one */, NULL, -1); in condvar_signal()
424 void condvar_broadcast(struct condvar *cv) in condvar_broadcast() argument
426 cv_signal(cv, false /* all */, NULL, -1); in condvar_broadcast()
430 static TEE_Result __condvar_wait_timeout(struct condvar *cv, struct mutex *m, in __condvar_wait_timeout() argument
443 old_itr_status = cpu_spin_lock_xsave(&cv->spin_lock); in __condvar_wait_timeout()
444 if (cv->m && cv->m != m) in __condvar_wait_timeout()
447 cv->m = m; in __condvar_wait_timeout()
448 cpu_spin_unlock(&cv->spin_lock); in __condvar_wait_timeout()
456 wq_wait_init_condvar(&m->wq, &wqe, cv, m->state > 0); in __condvar_wait_timeout()
484 void condvar_wait_debug(struct condvar *cv, struct mutex *m, in condvar_wait_debug() argument
487 __condvar_wait_timeout(cv, m, 0, fname, lineno); in condvar_wait_debug()
490 TEE_Result condvar_wait_timeout_debug(struct condvar *cv, struct mutex *m, in condvar_wait_timeout_debug() argument
494 return __condvar_wait_timeout(cv, m, timeout_ms, fname, lineno); in condvar_wait_timeout_debug()
497 void condvar_wait(struct condvar *cv, struct mutex *m) in condvar_wait() argument
499 __condvar_wait_timeout(cv, m, 0, NULL, -1); in condvar_wait()
502 TEE_Result condvar_wait_timeout(struct condvar *cv, struct mutex *m, in condvar_wait_timeout() argument
505 return __condvar_wait_timeout(cv, m, timeout_ms, NULL, -1); in condvar_wait_timeout()