Lines Matching refs:so

116 	struct socket *__single so;  in soo_read()  local
123 if ((so = (struct socket *)fp_get_data(fp)) == NULL) { in soo_read()
128 fsoreceive = so->so_proto->pr_usrreqs->pru_soreceive; in soo_read()
130 stat = (*fsoreceive)(so, 0, uio, 0, 0, 0); in soo_read()
139 struct socket *__single so; in soo_write() local
146 if ((so = (struct socket *)fp_get_data(fp)) == NULL) { in soo_write()
151 fsosend = so->so_proto->pr_usrreqs->pru_sosend; in soo_write()
153 stat = (*fsosend)(so, 0, uio, 0, 0, 0); in soo_write()
157 if (stat == EPIPE && !(so->so_flags & SOF_NOSIGPIPE)) { in soo_write()
165 soioctl(struct socket *so, u_long cmd, caddr_t __sized_by(IOCPARM_LEN(cmd)) data, struct proc *p) in soioctl() argument
171 error = mac_socket_check_ioctl(kauth_cred_get(), so, cmd); in soioctl()
177 socket_lock(so, 1); in soioctl()
194 error = sflt_ioctl(so, cmd, data); in soioctl()
206 so->so_state |= SS_NBIO; in soioctl()
208 so->so_state &= ~SS_NBIO; in soioctl()
216 so->so_state |= SS_ASYNC; in soioctl()
217 so->so_rcv.sb_flags |= SB_ASYNC; in soioctl()
218 so->so_snd.sb_flags |= SB_ASYNC; in soioctl()
220 so->so_state &= ~SS_ASYNC; in soioctl()
221 so->so_rcv.sb_flags &= ~SB_ASYNC; in soioctl()
222 so->so_snd.sb_flags &= ~SB_ASYNC; in soioctl()
227 bcopy(&so->so_rcv.sb_cc, data, sizeof(u_int32_t)); in soioctl()
231 bcopy(data, &so->so_pgid, sizeof(pid_t)); in soioctl()
235 bcopy(&so->so_pgid, data, sizeof(pid_t)); in soioctl()
239 int_arg = (so->so_state & SS_RCVATMARK) != 0; in soioctl()
255 error = (*so->so_proto->pr_usrreqs->pru_control)(so, in soioctl()
266 error = ifioctllocked(so, cmd, data, p); in soioctl()
271 error = (*so->so_proto->pr_usrreqs->pru_control)(so, in soioctl()
277 socket_unlock(so, 1); in soioctl()
289 struct socket *__single so; in soo_ioctl() local
292 if ((so = (struct socket *)fp_get_data(fp)) == NULL) { in soo_ioctl()
297 return soioctl(so, cmd, data, procp); in soo_ioctl()
303 struct socket *__single so = (struct socket *)fp_get_data(fp); in soo_select() local
307 if (so == NULL || so == (struct socket *)-1) { in soo_select()
313 socket_lock(so, 1); in soo_select()
316 so->so_rcv.sb_flags |= SB_SEL; in soo_select()
317 if (soreadable(so)) { in soo_select()
319 so->so_rcv.sb_flags &= ~SB_SEL; in soo_select()
322 selrecord(procp, &so->so_rcv.sb_sel, wql); in soo_select()
326 so->so_snd.sb_flags |= SB_SEL; in soo_select()
327 if (sowriteable(so)) { in soo_select()
329 so->so_snd.sb_flags &= ~SB_SEL; in soo_select()
332 selrecord(procp, &so->so_snd.sb_sel, wql); in soo_select()
336 so->so_rcv.sb_flags |= SB_SEL; in soo_select()
337 if (so->so_oobmark || (so->so_state & SS_RCVATMARK)) { in soo_select()
339 so->so_rcv.sb_flags &= ~SB_SEL; in soo_select()
342 selrecord(procp, &so->so_rcv.sb_sel, wql); in soo_select()
347 socket_unlock(so, 1); in soo_select()
352 soo_stat(struct socket *so, void *ub, int isstat64) in soo_stat() argument
361 ret = mac_socket_check_stat(kauth_cred_get(), so); in soo_stat()
375 socket_lock(so, 1); in soo_stat()
378 if ((so->so_state & SS_CANTRCVMORE) == 0 || in soo_stat()
379 so->so_rcv.sb_cc != 0) { in soo_stat()
382 if ((so->so_state & SS_CANTSENDMORE) == 0) { in soo_stat()
385 sb64->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; in soo_stat()
386 sb64->st_uid = kauth_cred_getuid(so->so_cred); in soo_stat()
387 sb64->st_gid = kauth_cred_getgid(so->so_cred); in soo_stat()
390 if ((so->so_state & SS_CANTRCVMORE) == 0 || in soo_stat()
391 so->so_rcv.sb_cc != 0) { in soo_stat()
394 if ((so->so_state & SS_CANTSENDMORE) == 0) { in soo_stat()
397 sb->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl; in soo_stat()
398 sb->st_uid = kauth_cred_getuid(so->so_cred); in soo_stat()
399 sb->st_gid = kauth_cred_getgid(so->so_cred); in soo_stat()
402 ret = (*so->so_proto->pr_usrreqs->pru_sense)(so, ub, isstat64); in soo_stat()
403 socket_unlock(so, 1); in soo_stat()
428 struct socket *__single so = (struct socket *)fp_get_data(fp); in soo_drain() local
430 if (so) { in soo_drain()
431 socket_lock(so, 1); in soo_drain()
432 so->so_state |= SS_DRAINING; in soo_drain()
434 wakeup((caddr_t)&so->so_timeo); in soo_drain()
435 sorwakeup(so); in soo_drain()
436 sowwakeup(so); in soo_drain()
437 soevent(so, SO_FILT_HINT_LOCKED); in soo_drain()
439 socket_unlock(so, 1); in soo_drain()