#pragma prototyped
#ifndef _terminal_
#define _terminal_ 1
#include "FEATURE/ttys"
#ifdef _hdr_termios
# include <termios.h>
# if __sgi__ || sgi
# ifndef ECHOCTL
# define ECHOCTL ECHOE
# endif
# ifndef CNSUSP
# define CNSUSP CNSWTCH
# endif
# endif
# ifdef _NEXT_SOURCE
# define _lib_tcgetattr 1
# define _lib_tcgetpgrp 1
# endif
#else
# if defined(_sys_termios) && defined(_lib_tcgetattr)
# include <sys/termios.h>
# define _hdr_termios
# else
# undef _sys_termios
# endif
#endif
#ifdef _hdr_termios
# undef _hdr_sgtty
# undef tcgetattr
# undef tcsetattr
# undef tcgetpgrp
# undef tcsetpgrp
# undef cfgetospeed
# ifndef TCSANOW
# define TCSANOW TCSETS
# define TCSADRAIN TCSETSW
# define TCSAFLUSH TCSETSF
# endif
# if defined(TCSADFLUSH) && !defined(TCSAFLUSH)
# define TCSAFLUSH TCSADFLUSH
# endif
# ifndef _lib_tcgetattr
# undef tcgetattr
# define tcgetattr(fd,tty) ioctl(fd, TCGETS, tty)
# undef tcsetattr
# define tcsetattr(fd,action,tty) ioctl(fd, action, tty)
# undef cfgetospeed
# define cfgetospeed(tp) ((tp)->c_cflag & CBAUD)
# endif
# undef TIOCGETC
# if SHOPT_OLDTERMIO
# ifdef _hdr_termio
# include <termio.h>
# else
# ifdef _sys_termio
# include <sys/termio.h>
# define _hdr_termio 1
# else
# undef SHOPT_OLDTERMIO
# endif
# endif
# endif
#else
# define cfgetospeed(tp) ((tp)->c_cflag & CBAUD)
# undef SHOPT_OLDTERMIO
# ifdef _hdr_termio
# include <termio.h>
# else
# ifdef _sys_termio
# include <sys/termio.h>
# define _hdr_termio 1
# endif
# endif
# ifdef _hdr_termio
# define termios termio
# undef TIOCGETC
# define tcgetattr(fd,tty) ioctl(fd, TCGETA, tty)
# define tcsetattr(fd,action,tty) ioctl(fd, action, tty)
# ifdef _sys_bsdtty
# include <sys/bsdtty.h>
# endif
# else
# ifdef _hdr_sgtty
# include <sgtty.h>
# ifndef LPENDIN
# ifdef _sys_nttyio
# include <sys/nttyio.h>
# endif
# endif
# define termios sgttyb
# ifdef TIOCSETN
# undef TCSETAW
# endif
# 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
# endif
# endif
# ifndef TCSANOW
# ifdef TCSETAW
# define TCSANOW TCSETA
# ifdef u370
# define TCSADRAIN TCSETA
# else
# define TCSADRAIN TCSETAW
# endif
# define TCSAFLUSH TCSETAF
# else
# ifdef TIOCSETN
# define TCSANOW TIOCSETN
# define TCSADRAIN TIOCSETN
# define TCSAFLUSH TIOCSETP
# endif
# endif
# endif
#endif
#ifdef LCTLECH
# ifndef ECHOCTL
# define ECHOCTL LCTLECH
# endif
#endif
#ifdef LNEW_CTLECH
# ifndef ECHOCTL
# define ECHOCTL LNEW_CTLECH
# endif
#endif
#ifdef LNEW_PENDIN
# ifndef PENDIN
# define PENDIN LNEW_PENDIN
# endif
#endif
#ifndef ECHOCTL
# ifndef VEOL
# define RAWONLY 1
# endif
#endif
#ifdef _sys_filio
# ifndef FIONREAD
# include <sys/filio.h>
# endif
#endif
#ifdef FIONREAD
# ifndef FIORDCHK
# define FIORDCHK FIONREAD
# endif
#endif
extern int tty_alt(int);
extern void tty_cooked(int);
extern int tty_get(int,struct termios*);
extern int tty_raw(int,int);
extern int tty_check(int);
extern int tty_set(int, int, struct termios*);
#endif