summaryrefslogtreecommitdiff
path: root/sys/compat/svr4/svr4_termios.h
blob: ca1e0c7318e2161976a55f4d186045253c77825b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
/*	$OpenBSD: svr4_termios.h,v 1.4 1998/02/10 15:01:43 niklas Exp $	 */
/*	$NetBSD: svr4_termios.h,v 1.2 1994/11/18 02:54:21 christos Exp $	 */

/*
 * Copyright (c) 1994 Christos Zoulas
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 * 3. The name of the author may not be used to endorse or promote products
 *    derived from this software without specific prior written permission
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */

#ifndef	_SVR4_TERMIOS_H_
#define	_SVR4_TERMIOS_H_

#define SVR4_POSIX_VDISABLE	0
#define	SVR4_NCC	 	8
#define	SVR4_NCCS		19

typedef u_long	svr4_tcflag_t;
typedef u_char	svr4_cc_t;
typedef u_long	svr4_speed_t;

struct svr4_termios {
	svr4_tcflag_t	c_iflag;
	svr4_tcflag_t	c_oflag;
	svr4_tcflag_t	c_cflag;
	svr4_tcflag_t	c_lflag;
	svr4_cc_t	c_cc[SVR4_NCCS];
};

struct svr4_termio {
	u_short		c_iflag;
	u_short		c_oflag;
	u_short		c_cflag;
	u_short		c_lflag;
	char		c_line;	
	u_char		c_cc[SVR4_NCC];
};

/* control characters */
#define	SVR4_VINTR	0
#define	SVR4_VQUIT	1
#define	SVR4_VERASE	2
#define	SVR4_VKILL	3
#define	SVR4_VEOF	4
#define	SVR4_VEOL	5
#define	SVR4_VEOL2	6
#define	SVR4_VMIN	4
#define	SVR4_VTIME	5
#define	SVR4_VSWTCH	7
#define	SVR4_VSTART	8
#define	SVR4_VSTOP	9
#define	SVR4_VSUSP	10
#define	SVR4_VDSUSP	11
#define	SVR4_VREPRINT	12
#define	SVR4_VDISCARD	13
#define	SVR4_VWERASE	14
#define	SVR4_VLNEXT	15

/* Input modes */
#define	SVR4_IGNBRK	00000001
#define	SVR4_BRKINT	00000002
#define	SVR4_IGNPAR	00000004
#define	SVR4_PARMRK	00000010
#define	SVR4_INPCK	00000020
#define	SVR4_ISTRIP	00000040
#define	SVR4_INLCR	00000100
#define	SVR4_IGNCR	00000200
#define	SVR4_ICRNL	00000400
#define	SVR4_IUCLC	00001000
#define	SVR4_IXON	00002000
#define	SVR4_IXANY	00004000
#define	SVR4_IXOFF	00010000
#define SVR4_IMAXBEL	00020000
#define SVR4_DOSMODE	00100000

/* Output modes */
#define	SVR4_OPOST	00000001
#define	SVR4_OLCUC	00000002
#define	SVR4_ONLCR	00000004
#define	SVR4_OCRNL	00000010
#define	SVR4_ONOCR	00000020
#define	SVR4_ONLRET	00000040
#define	SVR4_OFILL	00000100
#define	SVR4_OFDEL	00000200
#define	SVR4_NLDLY	00000400
#define	SVR4_NL0	00000000
#define	SVR4_NL1	00000400
#define	SVR4_CRDLY	00003000
#define	SVR4_CR0	00000000
#define	SVR4_CR1	00001000
#define	SVR4_CR2	00002000
#define	SVR4_CR3	00003000
#define	SVR4_TABDLY	00014000
#define	SVR4_TAB0	00000000
#define	SVR4_TAB1	00004000
#define	SVR4_TAB2	00010000
#define	SVR4_TAB3	00014000
#define SVR4_XTABS	00014000
#define	SVR4_BSDLY	00020000
#define	SVR4_BS0	00000000
#define	SVR4_BS1	00020000
#define	SVR4_VTDLY	00040000
#define	SVR4_VT0	00000000
#define	SVR4_VT1	00040000
#define	SVR4_FFDLY	00100000
#define	SVR4_FF0	00000000
#define	SVR4_FF1	00100000
#define SVR4_PAGEOUT	00200000
#define SVR4_WRAP	00400000

/* Control modes */
#define	SVR4_CBAUD	00000017
#define	SVR4_CSIZE	00000060
#define	SVR4_CS5	00000000
#define	SVR4_CS6	00000020
#define	SVR4_CS7	00000040
#define	SVR4_CS8	00000060
#define	SVR4_CSTOPB	00000100
#define	SVR4_CREAD	00000200
#define	SVR4_PARENB	00000400
#define	SVR4_PARODD	00001000
#define	SVR4_HUPCL	00002000
#define	SVR4_CLOCAL	00004000
#define SVR4_RCV1EN	00010000
#define	SVR4_XMT1EN	00020000
#define	SVR4_LOBLK	00040000
#define	SVR4_XCLUDE	00100000
#define SVR4_CIBAUD	03600000
#define SVR4_PAREXT	04000000

/* line discipline modes */
#define	SVR4_ISIG	00000001
#define	SVR4_ICANON	00000002
#define	SVR4_XCASE	00000004
#define	SVR4_ECHO	00000010
#define	SVR4_ECHOE	00000020
#define	SVR4_ECHOK	00000040
#define	SVR4_ECHONL	00000100
#define	SVR4_NOFLSH	00000200
#define	SVR4_TOSTOP	00000400
#define	SVR4_ECHOCTL	00001000
#define	SVR4_ECHOPRT	00002000
#define	SVR4_ECHOKE	00004000
#define	SVR4_DEFECHO	00010000
#define	SVR4_FLUSHO	00020000
#define	SVR4_PENDIN	00040000
#define	SVR4_IEXTEN	00100000

#define	SVR4_TIOC	('T' << 8)

#define	SVR4_TCGETA	(SVR4_TIOC| 1)
#define	SVR4_TCSETA	(SVR4_TIOC| 2)
#define	SVR4_TCSETAW	(SVR4_TIOC| 3)
#define	SVR4_TCSETAF	(SVR4_TIOC| 4)
#define	SVR4_TCSBRK	(SVR4_TIOC| 5)
#define	SVR4_TCXONC	(SVR4_TIOC| 6)
#define	SVR4_TCFLSH	(SVR4_TIOC| 7)
#define SVR4_TIOCKBON	(SVR4_TIOC| 8)
#define SVR4_TIOCKBOF 	(SVR4_TIOC| 9)
#define SVR4_KBENABLED 	(SVR4_TIOC|10)
#define SVR4_TCGETS	(SVR4_TIOC|13)
#define SVR4_TCSETS	(SVR4_TIOC|14)
#define SVR4_TCSETSW	(SVR4_TIOC|15)
#define	SVR4_TCSETSF	(SVR4_TIOC|16)
#define	SVR4_TCDSET	(SVR4_TIOC|32)
#define	SVR4_RTS_TOG	(SVR4_TIOC|33)
#define SVR4_TCGETSC	(SVR4_TIOC|34)
#define SVR4_TCSETSC	(SVR4_TIOC|35)
#define	SVR4_TCMOUSE	(SVR4_TIOC|36)
#define SVR4_TIOCGWINSZ	(SVR4_TIOC|104)
#define SVR4_TIOCSWINSZ	(SVR4_TIOC|103)

struct svr4_winsize {
	u_short	ws_row;
	u_short	ws_col;
	u_short	ws_xpixel;
	u_short	ws_ypixel;
};


#define	SVR4_B0		0
#define	SVR4_B50	1
#define	SVR4_B75	2
#define	SVR4_B110	3
#define	SVR4_B134	4
#define	SVR4_B150	5
#define	SVR4_B200	6
#define	SVR4_B300	7
#define	SVR4_B600	8
#define	SVR4_B1200	9
#define	SVR4_B1800	10
#define	SVR4_B2400	11
#define	SVR4_B4800	12
#define	SVR4_B9600	13
#define	SVR4_B19200	14
#define	SVR4_B38400	15
#if 0
/* XXX How do these fit in CBAUD? */
#define	SVR4_B57600	16
#define	SVR4_B76800	17
#define	SVR4_B115200	18
#define	SVR4_B153600	19
#define	SVR4_B230400	20
#define	SVR4_B307200	21
#define	SVR4_B460800	22
#endif

#endif /* !_SVR4_TERMIOS_H_ */