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