Lines Matching full:cs
184 struct cu_socket *cs = NULL; in clnt_dg_create() local
281 cs = (struct cu_socket *) sb->sb_upcallarg; in clnt_dg_create()
282 mtx_lock(&cs->cs_lock); in clnt_dg_create()
283 cs->cs_refs++; in clnt_dg_create()
284 mtx_unlock(&cs->cs_lock); in clnt_dg_create()
291 cs = mem_alloc(sizeof(*cs)); in clnt_dg_create()
297 mem_free(cs, sizeof(*cs)); in clnt_dg_create()
300 mtx_init(&cs->cs_lock, "cs->cs_lock", NULL, MTX_DEF); in clnt_dg_create()
301 cs->cs_refs = 1; in clnt_dg_create()
302 cs->cs_upcallrefs = 0; in clnt_dg_create()
303 TAILQ_INIT(&cs->cs_pending); in clnt_dg_create()
304 soupcall_set(so, SO_RCV, clnt_dg_soupcall, cs); in clnt_dg_create()
332 struct cu_socket *cs; in clnt_dg_call() local
352 cs = cu->cu_socket->so_rcv.sb_upcallarg; in clnt_dg_call()
355 mtx_lock(&cs->cs_lock); in clnt_dg_call()
358 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
387 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
390 mtx_lock(&cs->cs_lock); in clnt_dg_call()
417 mtx_assert(&cs->cs_lock, MA_OWNED); in clnt_dg_call()
422 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
443 mtx_lock(&cs->cs_lock); in clnt_dg_call()
449 mtx_lock(&cs->cs_lock); in clnt_dg_call()
456 error = msleep(&cu->cu_cwnd_wait, &cs->cs_lock, in clnt_dg_call()
469 TAILQ_INSERT_TAIL(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
470 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
489 mtx_lock(&cs->cs_lock); in clnt_dg_call()
491 TAILQ_REMOVE(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
507 TAILQ_REMOVE(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
518 TAILQ_REMOVE(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
531 TAILQ_REMOVE(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
555 error = msleep(cr, &cs->cs_lock, in clnt_dg_call()
562 TAILQ_REMOVE(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
654 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
661 mtx_lock(&cs->cs_lock); in clnt_dg_call()
676 TAILQ_INSERT_TAIL(&cs->cs_pending, cr, cr_link); in clnt_dg_call()
684 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
726 mtx_lock(&cs->cs_lock); in clnt_dg_call()
728 TAILQ_INSERT_TAIL(&cs->cs_pending, in clnt_dg_call()
747 mtx_lock(&cs->cs_lock); in clnt_dg_call()
757 mtx_lock(&cs->cs_lock); in clnt_dg_call()
759 mtx_assert(&cs->cs_lock, MA_OWNED); in clnt_dg_call()
770 mtx_unlock(&cs->cs_lock); in clnt_dg_call()
810 struct cu_socket *cs; in clnt_dg_control() local
813 cs = cu->cu_socket->so_rcv.sb_upcallarg; in clnt_dg_control()
814 mtx_lock(&cs->cs_lock); in clnt_dg_control()
819 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
823 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
829 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
835 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
845 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
932 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
935 mtx_unlock(&cs->cs_lock); in clnt_dg_control()
943 struct cu_socket *cs; in clnt_dg_close() local
946 cs = cu->cu_socket->so_rcv.sb_upcallarg; in clnt_dg_close()
947 mtx_lock(&cs->cs_lock); in clnt_dg_close()
950 mtx_unlock(&cs->cs_lock); in clnt_dg_close()
956 msleep(cu, &cs->cs_lock, 0, "rpcclose", 0); in clnt_dg_close()
958 mtx_unlock(&cs->cs_lock); in clnt_dg_close()
967 TAILQ_FOREACH(cr, &cs->cs_pending, cr_link) { in clnt_dg_close()
976 msleep(cu, &cs->cs_lock, 0, "rpcclose", 0); in clnt_dg_close()
981 mtx_unlock(&cs->cs_lock); in clnt_dg_close()
989 struct cu_socket *cs; in clnt_dg_destroy() local
993 cs = cu->cu_socket->so_rcv.sb_upcallarg; in clnt_dg_destroy()
997 mtx_lock(&cs->cs_lock); in clnt_dg_destroy()
999 cs->cs_refs--; in clnt_dg_destroy()
1000 if (cs->cs_refs == 0) { in clnt_dg_destroy()
1001 mtx_unlock(&cs->cs_lock); in clnt_dg_destroy()
1003 clnt_dg_upcallsdone(cu->cu_socket, cs); in clnt_dg_destroy()
1005 mtx_destroy(&cs->cs_lock); in clnt_dg_destroy()
1006 mem_free(cs, sizeof(*cs)); in clnt_dg_destroy()
1009 mtx_unlock(&cs->cs_lock); in clnt_dg_destroy()
1043 struct cu_socket *cs = (struct cu_socket *) arg; in clnt_dg_soupcall() local
1051 cs->cs_upcallrefs++; in clnt_dg_soupcall()
1072 mtx_lock(&cs->cs_lock); in clnt_dg_soupcall()
1073 TAILQ_FOREACH(cr, &cs->cs_pending, cr_link) { in clnt_dg_soupcall()
1078 mtx_unlock(&cs->cs_lock); in clnt_dg_soupcall()
1099 mtx_lock(&cs->cs_lock); in clnt_dg_soupcall()
1101 TAILQ_FOREACH(cr, &cs->cs_pending, cr_link) { in clnt_dg_soupcall()
1119 mtx_unlock(&cs->cs_lock); in clnt_dg_soupcall()
1128 cs->cs_upcallrefs--; in clnt_dg_soupcall()
1129 if (cs->cs_upcallrefs < 0) in clnt_dg_soupcall()
1131 if (cs->cs_upcallrefs == 0) in clnt_dg_soupcall()
1132 wakeup(&cs->cs_upcallrefs); in clnt_dg_soupcall()
1140 clnt_dg_upcallsdone(struct socket *so, struct cu_socket *cs) in clnt_dg_upcallsdone() argument
1145 while (cs->cs_upcallrefs > 0) in clnt_dg_upcallsdone()
1146 (void) msleep(&cs->cs_upcallrefs, SOCKBUF_MTX(&so->so_rcv), 0, in clnt_dg_upcallsdone()