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