xref: /titanic_51/usr/src/uts/common/sys/termios.h (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1*7c478bd9Sstevel@tonic-gate /*
2*7c478bd9Sstevel@tonic-gate  * CDDL HEADER START
3*7c478bd9Sstevel@tonic-gate  *
4*7c478bd9Sstevel@tonic-gate  * The contents of this file are subject to the terms of the
5*7c478bd9Sstevel@tonic-gate  * Common Development and Distribution License, Version 1.0 only
6*7c478bd9Sstevel@tonic-gate  * (the "License").  You may not use this file except in compliance
7*7c478bd9Sstevel@tonic-gate  * with the License.
8*7c478bd9Sstevel@tonic-gate  *
9*7c478bd9Sstevel@tonic-gate  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*7c478bd9Sstevel@tonic-gate  * or http://www.opensolaris.org/os/licensing.
11*7c478bd9Sstevel@tonic-gate  * See the License for the specific language governing permissions
12*7c478bd9Sstevel@tonic-gate  * and limitations under the License.
13*7c478bd9Sstevel@tonic-gate  *
14*7c478bd9Sstevel@tonic-gate  * When distributing Covered Code, include this CDDL HEADER in each
15*7c478bd9Sstevel@tonic-gate  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*7c478bd9Sstevel@tonic-gate  * If applicable, add the following below this CDDL HEADER, with the
17*7c478bd9Sstevel@tonic-gate  * fields enclosed by brackets "[]" replaced with your own identifying
18*7c478bd9Sstevel@tonic-gate  * information: Portions Copyright [yyyy] [name of copyright owner]
19*7c478bd9Sstevel@tonic-gate  *
20*7c478bd9Sstevel@tonic-gate  * CDDL HEADER END
21*7c478bd9Sstevel@tonic-gate  */
22*7c478bd9Sstevel@tonic-gate /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23*7c478bd9Sstevel@tonic-gate /*	  All Rights Reserved  	*/
24*7c478bd9Sstevel@tonic-gate 
25*7c478bd9Sstevel@tonic-gate 
26*7c478bd9Sstevel@tonic-gate /*
27*7c478bd9Sstevel@tonic-gate  * Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
28*7c478bd9Sstevel@tonic-gate  * Use is subject to license terms.
29*7c478bd9Sstevel@tonic-gate  */
30*7c478bd9Sstevel@tonic-gate 
31*7c478bd9Sstevel@tonic-gate #ifndef _SYS_TERMIOS_H
32*7c478bd9Sstevel@tonic-gate #define	_SYS_TERMIOS_H
33*7c478bd9Sstevel@tonic-gate 
34*7c478bd9Sstevel@tonic-gate #pragma ident	"%Z%%M%	%I%	%E% SMI"
35*7c478bd9Sstevel@tonic-gate 
36*7c478bd9Sstevel@tonic-gate #include <sys/feature_tests.h>
37*7c478bd9Sstevel@tonic-gate 
38*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
39*7c478bd9Sstevel@tonic-gate #include <sys/ttydev.h>
40*7c478bd9Sstevel@tonic-gate #include <sys/time.h>
41*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
42*7c478bd9Sstevel@tonic-gate 
43*7c478bd9Sstevel@tonic-gate #include <sys/types.h>
44*7c478bd9Sstevel@tonic-gate 
45*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
46*7c478bd9Sstevel@tonic-gate extern "C" {
47*7c478bd9Sstevel@tonic-gate #endif
48*7c478bd9Sstevel@tonic-gate 
49*7c478bd9Sstevel@tonic-gate /*
50*7c478bd9Sstevel@tonic-gate  * _POSIX_VDISABLE has been defined in <sys/termios.h> since the
51*7c478bd9Sstevel@tonic-gate  * introduction of the header. The POSIX standard, IEEE Std.
52*7c478bd9Sstevel@tonic-gate  * 1003.1-1988 also required  the existence of _POSIX_VDISABLE in
53*7c478bd9Sstevel@tonic-gate  * this header. Subsequent versions of the IEEE Standard as well
54*7c478bd9Sstevel@tonic-gate  * as the X/Open specifications required that _POSIX_VDISABLE be
55*7c478bd9Sstevel@tonic-gate  * defined in <unistd.h> while still allowing for it's existence
56*7c478bd9Sstevel@tonic-gate  * here. With the introduction of XPG6, _POSIX_VDISABLE can only
57*7c478bd9Sstevel@tonic-gate  * be defined in <unistd.h>.
58*7c478bd9Sstevel@tonic-gate  */
59*7c478bd9Sstevel@tonic-gate #if !defined(_XPG6) || defined(__EXTENSIONS__)
60*7c478bd9Sstevel@tonic-gate #ifndef _POSIX_VDISABLE
61*7c478bd9Sstevel@tonic-gate #define	_POSIX_VDISABLE 0 /* Disable special character functions */
62*7c478bd9Sstevel@tonic-gate #endif
63*7c478bd9Sstevel@tonic-gate #endif /* !defined(_XPG6) || defined(__EXTENSIONS__) */
64*7c478bd9Sstevel@tonic-gate 
65*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
66*7c478bd9Sstevel@tonic-gate #define	CTRL(c)	((c)&037)
67*7c478bd9Sstevel@tonic-gate #define	IBSHIFT 16
68*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
69*7c478bd9Sstevel@tonic-gate 
70*7c478bd9Sstevel@tonic-gate /* required by termio.h and VCEOF/VCEOL */
71*7c478bd9Sstevel@tonic-gate #define	_NCC	8
72*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
73*7c478bd9Sstevel@tonic-gate #define	NCC	_NCC
74*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
75*7c478bd9Sstevel@tonic-gate 
76*7c478bd9Sstevel@tonic-gate /* some defines required by POSIX */
77*7c478bd9Sstevel@tonic-gate #define	NCCS	19
78*7c478bd9Sstevel@tonic-gate 
79*7c478bd9Sstevel@tonic-gate /*
80*7c478bd9Sstevel@tonic-gate  * types defined by POSIX. These are better off in types.h, but
81*7c478bd9Sstevel@tonic-gate  * the standard says that they have to be in termios.h.
82*7c478bd9Sstevel@tonic-gate  */
83*7c478bd9Sstevel@tonic-gate typedef unsigned int tcflag_t;
84*7c478bd9Sstevel@tonic-gate typedef unsigned char cc_t;
85*7c478bd9Sstevel@tonic-gate typedef unsigned int speed_t;
86*7c478bd9Sstevel@tonic-gate 
87*7c478bd9Sstevel@tonic-gate /*
88*7c478bd9Sstevel@tonic-gate  * Ioctl control packet
89*7c478bd9Sstevel@tonic-gate  */
90*7c478bd9Sstevel@tonic-gate struct termios {
91*7c478bd9Sstevel@tonic-gate 	tcflag_t	c_iflag;	/* input modes */
92*7c478bd9Sstevel@tonic-gate 	tcflag_t	c_oflag;	/* output modes */
93*7c478bd9Sstevel@tonic-gate 	tcflag_t	c_cflag;	/* control modes */
94*7c478bd9Sstevel@tonic-gate 	tcflag_t	c_lflag;	/* line discipline modes */
95*7c478bd9Sstevel@tonic-gate 	cc_t		c_cc[NCCS];	/* control chars */
96*7c478bd9Sstevel@tonic-gate };
97*7c478bd9Sstevel@tonic-gate 
98*7c478bd9Sstevel@tonic-gate /*
99*7c478bd9Sstevel@tonic-gate  * POSIX termios functions
100*7c478bd9Sstevel@tonic-gate  * These functions get mapped into ioctls.
101*7c478bd9Sstevel@tonic-gate  */
102*7c478bd9Sstevel@tonic-gate 
103*7c478bd9Sstevel@tonic-gate #ifndef _KERNEL
104*7c478bd9Sstevel@tonic-gate 
105*7c478bd9Sstevel@tonic-gate #if defined(__STDC__)
106*7c478bd9Sstevel@tonic-gate 
107*7c478bd9Sstevel@tonic-gate extern speed_t cfgetospeed(const struct termios *);
108*7c478bd9Sstevel@tonic-gate extern int cfsetospeed(struct termios *, speed_t);
109*7c478bd9Sstevel@tonic-gate extern speed_t cfgetispeed(const struct termios *);
110*7c478bd9Sstevel@tonic-gate extern int cfsetispeed(struct termios *, speed_t);
111*7c478bd9Sstevel@tonic-gate extern int tcgetattr(int, struct termios *);
112*7c478bd9Sstevel@tonic-gate extern int tcsetattr(int, int, const struct termios *);
113*7c478bd9Sstevel@tonic-gate extern int tcsendbreak(int, int);
114*7c478bd9Sstevel@tonic-gate extern int tcdrain(int);
115*7c478bd9Sstevel@tonic-gate extern int tcflush(int, int);
116*7c478bd9Sstevel@tonic-gate extern int tcflow(int, int);
117*7c478bd9Sstevel@tonic-gate 
118*7c478bd9Sstevel@tonic-gate #else
119*7c478bd9Sstevel@tonic-gate 
120*7c478bd9Sstevel@tonic-gate extern speed_t cfgetospeed();
121*7c478bd9Sstevel@tonic-gate extern int cfsetospeed();
122*7c478bd9Sstevel@tonic-gate extern speed_t cfgetispeed();
123*7c478bd9Sstevel@tonic-gate extern int cfsetispeed();
124*7c478bd9Sstevel@tonic-gate extern int tcgetattr();
125*7c478bd9Sstevel@tonic-gate extern int tcsetattr();
126*7c478bd9Sstevel@tonic-gate extern int tcsendbreak();
127*7c478bd9Sstevel@tonic-gate extern int tcdrain();
128*7c478bd9Sstevel@tonic-gate extern int tcflush();
129*7c478bd9Sstevel@tonic-gate extern int tcflow();
130*7c478bd9Sstevel@tonic-gate 
131*7c478bd9Sstevel@tonic-gate #endif /* __STDC__ */
132*7c478bd9Sstevel@tonic-gate 
133*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) || defined(__EXTENSIONS__)
134*7c478bd9Sstevel@tonic-gate 
135*7c478bd9Sstevel@tonic-gate #if defined(__STDC__)
136*7c478bd9Sstevel@tonic-gate extern pid_t tcgetsid(int);
137*7c478bd9Sstevel@tonic-gate #else
138*7c478bd9Sstevel@tonic-gate extern pid_t tcgetsid();
139*7c478bd9Sstevel@tonic-gate #endif /* __STDC__ */
140*7c478bd9Sstevel@tonic-gate 
141*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(_XPG4_2) ... */
142*7c478bd9Sstevel@tonic-gate 
143*7c478bd9Sstevel@tonic-gate #endif
144*7c478bd9Sstevel@tonic-gate 
145*7c478bd9Sstevel@tonic-gate /* control characters */
146*7c478bd9Sstevel@tonic-gate #define	VINTR	0
147*7c478bd9Sstevel@tonic-gate #define	VQUIT	1
148*7c478bd9Sstevel@tonic-gate #define	VERASE	2
149*7c478bd9Sstevel@tonic-gate #define	VKILL	3
150*7c478bd9Sstevel@tonic-gate #define	VEOF	4
151*7c478bd9Sstevel@tonic-gate #define	VEOL	5
152*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
153*7c478bd9Sstevel@tonic-gate #define	VEOL2	6
154*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
155*7c478bd9Sstevel@tonic-gate #define	VMIN	4
156*7c478bd9Sstevel@tonic-gate #define	VTIME	5
157*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
158*7c478bd9Sstevel@tonic-gate #define	VSWTCH	7
159*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
160*7c478bd9Sstevel@tonic-gate #define	VSTART		8
161*7c478bd9Sstevel@tonic-gate #define	VSTOP		9
162*7c478bd9Sstevel@tonic-gate #define	VSUSP		10
163*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
164*7c478bd9Sstevel@tonic-gate #define	VDSUSP		11
165*7c478bd9Sstevel@tonic-gate #define	VREPRINT	12
166*7c478bd9Sstevel@tonic-gate #define	VDISCARD	13
167*7c478bd9Sstevel@tonic-gate #define	VWERASE		14
168*7c478bd9Sstevel@tonic-gate #define	VLNEXT		15
169*7c478bd9Sstevel@tonic-gate /* 16 thru 19 reserved for future use */
170*7c478bd9Sstevel@tonic-gate 
171*7c478bd9Sstevel@tonic-gate /*
172*7c478bd9Sstevel@tonic-gate  * control characters form Xenix termio.h
173*7c478bd9Sstevel@tonic-gate  */
174*7c478bd9Sstevel@tonic-gate #define	VCEOF	NCC		/* RESERVED true EOF char (V7 compatability) */
175*7c478bd9Sstevel@tonic-gate #define	VCEOL	(NCC + 1)	/* RESERVED true EOL char */
176*7c478bd9Sstevel@tonic-gate 
177*7c478bd9Sstevel@tonic-gate #define	CNUL	0
178*7c478bd9Sstevel@tonic-gate #define	CDEL	0177
179*7c478bd9Sstevel@tonic-gate 
180*7c478bd9Sstevel@tonic-gate /* S5 default control chars */
181*7c478bd9Sstevel@tonic-gate /* CINTR, CERASE and CKILL modified to SunOS traditional values */
182*7c478bd9Sstevel@tonic-gate #define	CESC	'\\'
183*7c478bd9Sstevel@tonic-gate #define	CINTR	CTRL('c')
184*7c478bd9Sstevel@tonic-gate #define	CQUIT	034	/* FS, cntl | */
185*7c478bd9Sstevel@tonic-gate #define	CERASE	0177	/* DEL */
186*7c478bd9Sstevel@tonic-gate #define	CKILL	CTRL('u')
187*7c478bd9Sstevel@tonic-gate #define	CEOT	04
188*7c478bd9Sstevel@tonic-gate #define	CEOL	0
189*7c478bd9Sstevel@tonic-gate #define	CEOL2	0
190*7c478bd9Sstevel@tonic-gate #define	CEOF	04	/* cntl d */
191*7c478bd9Sstevel@tonic-gate #define	CSTART	021	/* cntl q */
192*7c478bd9Sstevel@tonic-gate #define	CSTOP	023	/* cntl s */
193*7c478bd9Sstevel@tonic-gate #define	CSWTCH	032	/* cntl z */
194*7c478bd9Sstevel@tonic-gate #define	CNSWTCH	0
195*7c478bd9Sstevel@tonic-gate #define	CSUSP	CTRL('z')
196*7c478bd9Sstevel@tonic-gate #define	CDSUSP	CTRL('y')
197*7c478bd9Sstevel@tonic-gate #define	CRPRNT	CTRL('r')
198*7c478bd9Sstevel@tonic-gate #define	CFLUSH	CTRL('o')
199*7c478bd9Sstevel@tonic-gate #define	CWERASE	CTRL('w')
200*7c478bd9Sstevel@tonic-gate #define	CLNEXT	CTRL('v')
201*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
202*7c478bd9Sstevel@tonic-gate 
203*7c478bd9Sstevel@tonic-gate 
204*7c478bd9Sstevel@tonic-gate /* input modes */
205*7c478bd9Sstevel@tonic-gate #define	IGNBRK	0000001
206*7c478bd9Sstevel@tonic-gate #define	BRKINT	0000002
207*7c478bd9Sstevel@tonic-gate #define	IGNPAR	0000004
208*7c478bd9Sstevel@tonic-gate #define	PARMRK	0000010
209*7c478bd9Sstevel@tonic-gate #define	INPCK	0000020
210*7c478bd9Sstevel@tonic-gate #define	ISTRIP	0000040
211*7c478bd9Sstevel@tonic-gate #define	INLCR	0000100
212*7c478bd9Sstevel@tonic-gate #define	IGNCR	0000200
213*7c478bd9Sstevel@tonic-gate #define	ICRNL	0000400
214*7c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || \
215*7c478bd9Sstevel@tonic-gate 	(defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
216*7c478bd9Sstevel@tonic-gate 	defined(__EXTENSIONS__)
217*7c478bd9Sstevel@tonic-gate #define	IUCLC	0001000
218*7c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
219*7c478bd9Sstevel@tonic-gate #define	IXON	0002000
220*7c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
221*7c478bd9Sstevel@tonic-gate 	defined(__EXTENSIONS__)
222*7c478bd9Sstevel@tonic-gate #define	IXANY	0004000
223*7c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
224*7c478bd9Sstevel@tonic-gate #define	IXOFF	0010000
225*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
226*7c478bd9Sstevel@tonic-gate #define	IMAXBEL 0020000
227*7c478bd9Sstevel@tonic-gate #define	DOSMODE	0100000  /* for 386 compatibility */
228*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
229*7c478bd9Sstevel@tonic-gate 
230*7c478bd9Sstevel@tonic-gate /* output modes */
231*7c478bd9Sstevel@tonic-gate #define	OPOST	0000001
232*7c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
233*7c478bd9Sstevel@tonic-gate 	defined(__EXTENSIONS__)
234*7c478bd9Sstevel@tonic-gate #if !defined(_XPG6) || defined(__EXTENSIONS__)
235*7c478bd9Sstevel@tonic-gate #define	OLCUC	0000002
236*7c478bd9Sstevel@tonic-gate #endif
237*7c478bd9Sstevel@tonic-gate #define	ONLCR	0000004
238*7c478bd9Sstevel@tonic-gate #define	OCRNL	0000010
239*7c478bd9Sstevel@tonic-gate #define	ONOCR	0000020
240*7c478bd9Sstevel@tonic-gate #define	ONLRET	0000040
241*7c478bd9Sstevel@tonic-gate #define	OFILL	0000100
242*7c478bd9Sstevel@tonic-gate #define	OFDEL	0000200
243*7c478bd9Sstevel@tonic-gate #define	NLDLY	0000400
244*7c478bd9Sstevel@tonic-gate #define	NL0	0
245*7c478bd9Sstevel@tonic-gate #define	NL1	0000400
246*7c478bd9Sstevel@tonic-gate #define	CRDLY	0003000
247*7c478bd9Sstevel@tonic-gate #define	CR0	0
248*7c478bd9Sstevel@tonic-gate #define	CR1	0001000
249*7c478bd9Sstevel@tonic-gate #define	CR2	0002000
250*7c478bd9Sstevel@tonic-gate #define	CR3	0003000
251*7c478bd9Sstevel@tonic-gate #define	TABDLY	0014000
252*7c478bd9Sstevel@tonic-gate #define	TAB0	0
253*7c478bd9Sstevel@tonic-gate #define	TAB1	0004000
254*7c478bd9Sstevel@tonic-gate #define	TAB2	0010000
255*7c478bd9Sstevel@tonic-gate #define	TAB3	0014000
256*7c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
257*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
258*7c478bd9Sstevel@tonic-gate #define	XTABS	0014000
259*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
260*7c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
261*7c478bd9Sstevel@tonic-gate 	defined(__EXTENSIONS__)
262*7c478bd9Sstevel@tonic-gate #define	BSDLY	0020000
263*7c478bd9Sstevel@tonic-gate #define	BS0	0
264*7c478bd9Sstevel@tonic-gate #define	BS1	0020000
265*7c478bd9Sstevel@tonic-gate #define	VTDLY	0040000
266*7c478bd9Sstevel@tonic-gate #define	VT0	0
267*7c478bd9Sstevel@tonic-gate #define	VT1	0040000
268*7c478bd9Sstevel@tonic-gate #define	FFDLY	0100000
269*7c478bd9Sstevel@tonic-gate #define	FF0	0
270*7c478bd9Sstevel@tonic-gate #define	FF1	0100000
271*7c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
272*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
273*7c478bd9Sstevel@tonic-gate #define	PAGEOUT 0200000
274*7c478bd9Sstevel@tonic-gate #define	WRAP	0400000
275*7c478bd9Sstevel@tonic-gate 
276*7c478bd9Sstevel@tonic-gate /* control modes */
277*7c478bd9Sstevel@tonic-gate #define	CBAUD	0000017
278*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
279*7c478bd9Sstevel@tonic-gate #define	CSIZE	0000060
280*7c478bd9Sstevel@tonic-gate #define	CS5	0
281*7c478bd9Sstevel@tonic-gate #define	CS6	0000020
282*7c478bd9Sstevel@tonic-gate #define	CS7	0000040
283*7c478bd9Sstevel@tonic-gate #define	CS8	0000060
284*7c478bd9Sstevel@tonic-gate #define	CSTOPB	0000100
285*7c478bd9Sstevel@tonic-gate #define	CREAD	0000200
286*7c478bd9Sstevel@tonic-gate #define	PARENB	0000400
287*7c478bd9Sstevel@tonic-gate #define	PARODD	0001000
288*7c478bd9Sstevel@tonic-gate #define	HUPCL	0002000
289*7c478bd9Sstevel@tonic-gate #define	CLOCAL	0004000
290*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
291*7c478bd9Sstevel@tonic-gate #define	RCV1EN	0010000
292*7c478bd9Sstevel@tonic-gate #define	XMT1EN	0020000
293*7c478bd9Sstevel@tonic-gate #define	LOBLK	0040000
294*7c478bd9Sstevel@tonic-gate #define	XCLUDE	0100000		/* *V7* exclusive use coming fron XENIX */
295*7c478bd9Sstevel@tonic-gate #define	CRTSXOFF 010000000000
296*7c478bd9Sstevel@tonic-gate #define	CRTSCTS	020000000000
297*7c478bd9Sstevel@tonic-gate #define	CIBAUD	03600000
298*7c478bd9Sstevel@tonic-gate #define	PAREXT	04000000
299*7c478bd9Sstevel@tonic-gate #define	CBAUDEXT 010000000
300*7c478bd9Sstevel@tonic-gate #define	CIBAUDEXT 020000000
301*7c478bd9Sstevel@tonic-gate 
302*7c478bd9Sstevel@tonic-gate /*
303*7c478bd9Sstevel@tonic-gate  * 4.4BSD hardware flow control flags
304*7c478bd9Sstevel@tonic-gate  */
305*7c478bd9Sstevel@tonic-gate #define	CRTS_IFLOW 010000000000
306*7c478bd9Sstevel@tonic-gate #define	CCTS_OFLOW 020000000000
307*7c478bd9Sstevel@tonic-gate 
308*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
309*7c478bd9Sstevel@tonic-gate 
310*7c478bd9Sstevel@tonic-gate /* line discipline 0 modes */
311*7c478bd9Sstevel@tonic-gate #define	ISIG	0000001
312*7c478bd9Sstevel@tonic-gate #define	ICANON	0000002
313*7c478bd9Sstevel@tonic-gate #if !defined(_POSIX_C_SOURCE) || \
314*7c478bd9Sstevel@tonic-gate 	(defined(_XOPEN_SOURCE) && !defined(_XPG6)) || \
315*7c478bd9Sstevel@tonic-gate 	defined(__EXTENSIONS__)
316*7c478bd9Sstevel@tonic-gate #define	XCASE	0000004
317*7c478bd9Sstevel@tonic-gate #endif /* !defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE)... */
318*7c478bd9Sstevel@tonic-gate #define	ECHO	0000010
319*7c478bd9Sstevel@tonic-gate #define	ECHOE	0000020
320*7c478bd9Sstevel@tonic-gate #define	ECHOK	0000040
321*7c478bd9Sstevel@tonic-gate #define	ECHONL	0000100
322*7c478bd9Sstevel@tonic-gate #define	NOFLSH	0000200
323*7c478bd9Sstevel@tonic-gate #define	TOSTOP	0000400
324*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
325*7c478bd9Sstevel@tonic-gate #define	ECHOCTL	0001000
326*7c478bd9Sstevel@tonic-gate #define	ECHOPRT	0002000
327*7c478bd9Sstevel@tonic-gate #define	ECHOKE	0004000
328*7c478bd9Sstevel@tonic-gate #define	DEFECHO	0010000
329*7c478bd9Sstevel@tonic-gate #define	FLUSHO	0020000
330*7c478bd9Sstevel@tonic-gate #define	PENDIN	0040000
331*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
332*7c478bd9Sstevel@tonic-gate 
333*7c478bd9Sstevel@tonic-gate #define	IEXTEN	0100000  /* POSIX flag - enable POSIX extensions */
334*7c478bd9Sstevel@tonic-gate #define	_TIOC	('T'<<8)
335*7c478bd9Sstevel@tonic-gate 
336*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
337*7c478bd9Sstevel@tonic-gate 
338*7c478bd9Sstevel@tonic-gate #define	TIOC	_TIOC
339*7c478bd9Sstevel@tonic-gate 
340*7c478bd9Sstevel@tonic-gate #define	TCGETA	(_TIOC|1)
341*7c478bd9Sstevel@tonic-gate #define	TCSETA	(_TIOC|2)
342*7c478bd9Sstevel@tonic-gate #define	TCSETAW	(_TIOC|3)
343*7c478bd9Sstevel@tonic-gate #define	TCSETAF	(_TIOC|4)
344*7c478bd9Sstevel@tonic-gate #define	TCSBRK	(_TIOC|5)
345*7c478bd9Sstevel@tonic-gate #define	TCXONC	(_TIOC|6)
346*7c478bd9Sstevel@tonic-gate #define	TCFLSH	(_TIOC|7)
347*7c478bd9Sstevel@tonic-gate 
348*7c478bd9Sstevel@tonic-gate /* Slots reserved for 386/XENIX compatibility - keyboard control */
349*7c478bd9Sstevel@tonic-gate 
350*7c478bd9Sstevel@tonic-gate #define	TIOCKBON	(_TIOC|8)
351*7c478bd9Sstevel@tonic-gate #define	TIOCKBOF 	(_TIOC|9)
352*7c478bd9Sstevel@tonic-gate #define	KBENABLED 	(_TIOC|10)
353*7c478bd9Sstevel@tonic-gate 
354*7c478bd9Sstevel@tonic-gate #ifndef IOCTYPE
355*7c478bd9Sstevel@tonic-gate #define	IOCTYPE	0xff00
356*7c478bd9Sstevel@tonic-gate #endif
357*7c478bd9Sstevel@tonic-gate 
358*7c478bd9Sstevel@tonic-gate #define	TCDSET	(_TIOC|32)
359*7c478bd9Sstevel@tonic-gate #define	RTS_TOG	(_TIOC|33)	/* 386 - "RTS" toggle define 8A1 protocol */
360*7c478bd9Sstevel@tonic-gate 
361*7c478bd9Sstevel@tonic-gate #define	TIOCGWINSZ (_TIOC|104)
362*7c478bd9Sstevel@tonic-gate #define	TIOCSWINSZ (_TIOC|103)
363*7c478bd9Sstevel@tonic-gate 
364*7c478bd9Sstevel@tonic-gate /*
365*7c478bd9Sstevel@tonic-gate  * Softcarrier ioctls
366*7c478bd9Sstevel@tonic-gate  */
367*7c478bd9Sstevel@tonic-gate #define	TIOCGSOFTCAR (_TIOC|105)
368*7c478bd9Sstevel@tonic-gate #define	TIOCSSOFTCAR (_TIOC|106)
369*7c478bd9Sstevel@tonic-gate 
370*7c478bd9Sstevel@tonic-gate 
371*7c478bd9Sstevel@tonic-gate /* termios ioctls */
372*7c478bd9Sstevel@tonic-gate 
373*7c478bd9Sstevel@tonic-gate #define	TCGETS		(_TIOC|13)
374*7c478bd9Sstevel@tonic-gate #define	TCSETS		(_TIOC|14)
375*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
376*7c478bd9Sstevel@tonic-gate #define	TCSANOW		(_TIOC|14) /* same as TCSETS */
377*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
378*7c478bd9Sstevel@tonic-gate #define	TCSETSW		(_TIOC|15)
379*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
380*7c478bd9Sstevel@tonic-gate #define	TCSADRAIN	(_TIOC|15) /* same as TCSETSW */
381*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
382*7c478bd9Sstevel@tonic-gate #define	TCSETSF		(_TIOC|16)
383*7c478bd9Sstevel@tonic-gate 
384*7c478bd9Sstevel@tonic-gate /*
385*7c478bd9Sstevel@tonic-gate  * NTP PPS ioctls
386*7c478bd9Sstevel@tonic-gate  */
387*7c478bd9Sstevel@tonic-gate #define	TIOCGPPS	(_TIOC|125)
388*7c478bd9Sstevel@tonic-gate #define	TIOCSPPS	(_TIOC|126)
389*7c478bd9Sstevel@tonic-gate #define	TIOCGPPSEV	(_TIOC|127)
390*7c478bd9Sstevel@tonic-gate 
391*7c478bd9Sstevel@tonic-gate /* Argument filled in by TIOCGPPSEV */
392*7c478bd9Sstevel@tonic-gate struct ppsclockev {
393*7c478bd9Sstevel@tonic-gate 	struct timeval tv;
394*7c478bd9Sstevel@tonic-gate 	uint_t serial;
395*7c478bd9Sstevel@tonic-gate };
396*7c478bd9Sstevel@tonic-gate 
397*7c478bd9Sstevel@tonic-gate #if defined(_SYSCALL32)
398*7c478bd9Sstevel@tonic-gate struct ppsclockev32 {
399*7c478bd9Sstevel@tonic-gate 	struct timeval32 tv;
400*7c478bd9Sstevel@tonic-gate 	uint32_t serial;
401*7c478bd9Sstevel@tonic-gate };
402*7c478bd9Sstevel@tonic-gate #endif /* _SYSCALL32 */
403*7c478bd9Sstevel@tonic-gate 
404*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
405*7c478bd9Sstevel@tonic-gate 
406*7c478bd9Sstevel@tonic-gate #define	TCSAFLUSH	(_TIOC|16) /* same as TCSETSF */
407*7c478bd9Sstevel@tonic-gate 
408*7c478bd9Sstevel@tonic-gate /* termios option flags */
409*7c478bd9Sstevel@tonic-gate 
410*7c478bd9Sstevel@tonic-gate #define	TCIFLUSH	0  /* flush data received but not read */
411*7c478bd9Sstevel@tonic-gate #define	TCOFLUSH	1  /* flush data written but not transmitted */
412*7c478bd9Sstevel@tonic-gate #define	TCIOFLUSH	2  /* flush both data both input and output queues */
413*7c478bd9Sstevel@tonic-gate 
414*7c478bd9Sstevel@tonic-gate #define	TCOOFF		0  /* suspend output */
415*7c478bd9Sstevel@tonic-gate #define	TCOON		1  /* restart suspended output */
416*7c478bd9Sstevel@tonic-gate #define	TCIOFF		2  /* suspend input */
417*7c478bd9Sstevel@tonic-gate #define	TCION		3  /* restart suspended input */
418*7c478bd9Sstevel@tonic-gate 
419*7c478bd9Sstevel@tonic-gate /* TIOC ioctls for BSD, ptys, job control and modem control */
420*7c478bd9Sstevel@tonic-gate 
421*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
422*7c478bd9Sstevel@tonic-gate #define	tIOC	('t'<<8)
423*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
424*7c478bd9Sstevel@tonic-gate 
425*7c478bd9Sstevel@tonic-gate /* Slots for 386/XENIX compatibility */
426*7c478bd9Sstevel@tonic-gate /* BSD includes these ioctls in ttold.h */
427*7c478bd9Sstevel@tonic-gate 
428*7c478bd9Sstevel@tonic-gate #ifndef _SYS_TTOLD_H
429*7c478bd9Sstevel@tonic-gate 
430*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
431*7c478bd9Sstevel@tonic-gate #define	TIOCGETD	(tIOC|0)
432*7c478bd9Sstevel@tonic-gate #define	TIOCSETD	(tIOC|1)
433*7c478bd9Sstevel@tonic-gate #define	TIOCHPCL	(tIOC|2)
434*7c478bd9Sstevel@tonic-gate #define	TIOCGETP	(tIOC|8)
435*7c478bd9Sstevel@tonic-gate #define	TIOCSETP  	(tIOC|9)
436*7c478bd9Sstevel@tonic-gate #define	TIOCSETN	(tIOC|10)
437*7c478bd9Sstevel@tonic-gate #define	TIOCEXCL	(tIOC|13)
438*7c478bd9Sstevel@tonic-gate #define	TIOCNXCL	(tIOC|14)
439*7c478bd9Sstevel@tonic-gate #define	TIOCFLUSH	(tIOC|16)
440*7c478bd9Sstevel@tonic-gate #define	TIOCSETC	(tIOC|17)
441*7c478bd9Sstevel@tonic-gate #define	TIOCGETC	(tIOC|18)
442*7c478bd9Sstevel@tonic-gate /*
443*7c478bd9Sstevel@tonic-gate  * BSD ioctls that are not the same as XENIX are included here.
444*7c478bd9Sstevel@tonic-gate  * There are also some relevant ioctls from SUN/BSD sys/ttycom.h
445*7c478bd9Sstevel@tonic-gate  * BSD pty ioctls like TIOCPKT are not supported in SVR4.
446*7c478bd9Sstevel@tonic-gate  */
447*7c478bd9Sstevel@tonic-gate 
448*7c478bd9Sstevel@tonic-gate #define	TIOCLBIS	(tIOC|127)	/* bis local mode bits */
449*7c478bd9Sstevel@tonic-gate #define	TIOCLBIC	(tIOC|126)	/* bic local mode bits */
450*7c478bd9Sstevel@tonic-gate #define	TIOCLSET	(tIOC|125)	/* set entire local mode word */
451*7c478bd9Sstevel@tonic-gate #define	TIOCLGET	(tIOC|124)	/* get local modes */
452*7c478bd9Sstevel@tonic-gate #define	TIOCSBRK	(tIOC|123)	/* set break bit */
453*7c478bd9Sstevel@tonic-gate #define	TIOCCBRK	(tIOC|122)	/* clear break bit */
454*7c478bd9Sstevel@tonic-gate #define	TIOCSDTR	(tIOC|121)	/* set data terminal ready */
455*7c478bd9Sstevel@tonic-gate #define	TIOCCDTR	(tIOC|120)	/* clear data terminal ready */
456*7c478bd9Sstevel@tonic-gate #define	TIOCSLTC	(tIOC|117)	/* set local special chars */
457*7c478bd9Sstevel@tonic-gate #define	TIOCGLTC	(tIOC|116)	/* get local special chars */
458*7c478bd9Sstevel@tonic-gate #define	TIOCOUTQ	(tIOC|115)	/* driver output queue size */
459*7c478bd9Sstevel@tonic-gate #define	TIOCNOTTY	(tIOC|113)	/* void tty association */
460*7c478bd9Sstevel@tonic-gate #define	TIOCSTOP	(tIOC|111)	/* stop output, like ^S */
461*7c478bd9Sstevel@tonic-gate #define	TIOCSTART	(tIOC|110)	/* start output, like ^Q */
462*7c478bd9Sstevel@tonic-gate #define	TIOCSILOOP	(tIOC|109)	/* private to Sun; do not use */
463*7c478bd9Sstevel@tonic-gate 
464*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
465*7c478bd9Sstevel@tonic-gate 
466*7c478bd9Sstevel@tonic-gate #endif /* end _SYS_TTOLD_H */
467*7c478bd9Sstevel@tonic-gate 
468*7c478bd9Sstevel@tonic-gate /* POSIX job control ioctls */
469*7c478bd9Sstevel@tonic-gate 
470*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
471*7c478bd9Sstevel@tonic-gate #define	TIOCGPGRP	(tIOC|20)	/* get pgrp of tty */
472*7c478bd9Sstevel@tonic-gate #define	TIOCSPGRP	(tIOC|21)	/* set pgrp of tty */
473*7c478bd9Sstevel@tonic-gate #define	TIOCGSID	(tIOC|22)	/* get session id on ctty */
474*7c478bd9Sstevel@tonic-gate 
475*7c478bd9Sstevel@tonic-gate /* Miscellaneous */
476*7c478bd9Sstevel@tonic-gate #define	TIOCSTI		(tIOC|23)	/* simulate terminal input */
477*7c478bd9Sstevel@tonic-gate 
478*7c478bd9Sstevel@tonic-gate /* Modem control */
479*7c478bd9Sstevel@tonic-gate #define	TIOCMSET	(tIOC|26)	/* set all modem bits */
480*7c478bd9Sstevel@tonic-gate #define	TIOCMBIS	(tIOC|27)	/* bis modem bits */
481*7c478bd9Sstevel@tonic-gate #define	TIOCMBIC	(tIOC|28)	/* bic modem bits */
482*7c478bd9Sstevel@tonic-gate #define	TIOCMGET	(tIOC|29)	/* get all modem bits */
483*7c478bd9Sstevel@tonic-gate #define		TIOCM_LE	0001		/* line enable */
484*7c478bd9Sstevel@tonic-gate #define		TIOCM_DTR	0002		/* data terminal ready */
485*7c478bd9Sstevel@tonic-gate #define		TIOCM_RTS	0004		/* request to send */
486*7c478bd9Sstevel@tonic-gate #define		TIOCM_ST	0010		/* secondary transmit */
487*7c478bd9Sstevel@tonic-gate #define		TIOCM_SR	0020		/* secondary receive */
488*7c478bd9Sstevel@tonic-gate #define		TIOCM_CTS	0040		/* clear to send */
489*7c478bd9Sstevel@tonic-gate #define		TIOCM_CAR	0100		/* carrier detect */
490*7c478bd9Sstevel@tonic-gate #define		TIOCM_CD	TIOCM_CAR
491*7c478bd9Sstevel@tonic-gate #define		TIOCM_RNG	0200		/* ring */
492*7c478bd9Sstevel@tonic-gate #define		TIOCM_RI	TIOCM_RNG
493*7c478bd9Sstevel@tonic-gate #define		TIOCM_DSR	0400		/* data set ready */
494*7c478bd9Sstevel@tonic-gate 
495*7c478bd9Sstevel@tonic-gate /* pseudo-tty */
496*7c478bd9Sstevel@tonic-gate 
497*7c478bd9Sstevel@tonic-gate #define	TIOCREMOTE	(tIOC|30)	/* remote input editing */
498*7c478bd9Sstevel@tonic-gate #define	TIOCSIGNAL	(tIOC|31)	/* pty: send signal to slave */
499*7c478bd9Sstevel@tonic-gate 
500*7c478bd9Sstevel@tonic-gate 
501*7c478bd9Sstevel@tonic-gate /* Some more 386 xenix stuff */
502*7c478bd9Sstevel@tonic-gate 
503*7c478bd9Sstevel@tonic-gate #define	LDIOC	('D'<<8)
504*7c478bd9Sstevel@tonic-gate 
505*7c478bd9Sstevel@tonic-gate #define	LDOPEN	(LDIOC|0)
506*7c478bd9Sstevel@tonic-gate #define	LDCLOSE	(LDIOC|1)
507*7c478bd9Sstevel@tonic-gate #define	LDCHG	(LDIOC|2)
508*7c478bd9Sstevel@tonic-gate #define	LDGETT	(LDIOC|8)
509*7c478bd9Sstevel@tonic-gate #define	LDSETT	(LDIOC|9)
510*7c478bd9Sstevel@tonic-gate 
511*7c478bd9Sstevel@tonic-gate /* Slots for 386 compatibility */
512*7c478bd9Sstevel@tonic-gate 
513*7c478bd9Sstevel@tonic-gate #define	LDSMAP	(LDIOC|110)
514*7c478bd9Sstevel@tonic-gate #define	LDGMAP	(LDIOC|111)
515*7c478bd9Sstevel@tonic-gate #define	LDNMAP	(LDIOC|112)
516*7c478bd9Sstevel@tonic-gate #define	LDEMAP	(LDIOC|113)
517*7c478bd9Sstevel@tonic-gate #define	LDDMAP	(LDIOC|114)
518*7c478bd9Sstevel@tonic-gate 
519*7c478bd9Sstevel@tonic-gate /*
520*7c478bd9Sstevel@tonic-gate  * These are retained for 386/XENIX compatibility.
521*7c478bd9Sstevel@tonic-gate  */
522*7c478bd9Sstevel@tonic-gate 
523*7c478bd9Sstevel@tonic-gate #define	DIOC		('d'<<8)
524*7c478bd9Sstevel@tonic-gate #define	DIOCGETP	(DIOC|8)		/* V7 */
525*7c478bd9Sstevel@tonic-gate #define	DIOCSETP	(DIOC|9)		/* V7 */
526*7c478bd9Sstevel@tonic-gate 
527*7c478bd9Sstevel@tonic-gate /*
528*7c478bd9Sstevel@tonic-gate  * Returns a non-zero value if there
529*7c478bd9Sstevel@tonic-gate  * are characters in the input queue.
530*7c478bd9Sstevel@tonic-gate  *
531*7c478bd9Sstevel@tonic-gate  * XXX - somebody is confused here.  V7 had no such "ioctl", although XENIX may
532*7c478bd9Sstevel@tonic-gate  * have added it; 4BSD had FIONREAD, which returned the number of characters
533*7c478bd9Sstevel@tonic-gate  * waiting, and was supposed to work on all descriptors (i.e., every driver
534*7c478bd9Sstevel@tonic-gate  * should make a stab at implementing it).
535*7c478bd9Sstevel@tonic-gate  */
536*7c478bd9Sstevel@tonic-gate #define	FIORDCHK	(('f'<<8)|3)		/* V7 */
537*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
538*7c478bd9Sstevel@tonic-gate 
539*7c478bd9Sstevel@tonic-gate /*
540*7c478bd9Sstevel@tonic-gate  * Speeds
541*7c478bd9Sstevel@tonic-gate  */
542*7c478bd9Sstevel@tonic-gate #define	B0	0
543*7c478bd9Sstevel@tonic-gate #define	B50	1
544*7c478bd9Sstevel@tonic-gate #define	B75	2
545*7c478bd9Sstevel@tonic-gate #define	B110	3
546*7c478bd9Sstevel@tonic-gate #define	B134	4
547*7c478bd9Sstevel@tonic-gate #define	B150	5
548*7c478bd9Sstevel@tonic-gate #define	B200	6
549*7c478bd9Sstevel@tonic-gate #define	B300	7
550*7c478bd9Sstevel@tonic-gate #define	B600	8
551*7c478bd9Sstevel@tonic-gate #define	B1200	9
552*7c478bd9Sstevel@tonic-gate #define	B1800	10
553*7c478bd9Sstevel@tonic-gate #define	B2400	11
554*7c478bd9Sstevel@tonic-gate #define	B4800	12
555*7c478bd9Sstevel@tonic-gate #define	B9600	13
556*7c478bd9Sstevel@tonic-gate #define	B19200	14
557*7c478bd9Sstevel@tonic-gate #define	B38400	15
558*7c478bd9Sstevel@tonic-gate #define	B57600	16
559*7c478bd9Sstevel@tonic-gate #define	B76800	17
560*7c478bd9Sstevel@tonic-gate #define	B115200	18
561*7c478bd9Sstevel@tonic-gate #define	B153600	19
562*7c478bd9Sstevel@tonic-gate #define	B230400	20
563*7c478bd9Sstevel@tonic-gate #define	B307200	21
564*7c478bd9Sstevel@tonic-gate #define	B460800	22
565*7c478bd9Sstevel@tonic-gate 
566*7c478bd9Sstevel@tonic-gate #ifndef _SYS_TTOLD_H
567*7c478bd9Sstevel@tonic-gate 
568*7c478bd9Sstevel@tonic-gate #if !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__)
569*7c478bd9Sstevel@tonic-gate /* Windowing structure to support JWINSIZE/TIOCSWINSZ/TIOCGWINSZ */
570*7c478bd9Sstevel@tonic-gate struct winsize {
571*7c478bd9Sstevel@tonic-gate 	unsigned short ws_row;	/* rows, in characters */
572*7c478bd9Sstevel@tonic-gate 	unsigned short ws_col;	/* columns, in character */
573*7c478bd9Sstevel@tonic-gate 	unsigned short ws_xpixel;	/* horizontal size, pixels */
574*7c478bd9Sstevel@tonic-gate 	unsigned short ws_ypixel;	/* vertical size, pixels */
575*7c478bd9Sstevel@tonic-gate };
576*7c478bd9Sstevel@tonic-gate #endif /* !defined(__XOPEN_OR_POSIX) || defined(__EXTENSIONS__) */
577*7c478bd9Sstevel@tonic-gate 
578*7c478bd9Sstevel@tonic-gate #endif /* end _SYS_TTOLD_H */
579*7c478bd9Sstevel@tonic-gate 
580*7c478bd9Sstevel@tonic-gate #ifdef	__cplusplus
581*7c478bd9Sstevel@tonic-gate }
582*7c478bd9Sstevel@tonic-gate #endif
583*7c478bd9Sstevel@tonic-gate 
584*7c478bd9Sstevel@tonic-gate #endif	/* _SYS_TERMIOS_H */
585