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