#ident "@(#)terminal.h 1.6 93/06/08 SMI" /* From AT&T Toolchest */ /* * terminal interface */ #ifndef _terminal_ #define _terminal_ 1 #ifdef _termios_ # include # ifdef sgi /* special hack to eliminate ^M problem */ # ifndef ECHOCTL # define ECHOCTL ECHOE # endif /* ECHOCTL */ # ifndef CNSUSP # define CNSUSP CNSWTCH # endif /* CNSUSP */ # endif /* sgi */ #else # ifdef _sys_termios_ # include # define _termios_ # endif /* _sys_termios_ */ #endif /* _termios_ */ #ifdef _termios_ # ifndef TCSANOW # define TCSANOW TCSETS # define TCSADRAIN TCSETSW # define TCSAFLUSH TCSETSF # define tcgetattr(fd,tty) ioctl(fd, TCGETS, tty) # define tcsetattr(fd,action,tty) ioctl(fd, action, tty) # define cfgetospeed(tp) ((tp)->c_cflag & CBAUD) # endif /* TCSANOW */ /* the following is because of an ultrix bug */ # if defined(TCSADFLUSH) && !defined(TCSAFLUSH) # define TCSAFLUSH TCSADFLUSH # endif # undef TIOCGETC # undef _termio_ # undef _sys_termio_ # undef _sgtty_ # undef _sys_ioctl_ # undef _sys_bsdtty_ #else # undef OLDTERMIO #endif /* _termios_ */ #ifdef _termio_ # include #else # ifdef _sys_termio_ # include # define _termio_ 1 # endif /* _sys_termio_ */ #endif /* _termio_ */ #ifdef _termio_ # define termios termio # undef _sgtty_ # undef TIOCGETC # undef _sys_ioctl_ # define tcgetattr(fd,tty) ioctl(fd, TCGETA, tty) # define tcsetattr(fd,action,tty) ioctl(fd, action, tty) #endif /* _termio_ */ #ifdef _sys_bsdtty_ # include #endif /* _sys_bsdtty_ */ #ifdef _sgtty_ # include # ifdef _sys_nttyio_ # ifndef LPENDIN # include # endif /* LPENDIN */ # endif /* _sys_nttyio_ */ # define termios sgttyb # undef _sys_ioctl_ # ifdef TIOCSETN # undef TCSETAW # endif /* TIOCSETN */ # ifdef _SELECT_ # ifndef included_sys_time_ # ifdef _sys_Time_ # include # endif /* _sys_Time_ */ # define included_sys_time_ # endif /* included_sys_time_ */ extern const int tty_speeds[]; # endif /* _SELECT_ */ # ifdef TIOCGETP # define tcgetattr(fd,tty) ioctl(fd, TIOCGETP, tty) # define tcsetattr(fd,action,tty) ioctl(fd, action, tty) # else # define tcgetattr(fd,tty) gtty(fd, tty) # define tcsetattr(fd,action,tty) stty(fd, tty) # endif /* TIOCGETP */ #endif /* _sgtty_ */ #ifndef TCSANOW # ifdef TCSETAW # define TCSANOW TCSETA # ifdef u370 /* delays are too long, don't wait for output to drain */ # define TCSADRAIN TCSETA # else # define TCSADRAIN TCSETAW # endif /* u370 */ # define TCSAFLUSH TCSETAF # else # ifdef TIOCSETN # define TCSANOW TIOCSETN # define TCSADRAIN TIOCSETN # define TCSAFLUSH TIOCSETP # endif /* TIOCSETN */ # endif /* TCSETAW */ #endif /* TCSANOW */ #endif /* _terminal_ */ #ifndef _termios_ # define cfgetospeed(tp) ((tp)->c_cflag & CBAUD) #endif /* _termios_ */ /* set ECHOCTL if driver can echo control charaters as ^c */ #ifdef LCTLECH # ifndef ECHOCTL # define ECHOCTL LCTLECH # endif /* !ECHOCTL */ #endif /* LCTLECH */ #ifdef LNEW_CTLECH # ifndef ECHOCTL # define ECHOCTL LNEW_CTLECH # endif /* !ECHOCTL */ #endif /* LNEW_CTLECH */ #ifdef LNEW_PENDIN # ifndef PENDIN # define PENDIN LNEW_PENDIN # endif /* !PENDIN */ #endif /* LNEW_PENDIN */ #ifndef ECHOCTL # ifndef VEOL2 # define RAWONLY 1 # endif /* !VEOL2 */ #endif /* !ECHOCTL */ #ifdef _sys_filio_ # ifndef FIONREAD # include # endif /* FIONREAD */ #endif /* _sys_filio_ */ /* set FIORDCHK if you can check for characters in input queue */ #ifdef FIONREAD # ifndef FIORDCHK # define FIORDCHK FIONREAD # endif /* !FIORDCHK */ #endif /* FIONREAD */ #ifdef PROTO extern int tty_alt(int); extern void tty_cooked(int); extern int tty_get(int,struct termios*); extern int tty_raw(int); extern int tty_check(int); #else extern int tty_alt(); extern void tty_cooked(); extern int tty_get(); extern int tty_raw(); extern int tty_check(); #endif /* PROTO */ extern int tty_set();