summaryrefslogtreecommitdiff
path: root/sys/compat/linux/arch/mips/linux_termios.h
blob: 20728b9921b9b71af2c0cabfe706d8647a801cb2 (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
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
/*	$NetBSD: linux_termios.h,v 1.5 2008/04/28 20:23:43 martin Exp $ */

/*-
 * Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
 * All rights reserved.
 *
 * This code is derived from software contributed to The NetBSD Foundation
 * by Eric Haszlakiewicz and Emmanuel Dreyfus.
 *
 * 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.
 *
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
 * ``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 FOUNDATION OR CONTRIBUTORS
 * 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 _MIPS_LINUX_TERMIOS_H
#define _MIPS_LINUX_TERMIOS_H

/*
 * From Linux's include/asm-mips/termios.h
 */
#define LINUX_NCC 8
/*
 * From Linux's include/asm-mips/termbits.h
 */
#define LINUX_NCCS 23

/*
 * From Linux's include/asm-mips/ioctls.h
 */
#define LINUX_tIOC		('t' << 8)

#define LINUX_TCGETS		0x540d
#define LINUX_TCSETS		0x540e
#define LINUX_TCSETSW		0x540f
#define LINUX_TCSETSF		0x5410
#define LINUX_TCGETA		0x5401
#define LINUX_TCSETA		0x5402
#define LINUX_TCSETAW		0x5403
#define LINUX_TCSETAF		0x5404
#define LINUX_TCSBRK		0x5405
#define LINUX_TCXONC		0x5406
#define LINUX_TCFLSH		0x5407
#define LINUX_TIOCEXCL		0x740d
#define LINUX_TIOCNXCL		0x740e
#define LINUX_TIOCSCTTY		0x5480
#define LINUX_TIOCSPGRP		_LINUX_IOW('t', 118, int)
#define LINUX_TIOCGPGRP		_LINUX_IOR('t', 119, int)
#define LINUX_TIOCOUTQ		0x7472
#define LINUX_TIOCSTI		0x5472
#define LINUX_TIOCSWINSZ 	_LINUX_IOW('t', 103, struct linux_winsize)
#define LINUX_TIOCGWINSZ 	_LINUX_IOR('t', 104, struct linux_winsize)
#define LINUX_TIOCMGET		0x741d
#define LINUX_TIOCMBIS		0x741b
#define LINUX_TIOCMBIC		0x741c
#define LINUX_TIOCMSET		0x741a
#define LINUX_TIOCGSOFTCAR	0x5481
#define LINUX_TIOCSSOFTCAR	0x5482
#define LINUX_FIONREAD		0x467f
#define LINUX_TIOCINQ		LINUX_FIONREAD
#define LINUX_TIOCLINUX		0x5483
#define LINUX_TIOCCONS		_IOW('t', 120, int)
#define LINUX_TIOCGSERIAL	0x5484
#define LINUX_TIOCSSERIAL	0x5485
#define LINUX_TIOCPKT		0x5470
#define LINUX_FIONBIO		0x667e
#define LINUX_TIOCNOTTY		0x5471
#define LINUX_TIOCSETD		(LINUX_tIOC | 1)
#define LINUX_TIOCGETD		(LINUX_tIOC | 0)
#define LINUX_TCSBRKP		0x5425
#define LINUX_TIOCTTYGSTRUCT	0x5426

#define LINUX_FIONCLEX		0x6602 /* Linux sources: "need to be adjusted" */
#define LINUX_FIOCLEX		0x6601
#define LINUX_FIOASYNC		0x667d
#define LINUX_TIOCSERCONFIG	0x5488
#define LINUX_TIOCSERGWILD	0x5489
#define LINUX_TIOCSERSWILD	0x548a
#define LINUX_TIOCGLCKTRMIOS	0x548b
#define LINUX_TIOCSLCKTRMIOS	0x548c
#define LINUX_TIOCSERGSTRUCT	0x548d
#define LINUX_TIOCSERGETLSR	0x548e
#define LINUX_TIOCSERGETMULTI	0x548f
#define LINUX_TIOCSERSETMULTI	0x5490

/*
 * linux_termios c_cc chars:
 * From Linux's include/asm-mips/termbits.h
 */
#define LINUX_VINTR 	0
#define LINUX_VQUIT 	1
#define LINUX_VERASE	2
#define LINUX_VKILL 	3
#define LINUX_VMIN 	4
#define LINUX_VTIME 	5
#define LINUX_VEOL2 	6
#define LINUX_VSWTC 	7
#define LINUX_VSWTCH	LINUX_VSWTC
#define LINUX_VSTART	8
#define LINUX_VSTOP 	9
#define LINUX_VSUSP	10
/* #define LINUX_VDSUSP	11 is not defined in Linux */
#define LINUX_VREPRINT	12
#define LINUX_VDISCARD	13
#define LINUX_VWERASE	14
#define LINUX_VLNEXT	15
#define LINUX_VEOF	16
#define LINUX_VEOL	17

/*
 * Old style linux_termio
 * XXX Not found anywhere in Linux
 */
#define	LINUX_OLD_VINTR		LINUX_VINTR
#define	LINUX_OLD_VQUIT		LINUX_VQUIT
#define	LINUX_OLD_VERASE	LINUX_VERASE
#define	LINUX_OLD_VKILL		LINUX_VKILL
#define	LINUX_OLD_VEOF		LINUX_VEOF
#define	LINUX_OLD_VMIN		LINUX_VMIN
#define	LINUX_OLD_VEOL		LINUX_VEOL
#define	LINUX_OLD_VTIME		LINUX_VTIME
#define	LINUX_OLD_VEOL2		LINUX_VEOL2
#define	LINUX_OLD_VSWTC		LINUX_VSWTC

/*
 * All the remaining stuff is from  Linux's include/asm-mips/termbits.h
 * Note that most of theses values are octal (one leading 0), not hex...
 * Linux c_iflag masks
 */
#define LINUX_IGNBRK	0000001
#define LINUX_BRKINT	0000002
#define LINUX_IGNPAR	0000004
#define LINUX_PARMRK	0000010
#define LINUX_INPCK	0000020
#define LINUX_ISTRIP	0000040
#define LINUX_INLCR	0000100
#define LINUX_IGNCR	0000200
#define LINUX_ICRNL	0000400
#define LINUX_IXON	0002000
#define LINUX_IXOFF	0010000
#define LINUX_IXANY	0004000
#define LINUX_IUCLC	0001000
#define LINUX_IMAXBEL	0020000

/*
 * Linux c_oflag masks
 */
#define LINUX_OPOST	0020000
#define LINUX_ONLCR	0000004
#define LINUX_OLCUC	0000002
#define LINUX_OCRNL	0000010
#define LINUX_ONOCR	0000020
#define LINUX_ONLRET	0000040
#define LINUX_OFILL	0000040
#define LINUX_OFDEL	0000200
#define LINUX_NLDLY	0000400
#define LINUX_NL0	0000000
#define LINUX_NL1	0000400
#define LINUX_TABDLY	0014000
#define LINUX_TAB0	0000000
#define LINUX_TAB1	0004000
#define LINUX_TAB2	0010000
#define LINUX_TAB3	0014000
#define LINUX_CRDLY	0003000
#define LINUX_CR0	0000000
#define LINUX_CR1	0001000
#define LINUX_CR2	0002000
#define LINUX_CR3	0003000
#define LINUX_FFDLY	0100000
#define LINUX_FF0	0000000
#define LINUX_FF1	0100000
#define LINUX_BSDLY	0020000
#define LINUX_BS0	0000000
#define LINUX_BS1	0020000
#define LINUX_VTDLY	0040000
#define LINUX_VT0	0000000
#define LINUX_VT1	0040000
/* Hmm.. Linux/i386 considers this part of TABDLY.. */
#define LINUX_XTABS  0014000

/*
 * Linux c_cflag bit masks
 * XXX not found in Linux, but it is needed to build
 */
#define LINUX_NSPEEDS   16

#define LINUX_CBAUD	0010017
#define LINUX_B0	0000000     /* hang up */
#define LINUX_B50  	0000001
#define LINUX_B75   	0000002
#define LINUX_B110  	0000003
#define LINUX_B134  	0000004
#define LINUX_B150  	0000005
#define LINUX_B200  	0000006
#define LINUX_B300  	0000007
#define LINUX_B600  	0000010
#define LINUX_B1200 	0000011
#define LINUX_B1800 	0000012
#define LINUX_B2400 	0000013
#define LINUX_B4800 	0000014
#define LINUX_B9600 	0000015
#define LINUX_B19200	0000016
#define LINUX_B38400	0000017
#define LINUX_EXTA 	LINUX_B19200
#define LINUX_EXTB 	LINUX_B38400
#define LINUX_CBAUDEX	0010000
#define LINUX_B57600 	0010001
#define LINUX_B115200	0010002
#define LINUX_B230400	0010003
#define LINUX_B460800	0010004
#define LINUX_B500000	0010005
#define LINUX_B576000	0010006
#define LINUX_B921600	0010007
#define LINUX_B1000000	0010010
#define LINUX_B1152000	0010011
#define LINUX_B1500000	0010011
#define LINUX_B2000000	0010013
#define LINUX_B2500000	0010014
#define LINUX_B3000000	0010015
#define LINUX_B3500000	0010016
#define LINUX_B4000000	0010017

#define LINUX_CSIZE	0000060
#define LINUX_CS5	0000000
#define LINUX_CS6	0000020
#define LINUX_CS7 	0000040
#define LINUX_CS8	0000060

#define LINUX_CSTOPB 	0000100
#define LINUX_CREAD  	0000200
#define LINUX_PARENB 	0000400
#define LINUX_PARODD 	0001000
#define LINUX_HUPCL  	0002000

#define LINUX_CLOCAL 	0004000
#define LINUX_CRTSCTS	020000000000    /* flow control */

/*
 * Linux c_lflag masks
 */
#define LINUX_ISIG   	0000001
#define LINUX_ICANON 	0000002
#define LINUX_XCASE  	0000004
#define LINUX_ECHO   	0000010
#define LINUX_ECHOE  	0000020
#define LINUX_ECHOK  	0000040
#define LINUX_ECHONL 	0000100
#define LINUX_NOFLSH 	0000200
#define LINUX_TOSTOP 	0100000
#define LINUX_ECHOCTL	0001000
#define LINUX_ECHOPRT	0002000
#define LINUX_ECHOKE 	0004000
#define LINUX_FLUSHO 	0020000
#define LINUX_PENDIN 	0040000
#define LINUX_IEXTEN 	0000400

#endif /* !_MIPS_LINUX_TERMIOS_H */