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