Lines Matching refs:xprt

41  * There are two sets of procedures here.  The xprt routines are
74 static void xprt_unregister_locked(SVCXPRT *xprt);
161 SVCXPRT *xprt, *nxprt;
170 xprt = TAILQ_FIRST(&pool->sp_xlist);
171 xprt_unregister_locked(xprt);
172 TAILQ_INSERT_TAIL(&cleanup, xprt, xp_link);
187 TAILQ_FOREACH_SAFE(xprt, &cleanup, xp_link, nxprt) {
188 SVC_RELEASE(xprt);
283 xprt_register(SVCXPRT *xprt)
285 SVCPOOL *pool = xprt->xp_pool;
287 SVC_ACQUIRE(xprt);
289 xprt->xp_registered = TRUE;
290 xprt->xp_active = FALSE;
291 TAILQ_INSERT_TAIL(&pool->sp_xlist, xprt, xp_link);
301 xprt_unregister_locked(SVCXPRT *xprt)
303 SVCPOOL *pool = xprt->xp_pool;
306 KASSERT(xprt->xp_registered == TRUE,
308 xprt_inactive_locked(xprt);
309 TAILQ_REMOVE(&pool->sp_xlist, xprt, xp_link);
310 xprt->xp_registered = FALSE;
314 xprt_unregister(SVCXPRT *xprt)
316 SVCPOOL *pool = xprt->xp_pool;
319 if (xprt->xp_registered == FALSE) {
324 xprt_unregister_locked(xprt);
327 SVC_RELEASE(xprt);
334 xprt_assignthread(SVCXPRT *xprt)
336 SVCPOOL *pool = xprt->xp_pool;
344 SVC_ACQUIRE(xprt);
345 xprt->xp_thread = st;
346 st->st_xprt = xprt;
368 xprt_active(SVCXPRT *xprt)
370 SVCPOOL *pool = xprt->xp_pool;
374 if (!xprt->xp_registered) {
382 if (!xprt->xp_active) {
383 xprt->xp_active = TRUE;
384 if (xprt->xp_thread == NULL) {
386 !xprt_assignthread(xprt))
387 TAILQ_INSERT_TAIL(&pool->sp_active, xprt,
396 xprt_inactive_locked(SVCXPRT *xprt)
398 SVCPOOL *pool = xprt->xp_pool;
401 if (xprt->xp_active) {
402 if (xprt->xp_thread == NULL)
403 TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink);
404 xprt->xp_active = FALSE;
409 xprt_inactive(SVCXPRT *xprt)
411 SVCPOOL *pool = xprt->xp_pool;
414 xprt_inactive_locked(xprt);
423 xprt_inactive_self(SVCXPRT *xprt)
426 KASSERT(xprt->xp_thread != NULL,
427 ("xprt_inactive_self(%p) with NULL xp_thread", xprt));
428 xprt->xp_active = FALSE;
437 svc_reg(SVCXPRT *xprt, const rpcprog_t prog, const rpcvers_t vers,
441 SVCPOOL *pool = xprt->xp_pool;
448 if (xprt->xp_netid) {
449 netid = strdup(xprt->xp_netid, M_RPC);
482 if ((xprt->xp_netid == NULL) && (flag == 1) && netid)
483 ((SVCXPRT *) xprt)->xp_netid = strdup(netid, M_RPC);
493 nb.buf = &xprt->xp_ltaddr;
494 nb.len = xprt->xp_ltaddr.ss_len;
526 svc_loss_reg(SVCXPRT *xprt, void (*dispatch)(SVCXPRT *))
528 SVCPOOL *pool = xprt->xp_pool;
598 SVCXPRT *xprt = rqstp->rq_xprt;
606 if (xprt->xp_pool->sp_rcache)
607 replay_setreply(xprt->xp_pool->sp_rcache,
613 ok = SVC_REPLY(xprt, rply, rqstp->rq_addr, body, &rqstp->rq_reply_seq);
678 SVCXPRT *xprt = rqstp->rq_xprt;
687 if (xprt->xp_pool->sp_rcache)
688 replay_setreply(xprt->xp_pool->sp_rcache,
700 SVCXPRT *xprt = rqstp->rq_xprt;
709 if (xprt->xp_pool->sp_rcache)
710 replay_setreply(xprt->xp_pool->sp_rcache,
711 &rply, (struct sockaddr *) &xprt->xp_rtaddr, NULL);
722 SVCXPRT *xprt = rqstp->rq_xprt;
731 if (xprt->xp_pool->sp_rcache)
732 replay_setreply(xprt->xp_pool->sp_rcache,
744 SVCXPRT *xprt = rqstp->rq_xprt;
753 if (xprt->xp_pool->sp_rcache)
754 replay_setreply(xprt->xp_pool->sp_rcache,
776 SVCXPRT *xprt = rqstp->rq_xprt;
785 if (xprt->xp_pool->sp_rcache)
786 replay_setreply(xprt->xp_pool->sp_rcache,
798 SVCXPRT *xprt = rqstp->rq_xprt;
809 if (xprt->xp_pool->sp_rcache)
810 replay_setreply(xprt->xp_pool->sp_rcache,
825 SVCXPRT *xprt;
828 xprt = mem_alloc(sizeof(SVCXPRT));
829 memset(xprt, 0, sizeof(SVCXPRT));
832 xprt->xp_p3 = ext;
833 refcount_init(&xprt->xp_refs, 1);
835 return (xprt);
842 svc_xprt_free(xprt)
843 SVCXPRT *xprt;
846 mem_free(xprt->xp_p3, sizeof(SVCXPRT_EXT));
847 mem_free(xprt, sizeof(SVCXPRT));
858 svc_getreq(SVCXPRT *xprt, struct svc_req **rqstp_ret)
860 SVCPOOL *pool = xprt->xp_pool;
873 if (SVC_RECV(xprt, &msg, &r->rq_addr, &args)) {
880 SVC_ACQUIRE(xprt);
881 r->rq_xprt = xprt;
892 SVC_REPLY(xprt, &repmsg, r->rq_addr,
942 if ((stat = SVC_STAT(xprt)) == XPRT_DIED) {
944 (*s->slc_dispatch)(xprt);
945 xprt_unregister(xprt);
954 SVCXPRT *xprt = rqstp->rq_xprt;
955 SVCPOOL *pool = xprt->xp_pool;
973 (*s->sc_dispatch)(rqstp, xprt);
999 SVCXPRT *xprt, *nxprt;
1004 TAILQ_FOREACH_SAFE(xprt, &pool->sp_xlist, xp_link, nxprt) {
1009 if (!xprt->xp_idletimeout || xprt->xp_thread)
1012 timo = xprt->xp_lastactive + xprt->xp_idletimeout;
1014 xprt_unregister_locked(xprt);
1015 TAILQ_INSERT_TAIL(&cleanup, xprt, xp_link);
1020 TAILQ_FOREACH_SAFE(xprt, &cleanup, xp_link, nxprt) {
1021 SVC_RELEASE(xprt);
1030 SVCXPRT *xprt;
1033 while ((xprt = TAILQ_FIRST(&pool->sp_active)) != NULL) {
1034 if (xprt_assignthread(xprt))
1035 TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink);
1077 SVCXPRT *xprt;
1121 xprt = st->st_xprt;
1122 if (!xprt && STAILQ_EMPTY(&st->st_reqs)) {
1135 (xprt = TAILQ_FIRST(&pool->sp_active)) != NULL) {
1136 TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink);
1137 SVC_ACQUIRE(xprt);
1138 xprt->xp_thread = st;
1139 st->st_xprt = xprt;
1176 if (xprt) {
1181 xprt->xp_lastactive = time_uptime;
1187 stat = svc_getreq(xprt, &rqstp);
1237 xprt->xp_thread = NULL;
1239 if (xprt->xp_active) {
1241 !xprt_assignthread(xprt))
1243 xprt, xp_alink);
1247 SVC_RELEASE(xprt);
1267 xprt = st->st_xprt;
1269 SVC_RELEASE(xprt);