Lines Matching defs:so

119 	struct socket *so;
129 if ((so = (struct socket *)fp->f_fglob->fg_data) == NULL) {
135 error = mac_socket_check_receive(vfs_context_ucred(ctx), so);
141 fsoreceive = so->so_proto->pr_usrreqs->pru_soreceive;
143 stat = (*fsoreceive)(so, 0, uio, 0, 0, 0);
152 struct socket *so;
163 if ((so = (struct socket *)fp->f_fglob->fg_data) == NULL) {
170 error = mac_socket_check_send(vfs_context_ucred(ctx), so, NULL);
175 fsosend = so->so_proto->pr_usrreqs->pru_sosend;
177 stat = (*fsosend)(so, 0, uio, 0, 0, 0);
181 if (stat == EPIPE && !(so->so_flags & SOF_NOSIGPIPE))
188 soioctl(struct socket *so, u_long cmd, caddr_t data, struct proc *p)
194 socket_lock(so, 1);
198 error = sflt_ioctl(so, cmd, data);
208 so->so_state |= SS_NBIO;
210 so->so_state &= ~SS_NBIO;
217 so->so_state |= SS_ASYNC;
218 so->so_rcv.sb_flags |= SB_ASYNC;
219 so->so_snd.sb_flags |= SB_ASYNC;
221 so->so_state &= ~SS_ASYNC;
222 so->so_rcv.sb_flags &= ~SB_ASYNC;
223 so->so_snd.sb_flags &= ~SB_ASYNC;
228 bcopy(&so->so_rcv.sb_cc, data, sizeof (u_int32_t));
232 bcopy(data, &so->so_pgid, sizeof (pid_t));
236 bcopy(&so->so_pgid, data, sizeof (pid_t));
240 int_arg = (so->so_state & SS_RCVATMARK) != 0;
264 so->so_state |= SS_NBIO;
265 so->so_options |= SO_DONTTRUNC | SO_WANTMORE;
266 so->so_flags |= SOF_NOSIGPIPE | SOF_NPX_SETOPTSHUT;
268 if (cloned_so && so != cloned_so) {
270 so->so_options |=
274 if (so->so_options & SO_LINGER)
275 so->so_linger = cloned_so->so_linger;
279 if (sbreserve(&so->so_snd,
286 if (sbreserve(&so->so_rcv,
294 so->so_snd.sb_lowat =
295 (cloned_so->so_snd.sb_lowat > so->so_snd.sb_hiwat) ?
296 so->so_snd.sb_hiwat : cloned_so->so_snd.sb_lowat;
297 so->so_rcv.sb_lowat =
298 (cloned_so->so_rcv.sb_lowat > so->so_rcv.sb_hiwat) ?
299 so->so_rcv.sb_hiwat : cloned_so->so_rcv.sb_lowat;
302 so->so_snd.sb_timeo = cloned_so->so_snd.sb_timeo;
303 so->so_rcv.sb_timeo = cloned_so->so_rcv.sb_timeo;
306 error = (*so->so_proto->pr_usrreqs->pru_control)(so, cmd,
321 error = ifioctllocked(so, cmd, data, p);
326 error = (*so->so_proto->pr_usrreqs->pru_control)(so,
333 socket_unlock(so, 1);
344 struct socket *so;
348 if ((so = (struct socket *)fp->f_fglob->fg_data) == NULL) {
353 error = soioctl(so, cmd, data, procp);
364 struct socket *so = (struct socket *)fp->f_fglob->fg_data;
368 if (so == NULL || so == (struct socket *)-1)
374 if (mac_socket_check_select(vfs_context_ucred(ctx), so, which) != 0);
379 socket_lock(so, 1);
383 so->so_rcv.sb_flags |= SB_SEL;
384 if (soreadable(so)) {
386 so->so_rcv.sb_flags &= ~SB_SEL;
389 selrecord(procp, &so->so_rcv.sb_sel, wql);
393 so->so_snd.sb_flags |= SB_SEL;
394 if (sowriteable(so)) {
396 so->so_snd.sb_flags &= ~SB_SEL;
399 selrecord(procp, &so->so_snd.sb_sel, wql);
403 so->so_rcv.sb_flags |= SB_SEL;
404 if (so->so_oobmark || (so->so_state & SS_RCVATMARK)) {
406 so->so_rcv.sb_flags &= ~SB_SEL;
409 selrecord(procp, &so->so_rcv.sb_sel, wql);
414 socket_unlock(so, 1);
419 soo_stat(struct socket *so, void *ub, int isstat64)
428 ret = mac_socket_check_stat(kauth_cred_get(), so);
441 socket_lock(so, 1);
444 if ((so->so_state & SS_CANTRCVMORE) == 0 ||
445 so->so_rcv.sb_cc != 0)
447 if ((so->so_state & SS_CANTSENDMORE) == 0)
449 sb64->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl;
450 sb64->st_uid = kauth_cred_getuid(so->so_cred);
451 sb64->st_gid = kauth_cred_getgid(so->so_cred);
454 if ((so->so_state & SS_CANTRCVMORE) == 0 ||
455 so->so_rcv.sb_cc != 0)
457 if ((so->so_state & SS_CANTSENDMORE) == 0)
459 sb->st_size = so->so_rcv.sb_cc - so->so_rcv.sb_ctl;
460 sb->st_uid = kauth_cred_getuid(so->so_cred);
461 sb->st_gid = kauth_cred_getgid(so->so_cred);
464 ret = (*so->so_proto->pr_usrreqs->pru_sense)(so, ub, isstat64);
465 socket_unlock(so, 1);
489 struct socket *so = (struct socket *)fp->f_fglob->fg_data;
491 if (so) {
492 socket_lock(so, 1);
493 so->so_state |= SS_DRAINING;
495 wakeup((caddr_t)&so->so_timeo);
496 sorwakeup(so);
497 sowwakeup(so);
498 soevent(so, SO_FILT_HINT_LOCKED);
500 socket_unlock(so, 1);