Пример #1
0
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));
}
Пример #2
0
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);
}