int soo_ioctl(struct fileproc *fp, u_long cmd, caddr_t data, vfs_context_t ctx) { struct socket *so; proc_t procp = vfs_context_proc(ctx); if ((so = (struct socket *)fp->f_fglob->fg_data) == NULL) { /* This is not a valid open file descriptor */ return (EBADF); } return (soioctl(so, cmd, data, procp)); }
int soo_ioctl(struct fileproc *fp, u_long cmd, caddr_t data, vfs_context_t ctx) { struct socket *so; int error; proc_t procp = vfs_context_proc(ctx); if ((so = (struct socket *)fp->f_fglob->fg_data) == NULL) { /* This is not a valid open file descriptor */ return (EBADF); } error = soioctl(so, cmd, data, procp); if (error == 0 && cmd == SIOCSETOT) fp->f_fglob->fg_flag |= FNONBLOCK; return (error); }