1/*	$NetBSD: linux_termios.h,v 1.1 2021/09/23 06:56:27 ryo Exp $	*/
2
3/*-
4 * Copyright (c) 2021 The NetBSD Foundation, Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
17 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
18 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
20 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
26 * POSSIBILITY OF SUCH DAMAGE.
27 */
28
29#ifndef _AARCH64_LINUX_TERMIOS_H
30#define _AARCH64_LINUX_TERMIOS_H
31
32#define LINUX_NCC	8
33#define LINUX_NCCS	19
34
35#define LINUX_TCGETS		0x5401
36#define LINUX_TCSETS		0x5402
37#define LINUX_TCSETSW		0x5403
38#define LINUX_TCSETSF		0x5404
39#define LINUX_TCGETA		0x5405
40#define LINUX_TCSETA		0x5406
41#define LINUX_TCSETAW		0x5407
42#define LINUX_TCSETAF		0x5408
43#define LINUX_TCSBRK		0x5409
44#define LINUX_TCXONC		0x540a
45#define LINUX_TCFLSH		0x540b
46#define LINUX_TIOCEXCL		0x540c
47#define LINUX_TIOCNXCL		0x540d
48#define LINUX_TIOCSCTTY		0x540e
49#define LINUX_TIOCGPGRP		0x540f
50#define LINUX_TIOCSPGRP		0x5410
51#define LINUX_TIOCOUTQ		0x5411
52#define LINUX_TIOCSTI		0x5412
53#define LINUX_TIOCGWINSZ	0x5413
54#define LINUX_TIOCSWINSZ	0x5414
55#define LINUX_TIOCMGET		0x5415
56#define LINUX_TIOCMBIS		0x5416
57#define LINUX_TIOCMBIC		0x5417
58#define LINUX_TIOCMSET		0x5418
59#define LINUX_TIOCGSOFTCAR	0x5419
60#define LINUX_TIOCSSOFTCAR	0x541a
61#define LINUX_FIONREAD		0x541b
62#define LINUX_TIOCINQ		0x541b
63#define LINUX_TIOCLINUX		0x541c
64#define LINUX_TIOCCONS		0x541d
65#define LINUX_TIOCGSERIAL	0x541e
66#define LINUX_TIOCSSERIAL	0x541f
67#define LINUX_TIOCPKT		0x5420
68#define LINUX_FIONBIO		0x5421
69#define LINUX_TIOCNOTTY		0x5422
70#define LINUX_TIOCSETD		0x5423
71#define LINUX_TIOCGETD		0x5424
72#define LINUX_TCSBRKP		0x5425
73#define LINUX_FIONCLEX		0x5450
74#define LINUX_FIOCLEX		0x5451
75#define LINUX_FIOASYNC		0x5452
76#define LINUX_TIOCSERCONFIG	0x5453
77#define LINUX_TIOCSERGWILD	0x5454
78#define LINUX_TIOCSERSWILD	0x5455
79#define LINUX_TIOCGLCKTRMIOS	0x5456
80#define LINUX_TIOCSLCKTRMIOS	0x5457
81#define LINUX_TIOCSERGSTRUCT	0x5458
82#define LINUX_TIOCSERGETLSR	0x5459
83
84#define LINUX_OLD_VINTR		LINUX_VINTR
85#define LINUX_OLD_VQUIT		LINUX_VQUIT
86#define LINUX_OLD_VERASE	LINUX_VERASE
87#define LINUX_OLD_VKILL		LINUX_VKILL
88#define LINUX_OLD_VEOF		LINUX_VEOF
89#define LINUX_OLD_VMIN		LINUX_VMIN
90#define LINUX_OLD_VEOL		LINUX_VEOL
91#define LINUX_OLD_VTIME		LINUX_VTIME
92#define LINUX_OLD_VEOL2		LINUX_VEOL2
93#define LINUX_OLD_VSWTC		LINUX_VSWTC
94
95/* linux_termios c_cc chars: */
96#define LINUX_VINTR		0
97#define LINUX_VQUIT		1
98#define LINUX_VERASE		2
99#define LINUX_VKILL		3
100#define LINUX_VEOF		4
101#define LINUX_VTIME		5
102#define LINUX_VMIN		6
103#define LINUX_VSWTC		7
104#define LINUX_VSTART		8
105#define LINUX_VSTOP		9
106#define LINUX_VSUSP		10
107#define LINUX_VEOL		11
108#define LINUX_VREPRINT		12
109#define LINUX_VDISCARD		13
110#define LINUX_VWERASE		14
111#define LINUX_VLNEXT		15
112#define LINUX_VEOL2		16
113
114/* Linux c_iflag masks */
115#define LINUX_IGNBRK		0x00000001
116#define LINUX_BRKINT		0x00000002
117#define LINUX_IGNPAR		0x00000004
118#define LINUX_PARMRK		0x00000008
119#define LINUX_INPCK		0x00000010
120#define LINUX_ISTRIP		0x00000020
121#define LINUX_INLCR		0x00000040
122#define LINUX_IGNCR		0x00000080
123#define LINUX_ICRNL		0x00000100
124#define LINUX_IUCLC		0x00000200
125#define LINUX_IXON		0x00000400
126#define LINUX_IXANY		0x00000800
127#define LINUX_IXOFF		0x00001000
128#define LINUX_IMAXBEL		0x00002000
129#define LINUX_IUTF8		0x00004000
130
131/* Linux c_oflag masks */
132#define LINUX_OPOST		0x00000001
133#define LINUX_OLCUC		0x00000002
134#define LINUX_ONLCR		0x00000004
135#define LINUX_OCRNL		0x00000008
136#define LINUX_ONOCR		0x00000010
137#define LINUX_ONLRET		0x00000020
138#define LINUX_OFILL		0x00000040
139#define LINUX_OFDEL		0x00000080
140#define LINUX_NLDLY		0x00000100
141#define LINUX_NL0		0x00000000
142#define LINUX_NL1		0x00000100
143#define LINUX_CRDLY		0x00000600
144#define LINUX_CR0		0x00000000
145#define LINUX_CR1		0x00000200
146#define LINUX_CR2		0x00000400
147#define LINUX_CR3		0x00000600
148#define LINUX_TABDLY		0x00001800
149#define LINUX_TAB0		0x00000000
150#define LINUX_TAB1		0x00000800
151#define LINUX_TAB2		0x00001000
152#define LINUX_TAB3		0x00001800
153#define LINUX_BSDLY		0x00002000
154#define LINUX_BS0		0x00000000
155#define LINUX_BS1		0x00002000
156#define LINUX_FFDLY		0x00008000
157#define LINUX_FF0		0x00000000
158#define LINUX_FF1		0x00008000
159#define LINUX_VTDLY		0x00004000
160#define LINUX_VT0		0x00000000
161#define LINUX_VT1		0x00004000
162#define LINUX_XTABS		0x00001800
163
164/* Linux c_cflag bit masks */
165#define LINUX_CBAUD	0x0000100f
166
167#define LINUX_B0	0x00000000
168#define LINUX_B50	0x00000001
169#define LINUX_B75	0x00000002
170#define LINUX_B110	0x00000003
171#define LINUX_B134	0x00000004
172#define LINUX_B150	0x00000005
173#define LINUX_B200	0x00000006
174#define LINUX_B300	0x00000007
175#define LINUX_B600	0x00000008
176#define LINUX_B1200	0x00000009
177#define LINUX_B1800	0x0000000a
178#define LINUX_B2400	0x0000000b
179#define LINUX_B4800	0x0000000c
180#define LINUX_B9600	0x0000000d
181#define LINUX_B19200	0x0000000e
182#define LINUX_B38400	0x0000000f
183#define LINUX_EXTA	LINUX_B19200
184#define LINUX_EXTB	LINUX_B38400
185
186#define LINUX_CBAUDEX	0x00001000
187#define LINUX_B57600	0x00001001
188#define LINUX_B115200	0x00001002
189#define LINUX_B230400	0x00001003
190
191#define LINUX_NSPEEDS	16
192#define LINUX_NXSPEEDS	3
193
194#define LINUX_CSIZE	0x00000030
195#define LINUX_CS5	0x00000000
196#define LINUX_CS6	0x00000010
197#define LINUX_CS7	0x00000020
198#define LINUX_CS8	0x00000030
199#define LINUX_CSTOPB	0x00000040
200#define LINUX_CREAD	0x00000080
201#define LINUX_PARENB	0x00000100
202#define LINUX_PARODD	0x00000200
203#define LINUX_HUPCL	0x00000400
204#define LINUX_CLOCAL	0x00000800
205
206#define LINUX_CRTSCTS	0x80000000
207
208/* Linux c_lflag masks */
209#define LINUX_ISIG	0x00000001
210#define LINUX_ICANON	0x00000002
211#define LINUX_XCASE	0x00000004
212#define LINUX_ECHO	0x00000008
213#define LINUX_ECHOE	0x00000010
214#define LINUX_ECHOK	0x00000020
215#define LINUX_ECHONL	0x00000040
216#define LINUX_NOFLSH	0x00000080
217#define LINUX_TOSTOP	0x00000100
218#define LINUX_ECHOCTL	0x00000200
219#define LINUX_ECHOPRT	0x00000400
220#define LINUX_ECHOKE	0x00000800
221#define LINUX_FLUSHO	0x00001000
222#define LINUX_PENDIN	0x00004000
223#define LINUX_IEXTEN	0x00008000
224
225#endif /* !_AARCH64_LINUX_TERMIOS_H */
226