/*- * Copyright (c) 1982, 1988 The Regents of the University of California. * All rights reserved. * * %sccs.include.proprietary.c% * * @(#)ioctl.c 7.2 (Berkeley) 10/11/92 */ #include #include #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 */