Lines Matching refs:xprt

307 #define	version_keepquiet(xprt)	(FALSE)  argument
766 svc_xprt_register(SVCMASTERXPRT *xprt, int id) in svc_xprt_register() argument
798 xprt->xp_pool = pool; in svc_xprt_register()
805 pool->p_lhead = xprt->xp_prev = xprt->xp_next = xprt; in svc_xprt_register()
810 xprt->xp_next = next; in svc_xprt_register()
811 xprt->xp_prev = prev; in svc_xprt_register()
813 pool->p_lhead = prev->xp_next = next->xp_prev = xprt; in svc_xprt_register()
829 svc_xprt_unregister(SVCMASTERXPRT *xprt) in svc_xprt_unregister() argument
831 SVCPOOL *pool = xprt->xp_pool; in svc_xprt_unregister()
841 if (xprt == xprt->xp_next) in svc_xprt_unregister()
844 SVCMASTERXPRT *next = xprt->xp_next; in svc_xprt_unregister()
845 SVCMASTERXPRT *prev = xprt->xp_prev; in svc_xprt_unregister()
850 if (pool->p_lhead == xprt) in svc_xprt_unregister()
854 xprt->xp_next = xprt->xp_prev = NULL; in svc_xprt_unregister()
901 svc_xprt_qput(SVCPOOL *pool, SVCMASTERXPRT *xprt) in svc_xprt_qput() argument
921 pool->p_qtop->q_xprt = xprt; in svc_xprt_qput()
938 SVCMASTERXPRT *xprt; in svc_xprt_qget() local
955 xprt = pool->p_qend->q_xprt; in svc_xprt_qget()
959 } while (xprt == NULL); in svc_xprt_qget()
962 return (xprt); in svc_xprt_qget()
971 svc_xprt_qdelete(SVCPOOL *pool, SVCMASTERXPRT *xprt) in svc_xprt_qdelete() argument
977 if (q->q_xprt == xprt) in svc_xprt_qdelete()
998 svc_xprt_cleanup(SVCMASTERXPRT *xprt, bool_t detached) in svc_xprt_cleanup() argument
1000 ASSERT(MUTEX_HELD(&xprt->xp_thread_lock)); in svc_xprt_cleanup()
1001 ASSERT(xprt->xp_wq == NULL); in svc_xprt_cleanup()
1007 if (!detached && xprt->xp_threads == 0 && xprt->xp_closeproc) { in svc_xprt_cleanup()
1008 (*(xprt->xp_closeproc)) (xprt); in svc_xprt_cleanup()
1011 if (xprt->xp_threads + xprt->xp_detached_threads > 0) in svc_xprt_cleanup()
1012 mutex_exit(&xprt->xp_thread_lock); in svc_xprt_cleanup()
1015 svc_xprt_qdelete(xprt->xp_pool, xprt); in svc_xprt_cleanup()
1018 svc_xprt_unregister(xprt); in svc_xprt_cleanup()
1019 svc_callout_free(xprt); in svc_xprt_cleanup()
1020 SVC_DESTROY(xprt); in svc_xprt_cleanup()
1035 svc_callout_find(SVCXPRT *xprt, rpcprog_t prog, rpcvers_t vers, in svc_callout_find() argument
1038 SVC_CALLOUT_TABLE *sct = xprt->xp_sct; in svc_callout_find()
1066 svc_callout_free(SVCMASTERXPRT *xprt) in svc_callout_free() argument
1068 SVC_CALLOUT_TABLE *sct = xprt->xp_sct; in svc_callout_free()
1449 svc_clone_link(SVCMASTERXPRT *xprt, SVCXPRT *clone_xprt, SVCXPRT *clone_xprt2) in svc_clone_link() argument
1460 mutex_enter(&xprt->xp_thread_lock); in svc_clone_link()
1461 xprt->xp_threads++; in svc_clone_link()
1462 mutex_exit(&xprt->xp_thread_lock); in svc_clone_link()
1468 clone_xprt->xp_master = xprt; in svc_clone_link()
1471 clone_xprt->xp_xpc = xprt->xp_xpc; in svc_clone_link()
1492 SVCMASTERXPRT *xprt = clone_xprt->xp_master; in svc_clone_unlink() local
1496 ASSERT(xprt->xp_threads > 0); in svc_clone_unlink()
1499 mutex_enter(&xprt->xp_thread_lock); in svc_clone_unlink()
1500 xprt->xp_threads--; in svc_clone_unlink()
1503 if (xprt->xp_wq) in svc_clone_unlink()
1504 mutex_exit(&xprt->xp_thread_lock); in svc_clone_unlink()
1506 svc_xprt_cleanup(xprt, FALSE); in svc_clone_unlink()
1527 SVCMASTERXPRT *xprt = clone_xprt->xp_master; in svc_clone_unlinkdetached() local
1531 ASSERT(xprt->xp_detached_threads > 0); in svc_clone_unlinkdetached()
1532 ASSERT(xprt->xp_threads + xprt->xp_detached_threads > 0); in svc_clone_unlinkdetached()
1535 mutex_enter(&xprt->xp_thread_lock); in svc_clone_unlinkdetached()
1536 xprt->xp_detached_threads--; in svc_clone_unlinkdetached()
1539 if (xprt->xp_wq) in svc_clone_unlinkdetached()
1540 mutex_exit(&xprt->xp_thread_lock); in svc_clone_unlinkdetached()
1542 svc_xprt_cleanup(xprt, TRUE); in svc_clone_unlinkdetached()
1822 svc_poll(SVCPOOL *pool, SVCMASTERXPRT *xprt, SVCXPRT *clone_xprt) in svc_poll() argument
1851 if (xprt && xprt->xp_req_head && (!pool->p_qoverflow || in svc_poll()
1853 mutex_enter(&xprt->xp_req_lock); in svc_poll()
1854 if (xprt->xp_req_head) in svc_poll()
1855 return (xprt); in svc_poll()
1856 mutex_exit(&xprt->xp_req_lock); in svc_poll()
1937 if (xprt == NULL && pool->p_lhead == NULL) { in svc_poll()
1947 next = xprt ? xprt->xp_next : pool->p_lhead; in svc_poll()
2043 if (xprt && xprt->xp_wq == NULL) in svc_poll()
2138 svc_flowcontrol(SVCMASTERXPRT *xprt) in svc_flowcontrol() argument
2140 SVCPOOL *pool = xprt->xp_pool; in svc_flowcontrol()
2144 ASSERT(MUTEX_HELD(&xprt->xp_req_lock)); in svc_flowcontrol()
2147 if (xprt->xp_full == FALSE) { in svc_flowcontrol()
2153 if (xprt->xp_reqs >= enough_reqs * 2) { in svc_flowcontrol()
2154 xprt->xp_full = TRUE; in svc_flowcontrol()
2163 xprt->xp_size >= totalmem / 5 / pool->p_lcount) in svc_flowcontrol()
2164 xprt->xp_full = TRUE; in svc_flowcontrol()
2172 if (xprt->xp_reqs > enough_reqs) in svc_flowcontrol()
2180 xprt->xp_size >= totalmem / 5 / pool->p_lcount / 2) in svc_flowcontrol()
2184 xprt->xp_full = FALSE; in svc_flowcontrol()
2185 xprt->xp_enable = TRUE; in svc_flowcontrol()
2200 SVCMASTERXPRT *xprt = NULL; /* master transport handle */ in svc_run() local
2230 next = svc_poll(pool, xprt, clone_xprt); in svc_run()
2247 xprt = NULL; in svc_run()
2299 if (next != xprt) { in svc_run()
2300 if (xprt) in svc_run()
2303 xprt = next; in svc_run()
2367 mutex_enter(&xprt->xp_req_lock); in svc_run()
2368 enable = xprt->xp_enable; in svc_run()
2370 xprt->xp_enable = FALSE; in svc_run()
2371 mutex_exit(&xprt->xp_req_lock); in svc_run()
2384 SVCMASTERXPRT *xprt = ((void **) q->q_ptr)[0]; in svc_queueclean() local
2391 mutex_enter(&xprt->xp_req_lock); in svc_queueclean()
2392 pool = xprt->xp_pool; in svc_queueclean()
2393 while ((mp = xprt->xp_req_head) != NULL) { in svc_queueclean()
2395 xprt->xp_req_head = mp->b_next; in svc_queueclean()
2397 SVC_RELE(xprt, mp, FALSE); in svc_queueclean()
2401 pool->p_reqs -= xprt->xp_reqs; in svc_queueclean()
2402 pool->p_size -= xprt->xp_size; in svc_queueclean()
2405 xprt->xp_reqs = 0; in svc_queueclean()
2406 xprt->xp_size = 0; in svc_queueclean()
2407 xprt->xp_full = FALSE; in svc_queueclean()
2408 xprt->xp_enable = FALSE; in svc_queueclean()
2409 mutex_exit(&xprt->xp_req_lock); in svc_queueclean()
2427 SVCMASTERXPRT *xprt = ((void **) q->q_ptr)[0]; in svc_queueclose() local
2429 if (xprt == NULL) { in svc_queueclose()
2439 mutex_enter(&xprt->xp_thread_lock); in svc_queueclose()
2441 ASSERT(xprt->xp_req_head == NULL); in svc_queueclose()
2442 ASSERT(xprt->xp_wq != NULL); in svc_queueclose()
2444 xprt->xp_wq = NULL; in svc_queueclose()
2446 if (xprt->xp_threads == 0) { in svc_queueclose()
2447 SVCPOOL *pool = xprt->xp_pool; in svc_queueclose()
2453 svc_xprt_cleanup(xprt, FALSE); in svc_queueclose()
2484 mutex_exit(&xprt->xp_thread_lock); in svc_queueclose()
2500 SVCMASTERXPRT *xprt = ((void **) q->q_ptr)[0]; in svc_queuereq() local
2501 SVCPOOL *pool = xprt->xp_pool; in svc_queuereq()
2518 mutex_enter(&xprt->xp_req_lock); in svc_queuereq()
2519 if (flowcontrol && xprt->xp_full) { in svc_queuereq()
2520 mutex_exit(&xprt->xp_req_lock); in svc_queuereq()
2524 ASSERT(xprt->xp_full == FALSE); in svc_queuereq()
2526 if (xprt->xp_req_head == NULL) in svc_queuereq()
2527 xprt->xp_req_head = mp; in svc_queuereq()
2529 xprt->xp_req_tail->b_next = mp; in svc_queuereq()
2530 xprt->xp_req_tail = mp; in svc_queuereq()
2540 svc_xprt_qput(pool, xprt); in svc_queuereq()
2544 xprt->xp_reqs++; in svc_queuereq()
2547 xprt->xp_size += size; in svc_queuereq()
2552 svc_flowcontrol(xprt); in svc_queuereq()
2578 mutex_exit(&xprt->xp_req_lock); in svc_queuereq()
2687 SVCMASTERXPRT *xprt = clone_xprt->xp_master; in svc_detach_thread() local
2688 SVCPOOL *pool = xprt->xp_pool; in svc_detach_thread()
2696 mutex_enter(&xprt->xp_thread_lock); in svc_detach_thread()
2697 xprt->xp_threads--; in svc_detach_thread()
2698 xprt->xp_detached_threads++; in svc_detach_thread()
2699 mutex_exit(&xprt->xp_thread_lock); in svc_detach_thread()
2709 mutex_enter(&xprt->xp_req_lock); in svc_detach_thread()
2710 enable = xprt->xp_enable; in svc_detach_thread()
2712 xprt->xp_enable = FALSE; in svc_detach_thread()
2713 mutex_exit(&xprt->xp_req_lock); in svc_detach_thread()
2735 SVCMASTERXPRT *xprt; in rdma_stop() local
2752 xprt = curr_rec->rtr_xprt_ptr; in rdma_stop()
2753 q = xprt->xp_wq; in rdma_stop()
2754 svc_rdma_kstop(xprt); in rdma_stop()
2756 mutex_enter(&xprt->xp_req_lock); in rdma_stop()
2757 pool = xprt->xp_pool; in rdma_stop()
2758 while ((mp = xprt->xp_req_head) != NULL) { in rdma_stop()
2762 xprt->xp_req_head = mp->b_next; in rdma_stop()
2770 pool->p_reqs -= xprt->xp_reqs; in rdma_stop()
2771 pool->p_size -= xprt->xp_size; in rdma_stop()
2773 xprt->xp_reqs = 0; in rdma_stop()
2774 xprt->xp_size = 0; in rdma_stop()
2775 xprt->xp_full = FALSE; in rdma_stop()
2776 xprt->xp_enable = FALSE; in rdma_stop()
2777 mutex_exit(&xprt->xp_req_lock); in rdma_stop()
2878 svc_xprt_cred(SVCXPRT *xprt) in svc_xprt_cred() argument
2880 cred_t *cr = xprt->xp_cred; in svc_xprt_cred()
2887 xprt->xp_cred = cr; in svc_xprt_cred()