1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2#ifndef _ASM_IA64_TERMBITS_H
3#define _ASM_IA64_TERMBITS_H
4
5/*
6 * Based on <asm-i386/termbits.h>.
7 *
8 * Modified 1999
9 *	David Mosberger-Tang <davidm@hpl.hp.com>, Hewlett-Packard Co
10 *
11 * 99/01/28	Added new baudrates
12 */
13
14#include <linux/posix_types.h>
15
16typedef unsigned char	cc_t;
17typedef unsigned int	speed_t;
18typedef unsigned int	tcflag_t;
19
20#define NCCS 19
21struct termios {
22	tcflag_t c_iflag;		/* input mode flags */
23	tcflag_t c_oflag;		/* output mode flags */
24	tcflag_t c_cflag;		/* control mode flags */
25	tcflag_t c_lflag;		/* local mode flags */
26	cc_t c_line;			/* line discipline */
27	cc_t c_cc[NCCS];		/* control characters */
28};
29
30struct termios2 {
31	tcflag_t c_iflag;		/* input mode flags */
32	tcflag_t c_oflag;		/* output mode flags */
33	tcflag_t c_cflag;		/* control mode flags */
34	tcflag_t c_lflag;		/* local mode flags */
35	cc_t c_line;			/* line discipline */
36	cc_t c_cc[NCCS];		/* control characters */
37	speed_t c_ispeed;		/* input speed */
38	speed_t c_ospeed;		/* output speed */
39};
40
41struct ktermios {
42	tcflag_t c_iflag;		/* input mode flags */
43	tcflag_t c_oflag;		/* output mode flags */
44	tcflag_t c_cflag;		/* control mode flags */
45	tcflag_t c_lflag;		/* local mode flags */
46	cc_t c_line;			/* line discipline */
47	cc_t c_cc[NCCS];		/* control characters */
48	speed_t c_ispeed;		/* input speed */
49	speed_t c_ospeed;		/* output speed */
50};
51
52/* c_cc characters */
53#define VINTR 0
54#define VQUIT 1
55#define VERASE 2
56#define VKILL 3
57#define VEOF 4
58#define VTIME 5
59#define VMIN 6
60#define VSWTC 7
61#define VSTART 8
62#define VSTOP 9
63#define VSUSP 10
64#define VEOL 11
65#define VREPRINT 12
66#define VDISCARD 13
67#define VWERASE 14
68#define VLNEXT 15
69#define VEOL2 16
70
71/* c_iflag bits */
72#define IGNBRK	0000001
73#define BRKINT	0000002
74#define IGNPAR	0000004
75#define PARMRK	0000010
76#define INPCK	0000020
77#define ISTRIP	0000040
78#define INLCR	0000100
79#define IGNCR	0000200
80#define ICRNL	0000400
81#define IUCLC	0001000
82#define IXON	0002000
83#define IXANY	0004000
84#define IXOFF	0010000
85#define IMAXBEL	0020000
86#define IUTF8	0040000
87
88/* c_oflag bits */
89#define OPOST	0000001
90#define OLCUC	0000002
91#define ONLCR	0000004
92#define OCRNL	0000010
93#define ONOCR	0000020
94#define ONLRET	0000040
95#define OFILL	0000100
96#define OFDEL	0000200
97#define NLDLY	0000400
98#define   NL0	0000000
99#define   NL1	0000400
100#define CRDLY	0003000
101#define   CR0	0000000
102#define   CR1	0001000
103#define   CR2	0002000
104#define   CR3	0003000
105#define TABDLY	0014000
106#define   TAB0	0000000
107#define   TAB1	0004000
108#define   TAB2	0010000
109#define   TAB3	0014000
110#define   XTABS	0014000
111#define BSDLY	0020000
112#define   BS0	0000000
113#define   BS1	0020000
114#define VTDLY	0040000
115#define   VT0	0000000
116#define   VT1	0040000
117#define FFDLY	0100000
118#define   FF0	0000000
119#define   FF1	0100000
120
121/* c_cflag bit meaning */
122#define CBAUD	0010017
123#define  B0	0000000		/* hang up */
124#define  B50	0000001
125#define  B75	0000002
126#define  B110	0000003
127#define  B134	0000004
128#define  B150	0000005
129#define  B200	0000006
130#define  B300	0000007
131#define  B600	0000010
132#define  B1200	0000011
133#define  B1800	0000012
134#define  B2400	0000013
135#define  B4800	0000014
136#define  B9600	0000015
137#define  B19200	0000016
138#define  B38400	0000017
139#define EXTA B19200
140#define EXTB B38400
141#define CSIZE	0000060
142#define   CS5	0000000
143#define   CS6	0000020
144#define   CS7	0000040
145#define   CS8	0000060
146#define CSTOPB	0000100
147#define CREAD	0000200
148#define PARENB	0000400
149#define PARODD	0001000
150#define HUPCL	0002000
151#define CLOCAL	0004000
152#define CBAUDEX 0010000
153#define    BOTHER 0010000
154#define    B57600 0010001
155#define   B115200 0010002
156#define   B230400 0010003
157#define   B460800 0010004
158#define   B500000 0010005
159#define   B576000 0010006
160#define   B921600 0010007
161#define  B1000000 0010010
162#define  B1152000 0010011
163#define  B1500000 0010012
164#define  B2000000 0010013
165#define  B2500000 0010014
166#define  B3000000 0010015
167#define  B3500000 0010016
168#define  B4000000 0010017
169#define CIBAUD	  002003600000		/* input baud rate */
170#define CMSPAR	  010000000000		/* mark or space (stick) parity */
171#define CRTSCTS	  020000000000		/* flow control */
172
173#define IBSHIFT	16		/* Shift from CBAUD to CIBAUD */
174
175/* c_lflag bits */
176#define ISIG	0000001
177#define ICANON	0000002
178#define XCASE	0000004
179#define ECHO	0000010
180#define ECHOE	0000020
181#define ECHOK	0000040
182#define ECHONL	0000100
183#define NOFLSH	0000200
184#define TOSTOP	0000400
185#define ECHOCTL	0001000
186#define ECHOPRT	0002000
187#define ECHOKE	0004000
188#define FLUSHO	0010000
189#define PENDIN	0040000
190#define IEXTEN	0100000
191#define EXTPROC	0200000
192
193/* tcflow() and TCXONC use these */
194#define	TCOOFF		0
195#define	TCOON		1
196#define	TCIOFF		2
197#define	TCION		3
198
199/* tcflush() and TCFLSH use these */
200#define	TCIFLUSH	0
201#define	TCOFLUSH	1
202#define	TCIOFLUSH	2
203
204/* tcsetattr uses these */
205#define	TCSANOW		0
206#define	TCSADRAIN	1
207#define	TCSAFLUSH	2
208
209#endif /* _ASM_IA64_TERMBITS_H */
210