* Copyright (c) 1983, 1993
* The Regents of the University of California. All rights reserved.
* This code is derived from software contributed to Berkeley by
* Edward Wang at The University of California, Berkeley.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)wwrint.c 8.1 (Berkeley) %G%";
#if defined(OLD_TTY) || defined(VMIN_BUG)
* Tty input interrupt handler.
* (1) Read input into buffer (wwib*).
* (2) Set the interrupt flag if anything is read.
* Currently, the last is used to get out of the blocking
* To avoid race conditions, we only modify wwibq in here, except
* when the buffer is empty; and everywhere else, we only change wwibp.
* It should be completely safe.
#if defined(OLD_TTY) || defined(VMIN_BUG)
/* we have set c_cc[VMIN] to 0 */
(void) fcntl(0, F_SETFL
, O_NONBLOCK
|wwnewtty
.ww_fflags
);
n
= read(0, wwibq
, wwibe
- wwibq
);
#if defined(OLD_TTY) || defined(VMIN_BUG)
(void) fcntl(0, F_SETFL
, wwnewtty
.ww_fflags
);
n
= (*tt
.tt_rint
)(wwibq
, n
);
* Hasten or delay the next checkpoint,
if (tt
.tt_checkpoint
&& !wwdocheckpoint
)