Lines Matching refs:rsm_ipc
497 static rsm_ipc_t rsm_ipc; /* ipc info */ variable
623 mutex_init(&rsm_ipc.lock, NULL, MUTEX_DRIVER, NULL); in _init()
624 cv_init(&rsm_ipc.cv, NULL, CV_DRIVER, 0); in _init()
632 rsm_ipc.count = RSMIPC_SZ; in _init()
633 rsm_ipc.wanted = 0; in _init()
634 rsm_ipc.sequence = 0; in _init()
639 rsmipc_slot_t *slot = &rsm_ipc.slots[e]; in _init()
706 mutex_destroy(&rsm_ipc.lock); in _fini()
707 cv_destroy(&rsm_ipc.cv); in _fini()
3714 slot = &rsm_ipc.slots[cookie->ic.index]; in rsm_intr_reply()
5228 mutex_enter(&rsm_ipc.lock); in rsmipc_alloc()
5230 while (rsm_ipc.count == 0) { in rsmipc_alloc()
5231 rsm_ipc.wanted = 1; in rsmipc_alloc()
5232 cv_wait(&rsm_ipc.cv, &rsm_ipc.lock); in rsmipc_alloc()
5236 slot = &rsm_ipc.slots[0]; in rsmipc_alloc()
5245 rsm_ipc.count--; /* one less is available */ in rsmipc_alloc()
5246 rsm_ipc.sequence++; /* new sequence */ in rsmipc_alloc()
5248 slot->rsmipc_cookie.ic.sequence = (uint_t)rsm_ipc.sequence; in rsmipc_alloc()
5251 mutex_exit(&rsm_ipc.lock); in rsmipc_alloc()
5266 ASSERT(&rsm_ipc.slots[slot->rsmipc_cookie.ic.index] == slot); in rsmipc_free()
5268 mutex_enter(&rsm_ipc.lock); in rsmipc_free()
5275 rsm_ipc.count++; in rsmipc_free()
5276 ASSERT(rsm_ipc.count <= RSMIPC_SZ); in rsmipc_free()
5277 if (rsm_ipc.wanted) { in rsmipc_free()
5278 rsm_ipc.wanted = 0; in rsmipc_free()
5279 cv_broadcast(&rsm_ipc.cv); in rsmipc_free()
5282 mutex_exit(&rsm_ipc.lock); in rsmipc_free()