1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2 #ifndef _ALPHA_TERMBITS_H
3 #define _ALPHA_TERMBITS_H
4 
5 #include <asm-generic/termbits-common.h>
6 
7 typedef unsigned int	tcflag_t;
8 
9 /*
10  * termios type and macro definitions.  Be careful about adding stuff
11  * to this file since it's used in GNU libc and there are strict rules
12  * concerning namespace pollution.
13  */
14 
15 #define NCCS 19
16 struct termios {
17 	tcflag_t c_iflag;		/* input mode flags */
18 	tcflag_t c_oflag;		/* output mode flags */
19 	tcflag_t c_cflag;		/* control mode flags */
20 	tcflag_t c_lflag;		/* local mode flags */
21 	cc_t c_cc[NCCS];		/* control characters */
22 	cc_t c_line;			/* line discipline (== c_cc[19]) */
23 	speed_t c_ispeed;		/* input speed */
24 	speed_t c_ospeed;		/* output speed */
25 };
26 
27 /* Alpha has identical termios and termios2 */
28 
29 struct termios2 {
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_cc[NCCS];		/* control characters */
35 	cc_t c_line;			/* line discipline (== c_cc[19]) */
36 	speed_t c_ispeed;		/* input speed */
37 	speed_t c_ospeed;		/* output speed */
38 };
39 
40 /* Alpha has matching termios and ktermios */
41 
42 struct ktermios {
43 	tcflag_t c_iflag;		/* input mode flags */
44 	tcflag_t c_oflag;		/* output mode flags */
45 	tcflag_t c_cflag;		/* control mode flags */
46 	tcflag_t c_lflag;		/* local mode flags */
47 	cc_t c_cc[NCCS];		/* control characters */
48 	cc_t c_line;			/* line discipline (== c_cc[19]) */
49 	speed_t c_ispeed;		/* input speed */
50 	speed_t c_ospeed;		/* output speed */
51 };
52 
53 /* c_cc characters */
54 #define VEOF		 0
55 #define VEOL		 1
56 #define VEOL2		 2
57 #define VERASE		 3
58 #define VWERASE		 4
59 #define VKILL		 5
60 #define VREPRINT	 6
61 #define VSWTC		 7
62 #define VINTR		 8
63 #define VQUIT		 9
64 #define VSUSP		10
65 #define VSTART		12
66 #define VSTOP		13
67 #define VLNEXT		14
68 #define VDISCARD	15
69 #define VMIN		16
70 #define VTIME		17
71 
72 /* c_iflag bits */
73 #define IXON	0x0200
74 #define IXOFF	0x0400
75 #define IUCLC	0x1000
76 #define IMAXBEL	0x2000
77 #define IUTF8	0x4000
78 
79 /* c_oflag bits */
80 #define ONLCR	0x00002
81 #define OLCUC	0x00004
82 #define NLDLY	0x00300
83 #define   NL0	0x00000
84 #define   NL1	0x00100
85 #define   NL2	0x00200
86 #define   NL3	0x00300
87 #define TABDLY	0x00c00
88 #define   TAB0	0x00000
89 #define   TAB1	0x00400
90 #define   TAB2	0x00800
91 #define   TAB3	0x00c00
92 #define CRDLY	0x03000
93 #define   CR0	0x00000
94 #define   CR1	0x01000
95 #define   CR2	0x02000
96 #define   CR3	0x03000
97 #define FFDLY	0x04000
98 #define   FF0	0x00000
99 #define   FF1	0x04000
100 #define BSDLY	0x08000
101 #define   BS0	0x00000
102 #define   BS1	0x08000
103 #define VTDLY	0x10000
104 #define   VT0	0x00000
105 #define   VT1	0x10000
106 /*
107  * Should be equivalent to TAB3, see description of TAB3 in
108  * POSIX.1-2008, Ch. 11.2.3 "Output Modes"
109  */
110 #define XTABS	TAB3
111 
112 /* c_cflag bit meaning */
113 #define CBAUD		0x0000001f
114 #define CBAUDEX		0x00000000
115 #define BOTHER		0x0000001f
116 #define     B57600	0x00000010
117 #define    B115200	0x00000011
118 #define    B230400	0x00000012
119 #define    B460800	0x00000013
120 #define    B500000	0x00000014
121 #define    B576000	0x00000015
122 #define    B921600	0x00000016
123 #define   B1000000	0x00000017
124 #define   B1152000	0x00000018
125 #define   B1500000	0x00000019
126 #define   B2000000	0x0000001a
127 #define   B2500000	0x0000001b
128 #define   B3000000	0x0000001c
129 #define   B3500000	0x0000001d
130 #define   B4000000	0x0000001e
131 #define CSIZE		0x00000300
132 #define   CS5		0x00000000
133 #define   CS6		0x00000100
134 #define   CS7		0x00000200
135 #define   CS8		0x00000300
136 #define CSTOPB		0x00000400
137 #define CREAD		0x00000800
138 #define PARENB		0x00001000
139 #define PARODD		0x00002000
140 #define HUPCL		0x00004000
141 #define CLOCAL		0x00008000
142 #define CIBAUD		0x001f0000
143 
144 /* c_lflag bits */
145 #define ISIG	0x00000080
146 #define ICANON	0x00000100
147 #define XCASE	0x00004000
148 #define ECHO	0x00000008
149 #define ECHOE	0x00000002
150 #define ECHOK	0x00000004
151 #define ECHONL	0x00000010
152 #define NOFLSH	0x80000000
153 #define TOSTOP	0x00400000
154 #define ECHOCTL	0x00000040
155 #define ECHOPRT	0x00000020
156 #define ECHOKE	0x00000001
157 #define FLUSHO	0x00800000
158 #define PENDIN	0x20000000
159 #define IEXTEN	0x00000400
160 #define EXTPROC	0x10000000
161 
162 /* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
163 #define	TCSANOW		0
164 #define	TCSADRAIN	1
165 #define	TCSAFLUSH	2
166 
167 #endif /* _ALPHA_TERMBITS_H */
168