void waitq_fini(waitq_t *wq) { ASSERT(wq->wq_count == 0); ASSERT(wq->wq_first == NULL); ASSERT(wq->wq_blocked == B_TRUE); ASSERT(!DISP_LOCK_HELD(&wq->wq_lock)); DISP_LOCK_DESTROY(&wq->wq_lock); }
/* * Free cpucap structure */ static void cap_free(cpucap_t *cap) { if (cap == NULL) return; /* * This cap should not be active */ ASSERT(!list_link_active(&cap->cap_link)); ASSERT(cap->cap_value == 0); ASSERT(!DISP_LOCK_HELD(&cap->cap_usagelock)); waitq_fini(&cap->cap_waitq); DISP_LOCK_DESTROY(&cap->cap_usagelock); kmem_free(cap, sizeof (cpucap_t)); }