xref: /illumos-gate/usr/src/uts/common/sys/ttold.h (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*	Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T	*/
23 /*	  All Rights Reserved  	*/
24 
25 /*
26  * University Copyright- Copyright (c) 1982, 1986, 1988
27  * The Regents of the University of California
28  * All Rights Reserved
29  *
30  * University Acknowledgment- Portions of this document are derived from
31  * software developed by the University of California, Berkeley, and its
32  * contributors.
33  */
34 
35 #ifndef _SYS_TTOLD_H
36 #define	_SYS_TTOLD_H
37 
38 #pragma ident	"%Z%%M%	%I%	%E% SMI"
39 
40 #ifdef	__cplusplus
41 extern "C" {
42 #endif
43 
44 /* All the ioctls (BSD, V7, XENIX, S5) defines are in termios.h */
45 /* this file has mostly BSD structures and flags */
46 
47 /* BSD special characters. Structure for TIOCSTC/TIOCGTC */
48 struct tchars {
49 	char	t_intrc;	/* interrupt */
50 	char	t_quitc;	/* quit */
51 	char	t_startc;	/* start output */
52 	char	t_stopc;	/* stop output */
53 	char	t_eofc;		/* end-of-file */
54 	char	t_brkc;		/* input delimiter (like nl) */
55 };
56 
57 /* note xenix defines tchars as tc */
58 struct tc {
59 	char	t_intrc;	/* interrupt */
60 	char	t_quitc;	/* quit */
61 	char	t_startc;	/* start output */
62 	char	t_stopc;	/* stop output */
63 	char	t_eofc;		/* end-of-file */
64 	char	t_brkc;		/* input delimiter (like nl) */
65 };
66 
67 #ifndef _SGTTY_H
68 /*
69  * Structure for TIOCGETP and TIOCSETP ioctls.
70  */
71 
72 /*  sg_flags value changed from short (in SUN/BSD) to int in System V to */
73 /*  match sgtty.h definition */
74 struct	sgttyb {
75 	char	sg_ispeed;		/* input speed */
76 	char	sg_ospeed;		/* output speed */
77 	char	sg_erase;		/* erase character */
78 	char	sg_kill;		/* kill character */
79 	int	sg_flags;		/* mode flags */
80 };
81 
82 /* BSD local special chars. Structure for TIOCSLTC/TIOCGLTC */
83 struct ltchars {
84 	char	t_suspc;	/* stop process signal */
85 	char	t_dsuspc;	/* delayed stop process signal */
86 	char	t_rprntc;	/* reprint line */
87 	char	t_flushc;	/* flush output (toggles) */
88 	char	t_werasc;	/* word erase */
89 	char	t_lnextc;	/* literal next character */
90 };
91 #endif /* _SGTTY_H */
92 
93 /*
94  * 4.3BSD/XENIX tty ioctl commands that are either:
95  *  1) deprecated
96  *  2) not implemented (and never were implemented)
97  *  3) implemented on top of new-style "ioctl"s.
98  */
99 
100 /*
101  * These ioctls are also defined in termios.h.
102  * because XENIX expects to see them in termio.h
103  */
104 
105 #ifndef tIOC
106 #define	tIOC	('t'<<8)
107 #endif
108 
109 #ifndef _SYS_TERMIOS_H
110 /* defined in termios.h also so that all the ioctl codes are visible */
111 
112 #define	TIOCGETD	(tIOC|0)
113 #define	TIOCSETD	(tIOC|1)
114 #ifndef _SGTTY_H
115 #define	TIOCHPCL	(tIOC|2)
116 #define	TIOCGETP	(tIOC|8)
117 #define	TIOCSETP  	(tIOC|9)
118 #endif /* _SGTTY_H */
119 #define	TIOCSETN	(tIOC|10)
120 #ifndef _SGTTY_H
121 #define	TIOCEXCL	(tIOC|13)
122 #define	TIOCNXCL	(tIOC|14)
123 #endif /* _SGTTY_H */
124 #define	TIOCFLUSH	(tIOC|16)
125 #define	TIOCSETC	(tIOC|17)
126 #define	TIOCGETC	(tIOC|18)
127 
128 /* BSD ioctls that are not the same as XENIX */
129 #define	TIOCLBIS	(tIOC|127)	/* bis local mode bits */
130 #define	TIOCLBIC	(tIOC|126)	/* bic local mode bits */
131 #define	TIOCLSET	(tIOC|125)	/* set entire local mode word */
132 #define	TIOCLGET	(tIOC|124)	/* get local modes */
133 #define	TIOCSBRK	(tIOC|123)	/* set break bit */
134 #define	TIOCCBRK	(tIOC|122)	/* clear break bit */
135 #define	TIOCSDTR	(tIOC|121)	/* set data terminal ready */
136 #define	TIOCCDTR	(tIOC|120)	/* clear data terminal ready */
137 #define	TIOCSLTC	(tIOC|117)	/* set local special chars */
138 #define	TIOCGLTC	(tIOC|116)	/* get local special chars */
139 #define	TIOCOUTQ	(tIOC|115)	/* driver output queue size */
140 #define	TIOCNOTTY	(tIOC|113)	/* void tty association */
141 #define	TIOCSTOP	(tIOC|111)	/* stop output, like ^S */
142 #define	TIOCSTART	(tIOC|110)	/* start output, like ^Q */
143 
144 #define	TIOCREMOTE	(tIOC|30)	/* remote input editing */
145 
146 /* windowing ioctls and structure also defined in termios.h */
147 
148 #ifndef	_TIOC
149 #define	_TIOC	('T'<<8)
150 #endif
151 
152 #define	TIOCGWINSZ (_TIOC|104)
153 #define	TIOCSWINSZ (_TIOC|103)
154 
155 /* Windowing structure to support TIOCSWINSZ/TIOCGWINSZ */
156 struct winsize {
157 	unsigned short ws_row;		/* rows, in characters */
158 	unsigned short ws_col;		/* columns, in character */
159 	unsigned short ws_xpixel;	/* horizontal size, pixels */
160 	unsigned short ws_ypixel;	/* vertical size, pixels */
161 };
162 
163 
164 #endif /* end _SYS_TERMIOS_H */
165 
166 /* Old SVR3.0 flags - should be removed if there is no problem */
167 /* note they are commented out */
168 
169 #if 0
170 
171 #define	O_HUPCL	01
172 #define	O_XTABS	02
173 #define	O_LCASE	04   /* simulate lower case */
174 #define	O_ECHO	010  /* echo input */
175 #define	O_CRMOD	020  /* map \r to \r\n on output */
176 #define	O_RAW	040  /* no i/o processing */
177 #define	O_ODDP	0100 /* get/send odd parity */
178 #define	O_EVENP	0200 /* get/send even parity */
179 #define	O_NLDELAY	001400	/* \n delay */
180 #define	O_NL1	000400
181 #define	O_NL2	001000
182 #define	O_TBDELAY	002000	/* horizontal tab delay */
183 #define	O_NOAL	004000
184 #define	O_CRDELAY	030000	/* \r delay */
185 #define	O_CR1	010000
186 #define	O_CR2	020000
187 #define	O_VTDELAY	040000	/* vertical tab delay */
188 #define	O_BSDELAY	0100000 /* \b delay */
189 
190 #endif
191 
192 /*
193  * 4.3 BSD additions. These are new codes  and some of the
194  * flags that were there in SVR3.2 ttold.h have been given
195  * new codes. Otherwise they will not fit in a word.
196  */
197 
198 #define		O_TANDEM	0x00000001	/* send stopc on out q full */
199 #define		O_CBREAK	0x00000002	/* half-cooked mode */
200 #define		O_LCASE		0x00000004	/* simulate lower case */
201 #define		O_ECHO		0x00000008	/* echo input */
202 #define		O_CRMOD		0x00000010	/* map \r to \r\n on output */
203 #define		O_RAW		0x00000020	/* no i/o processing */
204 #define		O_ODDP		0x00000040	/* get/send odd parity */
205 #define		O_EVENP		0x00000080	/* get/send even parity */
206 #define		O_ANYP		0x000000c0	/* get any parity/send none */
207 #define		O_NLDELAY	0x00000300	/* \n delay */
208 #define			O_NL0	0x00000000
209 #define			O_NL1	0x00000100	/* tty 37 */
210 #define			O_NL2	0x00000200	/* vt05 */
211 #define			O_NL3	0x00000300
212 #define		O_TBDELAY	0x00000c00	/* horizontal tab delay */
213 #define			O_TAB0	0x00000000
214 #define			O_TAB1	0x00000400	/* tty 37 */
215 #define			O_TAB2	0x00000800
216 #define		O_XTABS		0x00000c00	/* expand tabs on output */
217 #define		O_CRDELAY	0x00003000	/* \r delay */
218 #define			O_CR0	0x00000000
219 #define			O_CR1	0x00001000	/* tn 300 */
220 #define			O_CR2	0x00002000	/* tty 37 */
221 #define			O_CR3	0x00003000	/* concept 100 */
222 #define		O_VTDELAY	0x00004000	/* vertical tab delay */
223 #define			O_FF0	0x00000000
224 #define			O_FF1	0x00004000	/* tty 37 */
225 #define		O_BSDELAY	0x00008000	/* \b delay */
226 #define			O_BS0	0x00000000
227 #define			O_BS1	0x00008000
228 #define		O_ALLDELAY \
229 	(O_NLDELAY|O_TBDELAY|O_CRDELAY|O_VTDELAY|O_BSDELAY)
230 #define		O_CRTBS		0x00010000	/* do backspacing for crt */
231 #define		O_PRTERA	0x00020000	/* \ ... / erase */
232 #define		O_CRTERA	0x00040000	/* " \b " to wipe out char */
233 #define		O_TILDE		0x00080000	/* hazeltine tilde kludge */
234 #define		O_MDMBUF	0x00100000	/* start/stop output on */
235 						/* carrier intr */
236 #define		O_LITOUT	0x00200000	/* literal output */
237 #define		O_TOSTOP	0x00400000	/* SIGSTOP on background */
238 						/* output */
239 #define		O_FLUSHO	0x00800000	/* flush output to terminal */
240 #define		O_NOHANG	0x01000000	/* no SIGHUP on carrier drop */
241 #define		O_L001000	0x02000000
242 #define		O_CRTKIL	0x04000000	/* kill line with " \b " */
243 #define		O_PASS8		0x08000000
244 #define		O_CTLECH	0x10000000	/* echo control chars as ^X */
245 #define		O_PENDIN	0x20000000	/* tp->t_rawq needs reread */
246 #define		O_DECCTQ	0x40000000	/* only ^Q starts after ^S */
247 #define		O_NOFLSH	0x80000000	/* no output flush on signal */
248 
249 /* more BSD flags */
250 #define		LCRTBS		(O_CRTBS>>16)
251 #define		LPRTERA		(O_PRTERA>>16)
252 #define		LCRTERA		(O_CRTERA>>16)
253 #define		LTILDE		(O_TILDE>>16)
254 #define		LMDMBUF		(O_MDMBUF>>16)
255 #define		LLITOUT		(O_LITOUT>>16)
256 #define		LTOSTOP		(O_TOSTOP>>16)
257 #define		LFLUSHO		(O_FLUSHO>>16)
258 #define		LNOHANG		(O_NOHANG>>16)
259 #define		LCRTKIL		(O_CRTKIL>>16)
260 #define		LPASS8		(O_PASS8>>16)
261 #define		LCTLECH		(O_CTLECH>>16)
262 #define		LPENDIN		(O_PENDIN>>16)
263 #define		LDECCTQ		(O_DECCTQ>>16)
264 #define		LNOFLSH		(O_NOFLSH>>16)
265 
266 
267 #define		NOPOST	0x00000001	/* no processing on output (LITOUT */
268 					/* with 7 bits + parity) */
269 #define		NOISIG	0x00000002	/* disable all signal-generating */
270 					/* characters */
271 #define		STOPB	0x00000004	/* two stop bits */
272 
273 #define	OTTYDISC	0		/* old, v7 std tty driver */
274 #define	NETLDISC	1		/* line discip for berk net */
275 #define	NTTYDISC	2		/* new tty discipline */
276 #define	TABLDISC	3		/* hitachi tablet discipline */
277 #define	NTABLDISC	4		/* gtco tablet discipline */
278 #define	MOUSELDISC	5		/* mouse discipline */
279 #define	KBDLDISC	6		/* up/down keyboard trans (console) */
280 
281 #ifdef	__cplusplus
282 }
283 #endif
284 
285 #endif	/* _SYS_TTOLD_H */
286