1#ifndef _ASM_POWERPC_TERMBITS_H
2#define _ASM_POWERPC_TERMBITS_H
3
4/*
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version
8 * 2 of the License, or (at your option) any later version.
9 */
10
11typedef unsigned char	cc_t;
12typedef unsigned int	speed_t;
13typedef unsigned int	tcflag_t;
14
15/*
16 * termios type and macro definitions.  Be careful about adding stuff
17 * to this file since it's used in GNU libc and there are strict rules
18 * concerning namespace pollution.
19 */
20
21#define NCCS 19
22struct termios {
23	tcflag_t c_iflag;		/* input mode flags */
24	tcflag_t c_oflag;		/* output mode flags */
25	tcflag_t c_cflag;		/* control mode flags */
26	tcflag_t c_lflag;		/* local mode flags */
27	cc_t c_cc[NCCS];		/* control characters */
28	cc_t c_line;			/* line discipline (== c_cc[19]) */
29	speed_t c_ispeed;		/* input speed */
30	speed_t c_ospeed;		/* output speed */
31};
32
33/* For PowerPC the termios and ktermios are the same */
34
35struct ktermios {
36	tcflag_t c_iflag;		/* input mode flags */
37	tcflag_t c_oflag;		/* output mode flags */
38	tcflag_t c_cflag;		/* control mode flags */
39	tcflag_t c_lflag;		/* local mode flags */
40	cc_t c_cc[NCCS];		/* control characters */
41	cc_t c_line;			/* line discipline (== c_cc[19]) */
42	speed_t c_ispeed;		/* input speed */
43	speed_t c_ospeed;		/* output speed */
44};
45
46/* c_cc characters */
47#define VINTR 	         0
48#define VQUIT 	         1
49#define VERASE 	         2
50#define VKILL	         3
51#define VEOF	         4
52#define VMIN	         5
53#define VEOL	         6
54#define VTIME	         7
55#define VEOL2	         8
56#define VSWTC	         9
57#define VWERASE 	10
58#define VREPRINT	11
59#define VSUSP 		12
60#define VSTART		13
61#define VSTOP		14
62#define VLNEXT		15
63#define VDISCARD	16
64
65/* c_iflag bits */
66#define IGNBRK	0000001
67#define BRKINT	0000002
68#define IGNPAR	0000004
69#define PARMRK	0000010
70#define INPCK	0000020
71#define ISTRIP	0000040
72#define INLCR	0000100
73#define IGNCR	0000200
74#define ICRNL	0000400
75#define IXON	0001000
76#define IXOFF	0002000
77#define IXANY	0004000
78#define IUCLC	0010000
79#define IMAXBEL	0020000
80#define	IUTF8	0040000
81
82/* c_oflag bits */
83#define OPOST	0000001
84#define ONLCR	0000002
85#define OLCUC	0000004
86
87#define OCRNL	0000010
88#define ONOCR	0000020
89#define ONLRET	0000040
90
91#define OFILL	00000100
92#define OFDEL	00000200
93#define NLDLY	00001400
94#define   NL0	00000000
95#define   NL1	00000400
96#define   NL2	00001000
97#define   NL3	00001400
98#define TABDLY	00006000
99#define   TAB0	00000000
100#define   TAB1	00002000
101#define   TAB2	00004000
102#define   TAB3	00006000
103#define   XTABS	00006000	/* required by POSIX to == TAB3 */
104#define CRDLY	00030000
105#define   CR0	00000000
106#define   CR1	00010000
107#define   CR2	00020000
108#define   CR3	00030000
109#define FFDLY	00040000
110#define   FF0	00000000
111#define   FF1	00040000
112#define BSDLY	00100000
113#define   BS0	00000000
114#define   BS1	00100000
115#define VTDLY	00200000
116#define   VT0	00000000
117#define   VT1	00200000
118
119/* c_cflag bit meaning */
120#define CBAUD	0000377
121#define  B0	0000000		/* hang up */
122#define  B50	0000001
123#define  B75	0000002
124#define  B110	0000003
125#define  B134	0000004
126#define  B150	0000005
127#define  B200	0000006
128#define  B300	0000007
129#define  B600	0000010
130#define  B1200	0000011
131#define  B1800	0000012
132#define  B2400	0000013
133#define  B4800	0000014
134#define  B9600	0000015
135#define  B19200	0000016
136#define  B38400	0000017
137#define  EXTA   B19200
138#define  EXTB   B38400
139#define  CBAUDEX 0000000
140#define  B57600   00020
141#define  B115200  00021
142#define  B230400  00022
143#define  B460800  00023
144#define  B500000  00024
145#define  B576000  00025
146#define  B921600  00026
147#define B1000000  00027
148#define B1152000  00030
149#define B1500000  00031
150#define B2000000  00032
151#define B2500000  00033
152#define B3000000  00034
153#define B3500000  00035
154#define B4000000  00036
155
156#define CSIZE	00001400
157#define   CS5	00000000
158#define   CS6	00000400
159#define   CS7	00001000
160#define   CS8	00001400
161
162#define CSTOPB	00002000
163#define CREAD	00004000
164#define PARENB	00010000
165#define PARODD	00020000
166#define HUPCL	00040000
167
168#define CLOCAL	00100000
169#define CMSPAR	  010000000000		/* mark or space (stick) parity */
170#define CRTSCTS	  020000000000		/* flow control */
171
172/* c_lflag bits */
173#define ISIG	0x00000080
174#define ICANON	0x00000100
175#define XCASE	0x00004000
176#define ECHO	0x00000008
177#define ECHOE	0x00000002
178#define ECHOK	0x00000004
179#define ECHONL	0x00000010
180#define NOFLSH	0x80000000
181#define TOSTOP	0x00400000
182#define ECHOCTL	0x00000040
183#define ECHOPRT	0x00000020
184#define ECHOKE	0x00000001
185#define FLUSHO	0x00800000
186#define PENDIN	0x20000000
187#define IEXTEN	0x00000400
188
189/* Values for the ACTION argument to `tcflow'.  */
190#define	TCOOFF		0
191#define	TCOON		1
192#define	TCIOFF		2
193#define	TCION		3
194
195/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
196#define	TCIFLUSH	0
197#define	TCOFLUSH	1
198#define	TCIOFLUSH	2
199
200/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
201#define	TCSANOW		0
202#define	TCSADRAIN	1
203#define	TCSAFLUSH	2
204
205#endif	/* _ASM_POWERPC_TERMBITS_H */
206