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