terminal.h revision 34f9b3eef6fdadbda0a846aa4d68691ac40eace5
f0cb5ab1344f9596bef788d2312629a152869f4eNeil Madden/***********************************************************************
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* This software is part of the ast package *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* Copyright (c) 1982-2009 AT&T Intellectual Property *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* and is licensed under the *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* Common Public License, Version 1.0 *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* by AT&T Intellectual Property *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* A copy of the License is available at *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* http://www.opensource.org/licenses/cpl1.0.txt *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* Information and Software Systems Research *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* AT&T Research *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* Florham Park NJ *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster* David Korn <dgk@research.att.com> *
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster***********************************************************************/
8d75f7fba11e555d87ff0f6f2a7504681c482e0bNeil Madden * terminal interface
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * complicated by the fact that there are so many variations
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster * This will use POSIX <termios.h> interface where available
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# if __sgi__ || sgi /* special hack to eliminate ^M problem */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* ECHOCTL */
f0cb5ab1344f9596bef788d2312629a152869f4eNeil Madden# endif /* CNSUSP */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* sgi */
f0cb5ab1344f9596bef788d2312629a152869f4eNeil Madden# endif /* _NEXT_SOURCE */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# if defined(_sys_termios) && defined(_lib_tcgetattr)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _sys_termios */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* _hdr_termios */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TCSANOW */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* The following corrects bugs in some implementations */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TCSADFLUSH */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcgetattr(fd,tty) ioctl(fd, TCGETS, tty)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcsetattr(fd,action,tty) ioctl(fd, action, tty)
8d75f7fba11e555d87ff0f6f2a7504681c482e0bNeil Madden# endif /* _lib_tcgetattr */
f0cb5ab1344f9596bef788d2312629a152869f4eNeil Madden# if SHOPT_OLDTERMIO /* use both termios and termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _sys_termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _hdr_termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* SHOPT_OLDTERMIO */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define cfgetospeed(tp) ((tp)->c_cflag & CBAUD)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _sys_termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _hdr_termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcgetattr(fd,tty) ioctl(fd, TCGETA, tty)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcsetattr(fd,action,tty) ioctl(fd, action, tty)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _sys_bsdtty */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _sys_nttyio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* LPENDIN */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TIOCSETN */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcgetattr(fd,tty) ioctl(fd, TIOCGETP, tty)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# define tcsetattr(fd,action,tty) ioctl(fd, action, tty)
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TIOCGETP */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* _hdr_sgtty */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* hdr_termio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster /* delays are too long, don't wait for output to drain */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* u370 */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TIOCSETN */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TCSETAW */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* TCSANOW */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* _hdr_termios */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/* set ECHOCTL if driver can echo control charaters as ^c */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* !ECHOCTL */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* LCTLECH */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* !ECHOCTL */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* LNEW_CTLECH */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* !PENDIN */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* LNEW_PENDIN */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* !VEOL */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* !ECHOCTL */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* FIONREAD */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* _sys_filio */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster/* set FIORDCHK if you can check for characters in input queue */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster# endif /* !FIORDCHK */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* FIONREAD */
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextern int tty_alt(int);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextern void tty_cooked(int);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextern int tty_raw(int,int);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Fosterextern int tty_check(int);
a688bcbb4bcff5398fdd29b86f83450257dc0df4Allan Foster#endif /* _terminal_ */