4.4BSD snapshot (revision 8.1); add 1993 to copyright
[unix-history] / usr / src / sys / stand.att / ioctl.c
/*-
* Copyright (c) 1982, 1988, 1993
* The Regents of the University of California. All rights reserved.
*
* %sccs.include.proprietary.c%
*
* @(#)ioctl.c 8.1 (Berkeley) %G%
*/
#include <sys/param.h>
#include <stand.att/saio.h>
#ifndef SMALL
ioctl(fdesc, cmd, arg)
int fdesc, cmd;
char *arg;
{
register struct iob *file;
int error = 0;
fdesc -= 3;
if (fdesc < 0 || fdesc >= SOPEN_MAX ||
((file = &iob[fdesc])->i_flgs&F_ALLOC) == 0) {
errno = EBADF;
return (-1);
}
switch (cmd) {
case SAIOHDR:
file->i_flgs |= F_HDR;
break;
case SAIOCHECK:
file->i_flgs |= F_CHECK;
break;
case SAIOHCHECK:
file->i_flgs |= F_HCHECK;
break;
case SAIONOBAD:
file->i_flgs |= F_NBSF;
break;
case SAIODOBAD:
file->i_flgs &= ~F_NBSF;
break;
default:
error = devioctl(file, cmd, arg);
break;
}
if (error < 0)
errno = file->i_error;
return (error);
}
#endif /* SMALL */