xref: /titanic_51/usr/src/lib/libast/common/features/tty (revision da2e3ebdc1edfbc5028edf1354e7dd2fa69a7968)
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