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 error = so->so_proto->pr_usrreqs->pru_peeraddr(so, &sa);
156 xprt = svc_vc_create_conn(pool, so, sa);
160 SOCK_UNLOCK(so);
165 xprt->xp_socket = so;
170 error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa);
180 solisten(so, SOMAXCONN, curthread);
182 SOCKBUF_LOCK(&so->so_rcv);
184 soupcall_set(so, SO_RCV, svc_vc_soupcall, xprt);
185 SOCKBUF_UNLOCK(&so->so_rcv);
200 svc_vc_create_conn(SVCPOOL *pool, struct socket *so, struct sockaddr *raddr)
215 error = sosetopt(so, &opt);
220 if (so->so_proto->pr_protocol == IPPROTO_TCP) {
227 error = sosetopt(so, &opt);
239 xprt->xp_socket = so;
252 error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa);
261 SOCKBUF_LOCK(&so->so_rcv);
263 soupcall_set(so, SO_RCV, svc_vc_soupcall, xprt);
264 SOCKBUF_UNLOCK(&so->so_rcv);
316 struct socket *so;
333 so = TAILQ_FIRST(&head->so_comp);
334 KASSERT(!(so->so_qstate & SQ_INCOMP), ("svc_vc_accept: so SQ_INCOMP"));
335 KASSERT(so->so_qstate & SQ_COMP, ("svc_vc_accept: so not SQ_COMP"));
343 SOCK_LOCK(so); /* soref() and so_state update */
344 soref(so); /* file descriptor reference */
346 TAILQ_REMOVE(&head->so_comp, so, so_list);
348 so->so_state |= (head->so_state & SS_NBIO);
349 so->so_qstate &= ~SQ_COMP;
350 so->so_head = NULL;
352 SOCK_UNLOCK(so);
355 *sop = so;
368 struct socket *so = NULL;
378 * connections so we call xprt_inactive().
382 error = svc_vc_accept(xprt->xp_socket, &so);
414 error = soaccept(so, &sa);
429 new_xprt = svc_vc_create_conn(xprt->xp_pool, so, sa);
431 soclose(so);
575 struct socket *so = xprt->xp_socket;
599 so->so_rcv.sb_lowat = sizeof(uint32_t) - n;
640 so->so_rcv.sb_lowat = INT_MAX;
642 so->so_rcv.sb_lowat =
643 imax(1, imin(cd->resid, so->so_rcv.sb_hiwat / 2));
654 struct socket* so = xprt->xp_socket;
708 SOCKBUF_LOCK(&so->so_rcv);
709 if (!soreadable(so))
711 SOCKBUF_UNLOCK(&so->so_rcv);
733 * we have drained both cd->mpending and the socket so
740 error = soreceive(so, NULL, &uio, &m, NULL, &rcvflag);
750 SOCKBUF_LOCK(&so->so_rcv);
751 if (!soreadable(so))
753 SOCKBUF_UNLOCK(&so->so_rcv);
759 SOCKBUF_LOCK(&so->so_rcv);
762 soupcall_clear(so, SO_RCV);
764 SOCKBUF_UNLOCK(&so->so_rcv);
948 svc_vc_soupcall(struct socket *so, void *arg, int waitflag)