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