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