Lines Matching defs:so

95 static SVCXPRT *svc_vc_create_conn(SVCPOOL *pool, struct socket *so,
98 static int svc_vc_soupcall(struct socket *so, void *arg, int waitflag);
143 svc_vc_create(SVCPOOL *pool, struct socket *so, size_t sendsize,
150 SOCK_LOCK(so);
151 if (so->so_state & (SS_ISCONNECTED|SS_ISDISCONNECTED)) {
152 SOCK_UNLOCK(so);
153 CURVNET_SET(so->so_vnet);
154 error = so->so_proto->pr_usrreqs->pru_peeraddr(so, &sa);
158 xprt = svc_vc_create_conn(pool, so, sa);
162 SOCK_UNLOCK(so);
167 xprt->xp_socket = so;
172 CURVNET_SET(so->so_vnet);
173 error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa);
184 solisten(so, -1, curthread);
186 SOCKBUF_LOCK(&so->so_rcv);
188 soupcall_set(so, SO_RCV, svc_vc_soupcall, xprt);
189 SOCKBUF_UNLOCK(&so->so_rcv);
204 svc_vc_create_conn(SVCPOOL *pool, struct socket *so, struct sockaddr *raddr)
219 error = sosetopt(so, &opt);
224 if (so->so_proto->pr_protocol == IPPROTO_TCP) {
231 error = sosetopt(so, &opt);
243 xprt->xp_socket = so;
256 CURVNET_SET(so->so_vnet);
257 error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa);
267 SOCKBUF_LOCK(&so->so_rcv);
269 soupcall_set(so, SO_RCV, svc_vc_soupcall, xprt);
270 SOCKBUF_UNLOCK(&so->so_rcv);
320 struct socket *so;
337 so = TAILQ_FIRST(&head->so_comp);
338 KASSERT(!(so->so_qstate & SQ_INCOMP), ("svc_vc_accept: so SQ_INCOMP"));
339 KASSERT(so->so_qstate & SQ_COMP, ("svc_vc_accept: so not SQ_COMP"));
347 SOCK_LOCK(so); /* soref() and so_state update */
348 soref(so); /* file descriptor reference */
350 TAILQ_REMOVE(&head->so_comp, so, so_list);
352 so->so_state |= (head->so_state & SS_NBIO);
353 so->so_qstate &= ~SQ_COMP;
354 so->so_head = NULL;
356 SOCK_UNLOCK(so);
359 *sop = so;
372 struct socket *so = NULL;
382 * connections so we call xprt_inactive().
386 error = svc_vc_accept(xprt->xp_socket, &so);
418 error = soaccept(so, &sa);
433 new_xprt = svc_vc_create_conn(xprt->xp_pool, so, sa);
435 soclose(so);
579 struct socket *so = xprt->xp_socket;
603 so->so_rcv.sb_lowat = sizeof(uint32_t) - n;
644 so->so_rcv.sb_lowat = INT_MAX;
646 so->so_rcv.sb_lowat =
647 imax(1, imin(cd->resid, so->so_rcv.sb_hiwat / 2));
658 struct socket* so = xprt->xp_socket;
712 SOCKBUF_LOCK(&so->so_rcv);
713 if (!soreadable(so))
715 SOCKBUF_UNLOCK(&so->so_rcv);
737 * we have drained both cd->mpending and the socket so
744 error = soreceive(so, NULL, &uio, &m, NULL, &rcvflag);
754 SOCKBUF_LOCK(&so->so_rcv);
755 if (!soreadable(so))
757 SOCKBUF_UNLOCK(&so->so_rcv);
763 SOCKBUF_LOCK(&so->so_rcv);
766 soupcall_clear(so, SO_RCV);
768 SOCKBUF_UNLOCK(&so->so_rcv);
952 svc_vc_soupcall(struct socket *so, void *arg, int waitflag)