1*4887Schinhdr termios,termio,sgtty 2*4887Schinsys termios,termio,ioctl,bsdtty,nttyio,ttyio 3*4887Schinlib tcgetattr,tcgetpgrp termios.h 4*4887Schinmac _POSIX_VDISABLE termios.h 5*4887Schinmem termios.c_line termios.h 6*4887Schin 7*4887Schincat{ 8*4887Schin 9*4887Schin#ifdef _hdr_termios 10*4887Schin# if _mac__POSIX_VDISABLE 11*4887Schin# undef _POSIX_VDISABLE 12*4887Schin# endif 13*4887Schin# include <termios.h> 14*4887Schin#else 15*4887Schin# if defined(_sys_termios) && defined(_lib_tcgetattr) 16*4887Schin# include <sys/termios.h> 17*4887Schin# define _hdr_termios 1 18*4887Schin# else 19*4887Schin# undef _sys_termios 20*4887Schin# endif /* _sys_termios */ 21*4887Schin#endif /* _hdr_termios */ 22*4887Schin 23*4887Schin#ifdef _hdr_termios 24*4887Schin# undef _hdr_sgtty 25*4887Schin# undef tcgetattr 26*4887Schin# undef tcsetattr 27*4887Schin# undef tcgetpgrp 28*4887Schin# undef tcsetpgrp 29*4887Schin# undef cfgetospeed 30*4887Schin# ifndef TCSANOW 31*4887Schin# define TCSANOW TCSETS 32*4887Schin# define TCSADRAIN TCSETSW 33*4887Schin# define TCSAFLUSH TCSETSF 34*4887Schin# endif /* TCSANOW */ 35*4887Schin /* The following corrects bugs in some implementations */ 36*4887Schin# if defined(TCSADFLUSH) && !defined(TCSAFLUSH) 37*4887Schin# define TCSAFLUSH TCSADFLUSH 38*4887Schin# endif /* TCSADFLUSH */ 39*4887Schin# ifndef _lib_tcgetattr 40*4887Schin# undef tcgetattr 41*4887Schin# define tcgetattr(fd,tty) ioctl(fd, TCGETS, tty) 42*4887Schin# undef tcsetattr 43*4887Schin# define tcsetattr(fd,action,tty) ioctl(fd, action, tty) 44*4887Schin# undef cfgetospeed 45*4887Schin# define cfgetospeed(tp) ((tp)->c_cflag & CBAUD) 46*4887Schin# endif /* _lib_tcgetattr */ 47*4887Schin# undef TIOCGETC 48*4887Schin#else 49*4887Schin# define cfgetospeed(tp) ((tp)->c_cflag & CBAUD) 50*4887Schin# define cfgetispeed(tp) ((tp)->c_cflag & CBAUD) 51*4887Schin# define cfsetispeed(tp,val) ((tp)->c_cflag &=~ CBAUD,(tp)->c_cflag|=(val)) 52*4887Schin# define cfsetospeed(tp,val) ((tp)->c_cflag &=~ CBAUD,(tp)->c_cflag|=(val)) 53*4887Schin# ifdef _hdr_termio 54*4887Schin# include <termio.h> 55*4887Schin# else 56*4887Schin# ifdef _sys_termio 57*4887Schin# include <sys/termio.h> 58*4887Schin# define _hdr_termio 1 59*4887Schin# endif /* _sys_termio */ 60*4887Schin# endif /* _hdr_termio */ 61*4887Schin# ifdef _hdr_termio 62*4887Schin# define termios termio 63*4887Schin# undef TIOCGETC 64*4887Schin# define tcgetattr(fd,tty) ioctl(fd, TCGETA, tty) 65*4887Schin# define tcsetattr(fd,action,tty) ioctl(fd, action, tty) 66*4887Schin 67*4887Schin# ifdef _sys_bsdtty 68*4887Schin# include <sys/bsdtty.h> 69*4887Schin# endif /* _sys_bsdtty */ 70*4887Schin# else 71*4887Schin# ifdef _hdr_sgtty 72*4887Schin# include <sgtty.h> 73*4887Schin# ifndef LPENDIN 74*4887Schin# ifdef _sys_nttyio 75*4887Schin# include <sys/nttyio.h> 76*4887Schin# endif /* _sys_nttyio */ 77*4887Schin# endif /* LPENDIN */ 78*4887Schin# define termios sgttyb 79*4887Schin# ifdef TIOCSETN 80*4887Schin# undef TCSETAW 81*4887Schin# endif /* TIOCSETN */ 82*4887Schin# ifdef TIOCGETP 83*4887Schin# define tcgetattr(fd,tty) ioctl(fd, TIOCGETP, tty) 84*4887Schin# define tcsetattr(fd,action,tty) ioctl(fd, action, tty) 85*4887Schin# else 86*4887Schin# define tcgetattr(fd,tty) gtty(fd, tty) 87*4887Schin# define tcsetattr(fd,action,tty) stty(fd, tty) 88*4887Schin# endif /* TIOCGETP */ 89*4887Schin# else 90*4887Schin# ifdef _sys_ttyio 91*4887Schin# include <sys/ttyio.h> 92*4887Schin# endif 93*4887Schin# endif /* _hdr_sgtty */ 94*4887Schin# endif /* hdr_termio */ 95*4887Schin 96*4887Schin# ifndef TCSANOW 97*4887Schin# ifdef TCSETAW 98*4887Schin# define TCSANOW TCSETA 99*4887Schin# define TCSAFLUSH TCSETAF 100*4887Schin# else 101*4887Schin# ifdef TIOCSETN 102*4887Schin# define TCSANOW TIOCSETN 103*4887Schin# define TCSADRAIN TIOCSETN 104*4887Schin# define TCSAFLUSH TIOCSETP 105*4887Schin# endif /* TIOCSETN */ 106*4887Schin# endif /* TCSETAW */ 107*4887Schin# endif /* TCSANOW */ 108*4887Schin#endif /* _hdr_termios */ 109*4887Schin 110*4887Schin/* set ECHOCTL if driver can echo control charaters as ^c */ 111*4887Schin#ifdef LCTLECH 112*4887Schin# ifndef ECHOCTL 113*4887Schin# define ECHOCTL LCTLECH 114*4887Schin# endif /* !ECHOCTL */ 115*4887Schin#endif /* LCTLECH */ 116*4887Schin#ifdef LNEW_CTLECH 117*4887Schin# ifndef ECHOCTL 118*4887Schin# define ECHOCTL LNEW_CTLECH 119*4887Schin# endif /* !ECHOCTL */ 120*4887Schin#endif /* LNEW_CTLECH */ 121*4887Schin#ifdef LNEW_PENDIN 122*4887Schin# ifndef PENDIN 123*4887Schin# define PENDIN LNEW_PENDIN 124*4887Schin# endif /* !PENDIN */ 125*4887Schin#endif /* LNEW_PENDIN */ 126*4887Schin 127*4887Schin}end 128