xref: /onnv-gate/usr/src/lib/libast/common/features/tty (revision 4887:feebf9260c2e)
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