Lines Matching refs:rmp
582 struct rpcm *rmp; in rpcmodopen() local
607 rmp = kmem_zalloc(sizeof (*rmp), KM_SLEEP); in rpcmodopen()
609 mutex_init(&rmp->rm_lock, NULL, MUTEX_DEFAULT, NULL); in rpcmodopen()
610 cv_init(&rmp->rm_cwait, NULL, CV_DEFAULT, NULL); in rpcmodopen()
611 rmp->rm_zoneid = rpc_zoneid(); in rpcmodopen()
615 rmp->rm_type = 0; in rpcmodopen()
617 q->q_ptr = (void *)rmp; in rpcmodopen()
618 WR(q)->q_ptr = (void *)rmp; in rpcmodopen()
632 struct rpcm *rmp; in rpcmodclose() local
635 rmp = (struct rpcm *)q->q_ptr; in rpcmodclose()
640 mutex_enter(&rmp->rm_lock); in rpcmodclose()
641 rmp->rm_state |= RM_CLOSING; in rpcmodclose()
648 if (rmp->rm_type == RPC_SERVER) { in rpcmodclose()
653 if (rmp->rm_ref) { in rpcmodclose()
654 mutex_exit(&rmp->rm_lock); in rpcmodclose()
659 mutex_enter(&rmp->rm_lock); in rpcmodclose()
665 while (rmp->rm_ref) in rpcmodclose()
666 cv_wait(&rmp->rm_cwait, &rmp->rm_lock); in rpcmodclose()
669 mutex_exit(&rmp->rm_lock); in rpcmodclose()
681 mutex_exit(&rmp->rm_lock); in rpcmodclose()
687 mutex_destroy(&rmp->rm_lock); in rpcmodclose()
688 cv_destroy(&rmp->rm_cwait); in rpcmodclose()
689 kmem_free(rmp, sizeof (*rmp)); in rpcmodclose()
700 struct rpcm *rmp; in rpcmodrput() local
707 rmp = (struct rpcm *)q->q_ptr; in rpcmodrput()
709 if (rmp->rm_type == 0) { in rpcmodrput()
731 mutex_enter(&rmp->rm_lock); in rpcmodrput()
732 if (rmp->rm_state & RM_CLOSING) { in rpcmodrput()
733 mutex_exit(&rmp->rm_lock); in rpcmodrput()
738 switch (rmp->rm_type) { in rpcmodrput()
740 mutex_exit(&rmp->rm_lock); in rpcmodrput()
762 rmp->rm_zoneid); in rpcmodrput()
772 if (rmp->rm_krpc_cell && in rpcmodrput()
780 rmp->rm_ref++; in rpcmodrput()
781 mutex_exit(&rmp->rm_lock); in rpcmodrput()
783 mutex_exit(&rmp->rm_lock); in rpcmodrput()
788 mutex_exit(&rmp->rm_lock); in rpcmodrput()
793 mutex_enter(&rmp->rm_lock); in rpcmodrput()
804 mutex_exit(&rmp->rm_lock); in rpcmodrput()
814 mutex_exit(&rmp->rm_lock); in rpcmodrput()
838 struct rpcm *rmp; in rpcmodwput() local
859 rmp = (struct rpcm *)q->q_ptr; in rpcmodwput()
860 ASSERT(rmp != NULL); in rpcmodwput()
868 mutex_enter(&rmp->rm_lock); in rpcmodwput()
869 if (canputnext(q) || (rmp->rm_state & RM_CLOSING)) { in rpcmodwput()
870 mutex_exit(&rmp->rm_lock); in rpcmodwput()
878 mutex_exit(&rmp->rm_lock); in rpcmodwput()
886 struct rpcm *rmp; in rpcmodwput_other() local
889 rmp = (struct rpcm *)q->q_ptr; in rpcmodwput_other()
890 ASSERT(rmp != NULL); in rpcmodwput_other()
899 mutex_enter(&rmp->rm_lock); in rpcmodwput_other()
900 rmp->rm_type = iocp->ioc_cmd; in rpcmodwput_other()
901 mutex_exit(&rmp->rm_lock); in rpcmodwput_other()
930 struct rpcm *rmp; in rpcmodwsrv() local
933 rmp = (struct rpcm *)q->q_ptr; in rpcmodwsrv()
934 ASSERT(rmp != NULL); in rpcmodwsrv()
944 if (rmp->rm_type == RPC_SERVER || canputnext(q)) { in rpcmodwsrv()
957 struct rpcm *rmp; in rpcmod_release() local
964 rmp = (struct rpcm *)q->q_ptr; in rpcmod_release()
966 mutex_enter(&rmp->rm_lock); in rpcmod_release()
967 rmp->rm_ref--; in rpcmod_release()
969 if (rmp->rm_ref == 0 && (rmp->rm_state & RM_CLOSING)) { in rpcmod_release()
970 cv_broadcast(&rmp->rm_cwait); in rpcmod_release()
973 mutex_exit(&rmp->rm_lock); in rpcmod_release()