SCCS-vsn: sys/stand.att/dev.c 7.11
*
* %sccs.include.redist.c%
*
*
* %sccs.include.redist.c%
*
- * @(#)dev.c 7.10 (Berkeley) %G%
+ * @(#)dev.c 7.11 (Berkeley) %G%
*/
#include "sys/param.h"
#include "stand/saio.h" /* used from machine/stand dir */
*/
#include "sys/param.h"
#include "stand/saio.h" /* used from machine/stand dir */
- * NB: the value "io->i_dev", used to offset the devsw[] array
- * in the routines below, is munged by the vaxstand Makefile to work
- * for certain boots.
+ * NB: the value "io->i_dev", used to offset the devsw[] array in the
+ * routines below, is munged by the machine specific stand Makefiles
+ * to work for certain boots.
devread(io)
register struct iob *io;
{
devread(io)
register struct iob *io;
{
io->i_error = 0;
cc = (*devsw[io->i_dev].dv_strategy)(io, F_READ);
io->i_flgs &= ~F_TYPEMASK;
io->i_error = 0;
cc = (*devsw[io->i_dev].dv_strategy)(io, F_READ);
io->i_flgs &= ~F_TYPEMASK;
+ if (scankbd())
+ _longjmp(&exception, 1);
io->i_flgs |= F_WRDATA;
io->i_error = 0;
io->i_flgs |= F_WRDATA;
io->i_error = 0;
- cc = (*devsw[io->i_dev].dv_strategy)(io, WRITE);
+ cc = (*devsw[io->i_dev].dv_strategy)(io, F_WRITE);
io->i_flgs &= ~F_TYPEMASK;
io->i_flgs &= ~F_TYPEMASK;
+ if (scankbd())
+ _longjmp(&exception, 1);
return ((*devsw[io->i_dev].dv_ioctl)(io, cmd, arg));
}
return ((*devsw[io->i_dev].dv_ioctl)(io, cmd, arg));
}
nullsys(io)
struct iob *io;
{}
nullsys(io)
struct iob *io;
{}
nodev(io)
struct iob *io;
{
errno = EBADF;
}
nodev(io)
struct iob *io;
{
errno = EBADF;
}
noioctl(io, cmd, arg)
struct iob *io;
int cmd;
noioctl(io, cmd, arg)
struct iob *io;
int cmd;