xref: /freebsd-11-stable/sys/compat/svr4/svr4_termios.h (revision 898b0535b73b62baaf1d386b169e4d215194a012)
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 
38 typedef u_long	svr4_tcflag_t;
39 typedef u_char	svr4_cc_t;
40 typedef u_long	svr4_speed_t;
41 
42 struct 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 
50 struct 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 
193 struct 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