1/*	$NetBSD: ibcs2_termios.h,v 1.3 1994/10/26 02:53:07 cgd Exp $	*/
2/* $FreeBSD: releng/10.3/sys/i386/ibcs2/ibcs2_termios.h 139799 2005-01-06 23:22:04Z imp $ */
3
4/*-
5 * Copyright (c) 1994 Scott Bartram
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in the
15 *    documentation and/or other materials provided with the distribution.
16 * 3. All advertising materials mentioning features or use of this software
17 *    must display the following acknowledgement:
18 *      This product includes software developed by Scott Bartram.
19 * 4. The name of the author may not be used to endorse or promote products
20 *    derived from this software without specific prior written permission
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
23 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
24 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
25 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
26 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
27 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
31 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34#ifndef	_IBCS2_TERMIOS_H
35#define	_IBCS2_TERMIOS_H	1
36
37#include <i386/ibcs2/ibcs2_types.h>
38
39#define IBCS2_NCC	8
40#define IBCS2_NCCS	13
41
42typedef u_short	ibcs2_tcflag_t;
43typedef u_char	ibcs2_cc_t;
44typedef u_long	ibcs2_speed_t;
45
46struct ibcs2_termio {
47	u_short	c_iflag;
48	u_short	c_oflag;
49	u_short	c_cflag;
50	u_short	c_lflag;
51	char	c_line;
52	u_char	c_cc[IBCS2_NCC];
53};
54
55struct ibcs2_termios {
56	ibcs2_tcflag_t	c_iflag;
57	ibcs2_tcflag_t	c_oflag;
58	ibcs2_tcflag_t	c_cflag;
59	ibcs2_tcflag_t	c_lflag;
60	char		c_line;
61	ibcs2_cc_t	c_cc[IBCS2_NCCS];
62	char		c_ispeed;
63	char		c_ospeed;
64};
65
66#define IBCS2_VINTR		0
67#define IBCS2_VQUIT		1
68#define IBCS2_VERASE		2
69#define IBCS2_VKILL		3
70#define IBCS2_VEOF		4
71#define IBCS2_VEOL		5
72#define IBCS2_VEOL2		6
73#define IBCS2_VMIN		4
74#define IBCS2_VTIME		5
75#define IBCS2_VSWTCH		7
76#define IBCS2_VSUSP		10
77#define IBCS2_VSTART		11
78#define IBCS2_VSTOP		12
79
80#define IBCS2_CNUL		0
81#define IBCS2_CDEL		0377
82#define IBCS2_CESC		'\\'
83#define IBCS2_CINTR		0177
84#define IBCS2_CQUIT		034
85#define IBCS2_CERASE		'#'
86#define IBCS2_CKILL		'@'
87#define IBCS2_CSTART		021
88#define IBCS2_CSTOP		023
89#define IBCS2_CSWTCH		032
90#define IBCS2_CNSWTCH		0
91#define IBCS2_CSUSP		032
92
93#define IBCS2_IGNBRK		0000001
94#define IBCS2_BRKINT		0000002
95#define IBCS2_IGNPAR		0000004
96#define IBCS2_PARMRK		0000010
97#define IBCS2_INPCK		0000020
98#define IBCS2_ISTRIP		0000040
99#define IBCS2_INLCR		0000100
100#define IBCS2_IGNCR		0000200
101#define IBCS2_ICRNL		0000400
102#define IBCS2_IUCLC		0001000
103#define IBCS2_IXON		0002000
104#define IBCS2_IXANY		0004000
105#define IBCS2_IXOFF		0010000
106#define IBCS2_IMAXBEL		0020000
107#define IBCS2_DOSMODE		0100000
108
109#define IBCS2_OPOST		0000001
110#define IBCS2_OLCUC		0000002
111#define IBCS2_ONLCR		0000004
112#define IBCS2_OCRNL		0000010
113#define IBCS2_ONOCR		0000020
114#define IBCS2_ONLRET		0000040
115#define IBCS2_OFILL		0000100
116#define IBCS2_OFDEL		0000200
117#define IBCS2_NLDLY		0000400
118#define IBCS2_NL0		0000000
119#define IBCS2_NL1		0000400
120#define IBCS2_CRDLY		0003000
121#define IBCS2_CR0		0000000
122#define IBCS2_CR1		0001000
123#define IBCS2_CR2		0002000
124#define IBCS2_CR3		0003000
125#define IBCS2_TABDLY		0014000
126#define IBCS2_TAB0		0000000
127#define IBCS2_TAB1		0004000
128#define IBCS2_TAB2		0010000
129#define IBCS2_TAB3		0014000
130#define IBCS2_BSDLY		0020000
131#define IBCS2_BS0		0000000
132#define IBCS2_BS1		0020000
133#define IBCS2_VTDLY		0040000
134#define IBCS2_VT0		0000000
135#define IBCS2_VT1		0040000
136#define IBCS2_FFDLY		0100000
137#define IBCS2_FF0		0000000
138#define IBCS2_FF1		0100000
139
140#define IBCS2_CBAUD		0000017
141#define IBCS2_CSIZE		0000060
142#define IBCS2_CS5		0000000
143#define IBCS2_CS6		0000020
144#define IBCS2_CS7		0000040
145#define IBCS2_CS8		0000060
146#define IBCS2_CSTOPB		0000100
147#define IBCS2_CREAD		0000200
148#define IBCS2_PARENB		0000400
149#define IBCS2_PARODD		0001000
150#define IBCS2_HUPCL		0002000
151#define IBCS2_CLOCAL		0004000
152#define IBCS2_RCV1EN		0010000
153#define IBCS2_XMT1EN		0020000
154#define IBCS2_LOBLK		0040000
155#define IBCS2_XCLUDE		0100000
156
157#define IBCS2_ISIG		0000001
158#define IBCS2_ICANON		0000002
159#define IBCS2_XCASE		0000004
160#define IBCS2_ECHO		0000010
161#define IBCS2_ECHOE		0000020
162#define IBCS2_ECHOK		0000040
163#define IBCS2_ECHONL		0000100
164#define IBCS2_NOFLSH		0000200
165#define IBCS2_IEXTEN		0000400
166#define IBCS2_TOSTOP		0001000
167
168#define IBCS2_XIOC		(('i'<<24)|('X'<<16))
169#define IBCS2_XCGETA  		(IBCS2_XIOC|1)
170#define IBCS2_XCSETA  		(IBCS2_XIOC|2)
171#define IBCS2_XCSETAW 		(IBCS2_XIOC|3)
172#define IBCS2_XCSETAF 		(IBCS2_XIOC|4)
173
174#define IBCS2_OXIOC		('x'<<8)
175#define IBCS2_OXCGETA  		(IBCS2_OXIOC|1)
176#define IBCS2_OXCSETA  		(IBCS2_OXIOC|2)
177#define IBCS2_OXCSETAW 		(IBCS2_OXIOC|3)
178#define IBCS2_OXCSETAF 		(IBCS2_OXIOC|4)
179
180#define IBCS2_TIOC		('T'<<8)
181#define IBCS2_TCGETA  		(IBCS2_TIOC|1)
182#define IBCS2_TCSETA  		(IBCS2_TIOC|2)
183#define IBCS2_TCSETAW 		(IBCS2_TIOC|3)
184#define IBCS2_TCSETAF 		(IBCS2_TIOC|4)
185#define IBCS2_TCSBRK  		(IBCS2_TIOC|5)
186#define IBCS2_TCXONC  		(IBCS2_TIOC|6)
187#define IBCS2_TCFLSH  		(IBCS2_TIOC|7)
188
189#define IBCS2_TCGETSC		(IBCS2_TIOC|34)
190#define IBCS2_TCSETSC		(IBCS2_TIOC|35)
191
192#define IBCS2_TIOCSWINSZ	(IBCS2_TIOC|103)
193#define IBCS2_TIOCGWINSZ	(IBCS2_TIOC|104)
194#define IBCS2_TIOCSPGRP		(IBCS2_TIOC|118)
195#define IBCS2_TIOCGPGRP		(IBCS2_TIOC|119)
196
197#define IBCS2_TCSANOW		IBCS2_XCSETA
198#define IBCS2_TCSADRAIN		IBCS2_XCSETAW
199#define IBCS2_TCSAFLUSH		IBCS2_XCSETAF
200#define IBCS2_TCSADFLUSH	IBCS2_XCSETAF
201
202#define IBCS2_TCIFLUSH		0
203#define IBCS2_TCOFLUSH		1
204#define IBCS2_TCIOFLUSH		2
205
206#define IBCS2_TCOOFF		0
207#define IBCS2_TCOON		1
208#define IBCS2_TCIOFF		2
209#define IBCS2_TCION		3
210
211#define IBCS2_B0		0
212#define IBCS2_B50		1
213#define IBCS2_B75		2
214#define IBCS2_B110		3
215#define IBCS2_B134		4
216#define IBCS2_B150		5
217#define IBCS2_B200		6
218#define IBCS2_B300		7
219#define IBCS2_B600		8
220#define IBCS2_B1200		9
221#define IBCS2_B1800		10
222#define IBCS2_B2400		11
223#define IBCS2_B4800		12
224#define IBCS2_B9600		13
225#define IBCS2_B19200		14
226#define IBCS2_B38400		15
227
228struct ibcs2_winsize {
229        u_short ws_row;
230        u_short ws_col;
231        u_short ws_xpixel;
232        u_short ws_ypixel;
233};
234
235#endif /* _IBCS2_H_ */
236
237