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