wc 50 kern/include/wchan.h void wchan_destroy(struct wchan *wc);
wc 56 kern/include/wchan.h bool wchan_isempty(struct wchan *wc);
wc 61 kern/include/wchan.h void wchan_lock(struct wchan *wc);
wc 62 kern/include/wchan.h void wchan_unlock(struct wchan *wc);
wc 72 kern/include/wchan.h void wchan_sleep(struct wchan *wc);
wc 81 kern/include/wchan.h void wchan_wakeone(struct wchan *wc);
wc 82 kern/include/wchan.h void wchan_wakeall(struct wchan *wc);
wc 548 kern/thread/thread.c thread_switch(threadstate_t newstate, struct wchan *wc)
wc 591 kern/thread/thread.c cur->t_wchan_name = wc->wc_name;
wc 605 kern/thread/thread.c threadlist_addtail(&wc->wc_threads, cur);
wc 606 kern/thread/thread.c wchan_unlock(wc);
wc 977 kern/thread/thread.c struct wchan *wc;
wc 979 kern/thread/thread.c wc = kmalloc(sizeof(*wc));
wc 980 kern/thread/thread.c if (wc == NULL) {
wc 983 kern/thread/thread.c spinlock_init(&wc->wc_lock);
wc 984 kern/thread/thread.c threadlist_init(&wc->wc_threads);
wc 985 kern/thread/thread.c wc->wc_name = name;
wc 986 kern/thread/thread.c return wc;
wc 994 kern/thread/thread.c wchan_destroy(struct wchan *wc)
wc 996 kern/thread/thread.c spinlock_cleanup(&wc->wc_lock);
wc 997 kern/thread/thread.c threadlist_cleanup(&wc->wc_threads);
wc 998 kern/thread/thread.c kfree(wc);
wc 1005 kern/thread/thread.c wchan_lock(struct wchan *wc)
wc 1007 kern/thread/thread.c spinlock_acquire(&wc->wc_lock);
wc 1011 kern/thread/thread.c wchan_unlock(struct wchan *wc)
wc 1013 kern/thread/thread.c spinlock_release(&wc->wc_lock);
wc 1023 kern/thread/thread.c wchan_sleep(struct wchan *wc)
wc 1028 kern/thread/thread.c thread_switch(S_SLEEP, wc);
wc 1035 kern/thread/thread.c wchan_wakeone(struct wchan *wc)
wc 1040 kern/thread/thread.c spinlock_acquire(&wc->wc_lock);
wc 1041 kern/thread/thread.c target = threadlist_remhead(&wc->wc_threads);
wc 1046 kern/thread/thread.c spinlock_release(&wc->wc_lock);
wc 1060 kern/thread/thread.c wchan_wakeall(struct wchan *wc)
wc 1071 kern/thread/thread.c spinlock_acquire(&wc->wc_lock);
wc 1072 kern/thread/thread.c while ((target = threadlist_remhead(&wc->wc_threads)) != NULL) {
wc 1079 kern/thread/thread.c spinlock_release(&wc->wc_lock);
wc 1098 kern/thread/thread.c wchan_isempty(struct wchan *wc)
wc 1102 kern/thread/thread.c spinlock_acquire(&wc->wc_lock);
wc 1103 kern/thread/thread.c ret = threadlist_isempty(&wc->wc_threads);
wc 1104 kern/thread/thread.c spinlock_release(&wc->wc_lock);