Lines Matching defs:so
156 tcp_usr_attach(struct socket *so, int proto, struct thread *td)
162 inp = sotoinpcb(so);
165 error = soreserve(so, V_tcp_sendspace, V_tcp_recvspace);
169 so->so_rcv.sb_flags |= SB_AUTOSIZE;
170 so->so_snd.sb_flags |= SB_AUTOSIZE;
171 error = in_pcballoc(so, &V_tcbinfo);
174 inp = sotoinpcb(so);
197 tcp_usr_detach(struct socket *so)
202 inp = sotoinpcb(so);
205 KASSERT(so->so_pcb == inp && inp->inp_socket == so,
206 ("%s: socket %p inp %p mismatch", __func__, so, inp));
223 tcp_usr_bind(struct socket *so, struct sockaddr *nam, struct thread *td)
230 inp = sotoinpcb(so);
278 tcp6_usr_bind(struct socket *so, struct sockaddr *nam, struct thread *td)
286 inp = sotoinpcb(so);
356 tcp_usr_listen(struct socket *so, int backlog, struct thread *td)
363 inp = sotoinpcb(so);
372 SOCK_LOCK(so);
373 already_listening = SOLISTENING(so);
374 error = solisten_proto_check(so);
376 SOCK_UNLOCK(so);
386 solisten_proto(so, backlog);
388 if ((so->so_options & SO_NO_OFFLOAD) == 0)
392 solisten_proto_abort(so);
394 SOCK_UNLOCK(so);
413 tcp6_usr_listen(struct socket *so, int backlog, struct thread *td)
421 inp = sotoinpcb(so);
432 SOCK_LOCK(so);
433 already_listening = SOLISTENING(so);
434 error = solisten_proto_check(so);
436 SOCK_UNLOCK(so);
449 solisten_proto(so, backlog);
451 if ((so->so_options & SO_NO_OFFLOAD) == 0)
455 solisten_proto_abort(so);
457 SOCK_UNLOCK(so);
486 tcp_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
494 inp = sotoinpcb(so);
525 if (SOLISTENING(so)) {
534 (so->so_options & SO_NO_OFFLOAD) == 0 &&
535 (error = tcp_offload_connect(so, nam)) == 0)
554 tcp6_usr_connect(struct socket *so, struct sockaddr *nam, struct thread *td)
564 inp = sotoinpcb(so);
592 if (SOLISTENING(so)) {
633 (so->so_options & SO_NO_OFFLOAD) == 0 &&
634 (error = tcp_offload_connect(so, nam)) == 0)
656 (so->so_options & SO_NO_OFFLOAD) == 0 &&
657 (error = tcp_offload_connect(so, nam)) == 0)
695 tcp_usr_disconnect(struct socket *so)
702 inp = sotoinpcb(so);
724 tcp_usr_accept(struct socket *so, struct sockaddr *sa)
730 inp = sotoinpcb(so);
739 if (so->so_state & SS_ISDISCONNECTED)
758 tcp6_usr_accept(struct socket *so, struct sockaddr *sa)
764 inp = sotoinpcb(so);
773 if (so->so_state & SS_ISDISCONNECTED) {
808 tcp_usr_shutdown(struct socket *so, enum shutdown_how how)
811 struct inpcb *inp = sotoinpcb(so);
815 SOCK_LOCK(so);
816 if (SOLISTENING(so)) {
818 so->so_error = ECONNABORTED;
819 solisten_wakeup(so); /* unlocks so */
821 SOCK_UNLOCK(so);
823 } else if ((so->so_state &
825 SOCK_UNLOCK(so);
828 SOCK_UNLOCK(so);
832 sorflush(so);
835 sorflush(so);
848 socantsendmore(so);
857 wakeup(&so->so_timeo);
866 tcp_usr_rcvd(struct socket *so, int flags)
873 inp = sotoinpcb(so);
914 tcp_usr_send(struct socket *so, int flags, struct mbuf *m,
935 inp = sotoinpcb(so);
1063 sbappendstream(&so->so_snd, m, flags);
1094 sbflush(&so->so_snd);
1109 socantsendmore(so);
1115 (so->so_snd.sb_ccc > 0)) {
1134 SOCK_SENDBUF_LOCK(so);
1135 if (sbspace(&so->so_snd) < -512) {
1136 SOCK_SENDBUF_UNLOCK(so);
1150 sbappendstream_locked(&so->so_snd, m, flags);
1151 SOCK_SENDBUF_UNLOCK(so);
1185 sbflush(&so->so_snd);
1191 tp->snd_up = tp->snd_una + sbavail(&so->so_snd);
1230 tcp_usr_ready(struct socket *so, struct mbuf *m, int count)
1237 inp = sotoinpcb(so);
1246 SOCK_SENDBUF_LOCK(so);
1247 error = sbready(&so->so_snd, m, count);
1248 SOCK_SENDBUF_UNLOCK(so);
1264 tcp_usr_abort(struct socket *so)
1270 inp = sotoinpcb(so);
1290 soref(so);
1302 tcp_usr_close(struct socket *so)
1308 inp = sotoinpcb(so);
1330 soref(so);
1359 tcp_usr_rcvoob(struct socket *so, struct mbuf *m, int flags)
1365 inp = sotoinpcb(so);
1378 if ((so->so_oobmark == 0 &&
1379 (so->so_rcv.sb_state & SBS_RCVATMARK) == 0) ||
1380 so->so_options & SO_OOBINLINE ||
1468 struct socket *so = tptosocket(tp);
1474 if (__predict_false((so->so_state &
1494 soisconnecting(so);
1511 struct socket *so = tptosocket(tp);
1517 if (__predict_false((so->so_state &
1532 soisconnecting(so);
1651 struct socket *so = inp->inp_socket;
1659 KASSERT(so != NULL, ("inp_socket == NULL"));
1665 error = ip6_ctloutput(so, sopt);
1671 error = ip_ctloutput(so, sopt);
1715 * Protect the TCP option TCP_FUNCTION_BLK so
1819 struct socket *so = inp->inp_socket;
1827 KASSERT(so != NULL, ("inp_socket == NULL"));
1833 error = ip6_ctloutput(so, sopt);
1839 error = ip_ctloutput(so, sopt);
1867 tcp_ctloutput(struct socket *so, struct sockopt *sopt)
1871 inp = sotoinpcb(so);
1931 * so we hold a reference through the change process.
1968 * We once again hold a write lock over the tcb so it's
2020 struct socket *so = inp->inp_socket;
2190 * The MSS is so small we should not process incoming
2256 error = ktls_enable_tx(so, &tls);
2266 error = ktls_set_tx_mode(so, ui);
2274 error = ktls_enable_rx(so, &tls);
2629 error = ktls_get_tx_mode(so, &optval);
2636 error = ktls_get_rx_mode(so, &optval);
2667 struct socket *so = tptosocket(tp);
2681 } else if ((so->so_options & SO_LINGER) && so->so_linger == 0) {
2686 soisdisconnecting(so);
2687 sbflush(&so->so_rcv);