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