1/*-
2 * Copyright (c) 1998 Mark Newton
3 * Copyright (c) 1994 Christos Zoulas
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 *    notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 *    notice, this list of conditions and the following disclaimer in the
13 *    documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 *    derived from this software without specific prior written permission
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31#ifndef	_SVR4_TERMIOS_H_
32#define	_SVR4_TERMIOS_H_
33
34#define SVR4_POSIX_VDISABLE	0
35#define	SVR4_NCC	 	8
36#define	SVR4_NCCS		19
37
38typedef u_long	svr4_tcflag_t;
39typedef u_char	svr4_cc_t;
40typedef u_long	svr4_speed_t;
41
42struct svr4_termios {
43	svr4_tcflag_t	c_iflag;
44	svr4_tcflag_t	c_oflag;
45	svr4_tcflag_t	c_cflag;
46	svr4_tcflag_t	c_lflag;
47	svr4_cc_t	c_cc[SVR4_NCCS];
48};
49
50struct svr4_termio {
51	u_short		c_iflag;
52	u_short		c_oflag;
53	u_short		c_cflag;
54	u_short		c_lflag;
55	char		c_line;
56	u_char		c_cc[SVR4_NCC];
57};
58
59/* control characters */
60#define	SVR4_VINTR	0
61#define	SVR4_VQUIT	1
62#define	SVR4_VERASE	2
63#define	SVR4_VKILL	3
64#define	SVR4_VEOF	4
65#define	SVR4_VEOL	5
66#define	SVR4_VEOL2	6
67#define	SVR4_VMIN	4
68#define	SVR4_VTIME	5
69#define	SVR4_VSWTCH	7
70#define	SVR4_VSTART	8
71#define	SVR4_VSTOP	9
72#define	SVR4_VSUSP	10
73#define	SVR4_VDSUSP	11
74#define	SVR4_VREPRINT	12
75#define	SVR4_VDISCARD	13
76#define	SVR4_VWERASE	14
77#define	SVR4_VLNEXT	15
78
79/* Input modes */
80#define	SVR4_IGNBRK	00000001
81#define	SVR4_BRKINT	00000002
82#define	SVR4_IGNPAR	00000004
83#define	SVR4_PARMRK	00000010
84#define	SVR4_INPCK	00000020
85#define	SVR4_ISTRIP	00000040
86#define	SVR4_INLCR	00000100
87#define	SVR4_IGNCR	00000200
88#define	SVR4_ICRNL	00000400
89#define	SVR4_IUCLC	00001000
90#define	SVR4_IXON	00002000
91#define	SVR4_IXANY	00004000
92#define	SVR4_IXOFF	00010000
93#define SVR4_IMAXBEL	00020000
94#define SVR4_DOSMODE	00100000
95
96/* Output modes */
97#define	SVR4_OPOST	00000001
98#define	SVR4_OLCUC	00000002
99#define	SVR4_ONLCR	00000004
100#define	SVR4_OCRNL	00000010
101#define	SVR4_ONOCR	00000020
102#define	SVR4_ONLRET	00000040
103#define	SVR4_OFILL	00000100
104#define	SVR4_OFDEL	00000200
105#define	SVR4_NLDLY	00000400
106#define	SVR4_NL0	00000000
107#define	SVR4_NL1	00000400
108#define	SVR4_CRDLY	00003000
109#define	SVR4_CR0	00000000
110#define	SVR4_CR1	00001000
111#define	SVR4_CR2	00002000
112#define	SVR4_CR3	00003000
113#define	SVR4_TABDLY	00014000
114#define	SVR4_TAB0	00000000
115#define	SVR4_TAB1	00004000
116#define	SVR4_TAB2	00010000
117#define	SVR4_TAB3	00014000
118#define SVR4_XTABS	00014000
119#define	SVR4_BSDLY	00020000
120#define	SVR4_BS0	00000000
121#define	SVR4_BS1	00020000
122#define	SVR4_VTDLY	00040000
123#define	SVR4_VT0	00000000
124#define	SVR4_VT1	00040000
125#define	SVR4_FFDLY	00100000
126#define	SVR4_FF0	00000000
127#define	SVR4_FF1	00100000
128#define SVR4_PAGEOUT	00200000
129#define SVR4_WRAP	00400000
130
131/* Control modes */
132#define	SVR4_CBAUD	00000017
133#define	SVR4_CSIZE	00000060
134#define	SVR4_CS5	00000000
135#define	SVR4_CS6	00000200
136#define	SVR4_CS7	00000040
137#define	SVR4_CS8	00000006
138#define	SVR4_CSTOPB	00000100
139#define	SVR4_CREAD	00000200
140#define	SVR4_PARENB	00000400
141#define	SVR4_PARODD	00001000
142#define	SVR4_HUPCL	00002000
143#define	SVR4_CLOCAL	00004000
144#define SVR4_RCV1EN	00010000
145#define	SVR4_XMT1EN	00020000
146#define	SVR4_LOBLK	00040000
147#define	SVR4_XCLUDE	00100000
148#define SVR4_CIBAUD	03600000
149#define SVR4_PAREXT	04000000
150
151/* line discipline modes */
152#define	SVR4_ISIG	00000001
153#define	SVR4_ICANON	00000002
154#define	SVR4_XCASE	00000004
155#define	SVR4_ECHO	00000010
156#define	SVR4_ECHOE	00000020
157#define	SVR4_ECHOK	00000040
158#define	SVR4_ECHONL	00000100
159#define	SVR4_NOFLSH	00000200
160#define	SVR4_TOSTOP	00000400
161#define	SVR4_ECHOCTL	00001000
162#define	SVR4_ECHOPRT	00002000
163#define	SVR4_ECHOKE	00004000
164#define	SVR4_DEFECHO	00010000
165#define	SVR4_FLUSHO	00020000
166#define	SVR4_PENDIN	00040000
167#define	SVR4_IEXTEN	00100000
168
169#define	SVR4_TIOC	('T' << 8)
170
171#define	SVR4_TCGETA	(SVR4_TIOC| 1)
172#define	SVR4_TCSETA	(SVR4_TIOC| 2)
173#define	SVR4_TCSETAW	(SVR4_TIOC| 3)
174#define	SVR4_TCSETAF	(SVR4_TIOC| 4)
175#define	SVR4_TCSBRK	(SVR4_TIOC| 5)
176#define	SVR4_TCXONC	(SVR4_TIOC| 6)
177#define	SVR4_TCFLSH	(SVR4_TIOC| 7)
178#define SVR4_TIOCKBON	(SVR4_TIOC| 8)
179#define SVR4_TIOCKBOF 	(SVR4_TIOC| 9)
180#define SVR4_KBENABLED 	(SVR4_TIOC|10)
181#define SVR4_TCGETS	(SVR4_TIOC|13)
182#define SVR4_TCSETS	(SVR4_TIOC|14)
183#define SVR4_TCSETSW	(SVR4_TIOC|15)
184#define	SVR4_TCSETSF	(SVR4_TIOC|16)
185#define	SVR4_TCDSET	(SVR4_TIOC|32)
186#define	SVR4_RTS_TOG	(SVR4_TIOC|33)
187#define SVR4_TCGETSC	(SVR4_TIOC|34)
188#define SVR4_TCSETSC	(SVR4_TIOC|35)
189#define	SVR4_TCMOUSE	(SVR4_TIOC|36)
190#define SVR4_TIOCGWINSZ	(SVR4_TIOC|104)
191#define SVR4_TIOCSWINSZ	(SVR4_TIOC|103)
192
193struct svr4_winsize {
194	u_short	ws_row;
195	u_short	ws_col;
196	u_short	ws_xpixel;
197	u_short	ws_ypixel;
198};
199
200#define	SVR4_B0		0
201#define	SVR4_B50	1
202#define	SVR4_B75	2
203#define	SVR4_B110	3
204#define	SVR4_B134	4
205#define	SVR4_B150	5
206#define	SVR4_B200	6
207#define	SVR4_B300	7
208#define	SVR4_B600	8
209#define	SVR4_B1200	9
210#define	SVR4_B1800	10
211#define	SVR4_B2400	11
212#define	SVR4_B4800	12
213#define	SVR4_B9600	13
214#define	SVR4_B19200	14
215#define	SVR4_B38400	15
216#define	SVR4_B57600	16
217#define	SVR4_B76800	17
218#define	SVR4_B115200	18
219#define	SVR4_B153600	19
220#define	SVR4_B230400	20
221#define	SVR4_B307200	21
222#define	SVR4_B460800	22
223
224#endif /* !_SVR4_TERMIOS_H_ */
225