Lines Matching defs:so
61 struct socket *so = (struct socket *)fp->f_data;
67 return (soreceive(so, NULL, uio, NULL, NULL, &flags, 0));
73 struct socket *so = (struct socket *)fp->f_data;
79 return (sosend(so, NULL, uio, NULL, NULL, flags));
85 struct socket *so = (struct socket *)fp->f_data;
90 solock(so);
91 mtx_enter(&so->so_rcv.sb_mtx);
92 mtx_enter(&so->so_snd.sb_mtx);
94 so->so_rcv.sb_flags |= SB_ASYNC;
95 so->so_snd.sb_flags |= SB_ASYNC;
97 so->so_rcv.sb_flags &= ~SB_ASYNC;
98 so->so_snd.sb_flags &= ~SB_ASYNC;
100 mtx_leave(&so->so_snd.sb_mtx);
101 mtx_leave(&so->so_rcv.sb_mtx);
102 sounlock(so);
106 *(int *)data = so->so_rcv.sb_datacc;
112 return sigio_setown(&so->so_sigio, cmd, data);
117 sigio_getown(&so->so_sigio, cmd, data);
121 *(int *)data = (so->so_rcv.sb_state & SS_RCVATMARK) != 0;
131 return ifioctl(so, cmd, data, p);
134 return pru_control(so, cmd, data, NULL);
143 struct socket *so = fp->f_data;
147 solock_shared(so);
148 mtx_enter(&so->so_rcv.sb_mtx);
149 if ((so->so_rcv.sb_state & SS_CANTRCVMORE) == 0 ||
150 so->so_rcv.sb_cc != 0)
152 mtx_leave(&so->so_rcv.sb_mtx);
153 mtx_enter(&so->so_snd.sb_mtx);
154 if ((so->so_snd.sb_state & SS_CANTSENDMORE) == 0)
156 mtx_leave(&so->so_snd.sb_mtx);
157 ub->st_uid = so->so_euid;
158 ub->st_gid = so->so_egid;
159 (void)pru_sense(so, ub);
160 sounlock_shared(so);