4.4BSD/usr/src/contrib/gdb-4.7.lbl/gdb/nindy-share/ttyflush.c

/*****************************************************************************
 * Copyright 1990, 1992 Free Software Foundation, Inc.
 *
 * This code was donated by Intel Corp.
 *
 * Intel hereby grants you permission to copy, modify, and 
 * distribute this software and its documentation.  Intel grants
 * this permission provided that the above copyright notice 
 * appears in all copies and that both the copyright notice and
 * this permission notice appear in supporting documentation.  In
 * addition, Intel grants this permission provided that you
 * prominently mark as not part of the original any modifications
 * made to this software or documentation, and that the name of 
 * Intel Corporation not be used in advertising or publicity 
 * pertaining to distribution of the software or the documentation 
 * without specific, written prior permission.  
 *
 * Intel Corporation does not warrant, guarantee or make any 
 * representations regarding the use of, or the results of the use
 * of, the software and documentation in terms of correctness, 
 * accuracy, reliability, currentness, or otherwise; and you rely
 * on the software, documentation and results solely at your own risk.
 *****************************************************************************/

static char rcsid[] =
	"Id: ttyflush.c,v 1.1.1.1 1991/03/28 16:21:03 rich Exp $";

#include <stdio.h>
#include <fcntl.h>	/* Needed on Sys V */
#include "ttycntl.h"

/******************************************************************************
 * tty_flush:
 *
 *	This routine puts the specified tty into a quiescent state by flushing
 *	all pending input and output.
 *
 *	The tty is assumed to be connected to an i960 board containing a
 *	a NINDY ROM;  since the 960 may be generating output, we wait until
 *	at least one second goes by without anything new arriving.
 ******************************************************************************/

tty_flush( fd )
    int fd;	/* File descriptor of tty line */
{
	int n;	/* Number of characters of pending input */
	char c;	/* Next character of input (discarded) */

	do {
		TTY_FLUSH( fd );
		sleep(1);
		n = 1;
		TTY_NBREAD( fd, n, &c );	/* Non-blocking read */
	} while ( n > 0 );
}