summaryrefslogtreecommitdiffstats
path: root/qemu/linux-user/openrisc/termbits.h
blob: 373af77215732e9fa91147c903fa351977b44609 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
typedef unsigned char   target_openrisc_cc;        /*cc_t*/
typedef unsigned int    target_openrisc_speed;     /*speed_t*/
typedef unsigned int    target_openrisc_tcflag;    /*tcflag_t*/

#define TARGET_NCCS 19
struct target_termios {
    target_openrisc_tcflag c_iflag;               /* input mode flags */
    target_openrisc_tcflag c_oflag;               /* output mode flags */
    target_openrisc_tcflag c_cflag;               /* control mode flags */
    target_openrisc_tcflag c_lflag;               /* local mode flags */
    target_openrisc_cc c_line;                    /* line discipline */
    target_openrisc_cc c_cc[TARGET_NCCS];         /* control characters */
};

struct target_termios2 {
    target_openrisc_tcflag c_iflag;               /* input mode flags */
    target_openrisc_tcflag c_oflag;               /* output mode flags */
    target_openrisc_tcflag c_cflag;               /* control mode flags */
    target_openrisc_tcflag c_lflag;               /* local mode flags */
    target_openrisc_cc c_line;                    /* line discipline */
    target_openrisc_cc c_cc[TARGET_NCCS];         /* control characters */
    target_openrisc_speed c_ispeed;               /* input speed */
    target_openrisc_speed c_ospeed;               /* output speed */
};

struct target_termios3 {
    target_openrisc_tcflag c_iflag;               /* input mode flags */
    target_openrisc_tcflag c_oflag;               /* output mode flags */
    target_openrisc_tcflag c_cflag;               /* control mode flags */
    target_openrisc_tcflag c_lflag;               /* local mode flags */
    target_openrisc_cc c_line;                    /* line discipline */
    target_openrisc_cc c_cc[TARGET_NCCS];         /* control characters */
    target_openrisc_speed c_ispeed;               /* input speed */
    target_openrisc_speed c_ospeed;               /* output speed */
};

/* c_cc characters */
#define TARGET_VINTR 0
#define TARGET_VQUIT 1
#define TARGET_VERASE 2
#define TARGET_VKILL 3
#define TARGET_VEOF 4
#define TARGET_VTIME 5
#define TARGET_VMIN 6
#define TARGET_VSWTC 7
#define TARGET_VSTART 8
#define TARGET_VSTOP 9
#define TARGET_VSUSP 10
#define TARGET_VEOL 11
#define TARGET_VREPRINT 12
#define TARGET_VDISCARD 13
#define TARGET_VWERASE 14
#define TARGET_VLNEXT 15
#define TARGET_VEOL2 16

/* c_iflag bits */
#define TARGET_IGNBRK  0000001
#define TARGET_BRKINT  0000002
#define TARGET_IGNPAR  0000004
#define TARGET_PARMRK  0000010
#define TARGET_INPCK   0000020
#define TARGET_ISTRIP  0000040
#define TARGET_INLCR   0000100
#define TARGET_IGNCR   0000200
#define TARGET_ICRNL   0000400
#define TARGET_IUCLC   0001000
#define TARGET_IXON    0002000
#define TARGET_IXANY   0004000
#define TARGET_IXOFF   0010000
#define TARGET_IMAXBEL 0020000
#define TARGET_IUTF8   0040000

/* c_oflag bits */
#define TARGET_OPOST   0000001
#define TARGET_OLCUC   0000002
#define TARGET_ONLCR   0000004
#define TARGET_OCRNL   0000010
#define TARGET_ONOCR   0000020
#define TARGET_ONLRET  0000040
#define TARGET_OFILL   0000100
#define TARGET_OFDEL   0000200
#define TARGET_NLDLY   0000400
#define TARGET_NL0     0000000
#define TARGET_NL1     0000400
#define TARGET_CRDLY   0003000
#define TARGET_CR0     0000000
#define TARGET_CR1     0001000
#define TARGET_CR2     0002000
#define TARGET_CR3     0003000
#define TARGET_TABDLY  0014000
#define TARGET_TAB0    0000000
#define TARGET_TAB1    0004000
#define TARGET_TAB2    0010000
#define TARGET_TAB3    0014000
#define TARGET_XTABS   0014000
#define TARGET_BSDLY   0020000
#define TARGET_BS0     0000000
#define TARGET_BS1     0020000
#define TARGET_VTDLY   0040000
#define TARGET_VT0     0000000
#define TARGET_VT1     0040000
#define TARGET_FFDLY   0100000
#define TARGET_FF0     0000000
#define TARGET_FF1     0100000

/* c_cflag bit meaning */
#define TARGET_CBAUD    0010017
#define TARGET_B0       0000000                /* hang up */
#define TARGET_B50      0000001
#define TARGET_B75      0000002
#define TARGET_B110     0000003
#define TARGET_B134     0000004
#define TARGET_B150     0000005
#define TARGET_B200     0000006
#define TARGET_B300     0000007
#define TARGET_B600     0000010
#define TARGET_B1200    0000011
#define TARGET_B1800    0000012
#define TARGET_B2400    0000013
#define TARGET_B4800    0000014
#define TARGET_B9600    0000015
#define TARGET_B19200   0000016
#define TARGET_B38400   0000017
#define TARGET_EXTA     B19200
#define TARGET_EXTB     B38400
#define TARGET_CSIZE    0000060
#define TARGET_CS5      0000000
#define TARGET_CS6      0000020
#define TARGET_CS7      0000040
#define TARGET_CS8      0000060
#define TARGET_CSTOPB   0000100
#define TARGET_CREAD    0000200
#define TARGET_PARENB   0000400
#define TARGET_PARODD   0001000
#define TARGET_HUPCL    0002000
#define TARGET_CLOCAL   0004000
#define TARGET_CBAUDEX  0010000
#define TARGET_BOTHER   0010000
#define TARGET_B57600   0010001
#define TARGET_B115200  0010002
#define TARGET_B230400  0010003
#define TARGET_B460800  0010004
#define TARGET_B500000  0010005
#define TARGET_B576000  0010006
#define TARGET_B921600  0010007
#define TARGET_B1000000 0010010
#define TARGET_B1152000 0010011
#define TARGET_B1500000 0010012
#define TARGET_B2000000 0010013
#define TARGET_B2500000 0010014
#define TARGET_B3000000 0010015
#define TARGET_B3500000 0010016
#define TARGET_B4000000 0010017
#define TARGET_CIBAUD   002003600000   /* input baud rate */
#define TARGET_CMSPAR   010000000000   /* mark or space (stick) parity */
#define TARGET_CRTSCTS  020000000000   /* flow control */

#define TARGET_IBSHIFT   16            /* Shift from CBAUD to CIBAUD */

/* c_lflag bits */
#define TARGET_ISIG    0000001
#define TARGET_ICANON  0000002
#define TARGET_XCASE   0000004
#define TARGET_ECHO    0000010
#define TARGET_ECHOE   0000020
#define TARGET_ECHOK   0000040
#define TARGET_ECHONL  0000100
#define TARGET_NOFLSH  0000200
#define TARGET_TOSTOP  0000400
#define TARGET_ECHOCTL 0001000
#define TARGET_ECHOPRT 0002000
#define TARGET_ECHOKE  0004000
#define TARGET_FLUSHO  0010000
#define TARGET_PENDIN  0040000
#define TARGET_IEXTEN  0100000
#define TARGET_EXTPROC 0200000

/* tcflow() and TCXONC use these */
#define TARGET_TCOOFF          0
#define TARGET_TCOON           1
#define TARGET_TCIOFF          2
#define TARGET_TCION           3

/* tcflush() and TCFLSH use these */
#define TARGET_TCIFLUSH        0
#define TARGET_TCOFLUSH        1
#define TARGET_TCIOFLUSH       2

/* tcsetattr uses these */
#define TARGET_TCSANOW         0
#define TARGET_TCSADRAIN       1
#define TARGET_TCSAFLUSH       2

/* ioctls */
#define TARGET_TCGETS          0x5401
#define TARGET_TCSETS          0x5402
#define TARGET_TCSETSW         0x5403
#define TARGET_TCSETSF         0x5404
#define TARGET_TCGETA          0x5405
#define TARGET_TCSETA          0x5406
#define TARGET_TCSETAW         0x5407
#define TARGET_TCSETAF         0x5408
#define TARGET_TCSBRK          0x5409
#define TARGET_TCXONC          0x540A
#define TARGET_TCFLSH          0x540B
#define TARGET_TIOCEXCL        0x540C
#define TARGET_TIOCNXCL        0x540D
#define TARGET_TIOCSCTTY       0x540E
#define TARGET_TIOCGPGRP       0x540F
#define TARGET_TIOCSPGRP       0x5410
#define TARGET_TIOCOUTQ        0x5411
#define TARGET_TIOCSTI         0x5412
#define TARGET_TIOCGWINSZ      0x5413
#define TARGET_TIOCSWINSZ      0x5414
#define TARGET_TIOCMGET        0x5415
#define TARGET_TIOCMBIS        0x5416
#define TARGET_TIOCMBIC        0x5417
#define TARGET_TIOCMSET        0x5418
#define TARGET_TIOCGSOFTCAR    0x5419
#define TARGET_TIOCSSOFTCAR    0x541A
#define TARGET_FIONREAD        0x541B
#define TARGET_TIOCINQ         FIONREAD
#define TARGET_TIOCLINUX       0x541C
#define TARGET_TIOCCONS        0x541D
#define TARGET_TIOCGSERIAL     0x541E
#define TARGET_TIOCSSERIAL     0x541F
#define TARGET_TIOCPKT         0x5420
#define TARGET_FIONBIO         0x5421
#define TARGET_TIOCNOTTY       0x5422
#define TARGET_TIOCSETD        0x5423
#define TARGET_TIOCGETD        0x5424
#define TARGET_TCSBRKP         0x5425  /* Needed for POSIX tcsendbreak() */
#define TARGET_TIOCSBRK        0x5427  /* BSD compatibility */
#define TARGET_TIOCCBRK        0x5428  /* BSD compatibility */
#define TARGET_TIOCGSID        0x5429  /* Return the session ID of FD */
#define TARGET_TCGETS2         TARGET_IOR('T', 0x2A, struct termios2)
#define TARGET_TCSETS2         TARGET_IOW('T', 0x2B, struct termios2)
#define TARGET_TCSETSW2        TARGET_IOW('T', 0x2C, struct termios2)
#define TARGET_TCSETSF2        TARGET_IOW('T', 0x2D, struct termios2)
#define TARGET_TIOCGRS485      0x542E
#ifndef TARGET_TIOCSRS485
#define TARGET_TIOCSRS485      0x542F
#endif
/* Get Pty Number (of pty-mux device) */
#define TARGET_TIOCGPTN        TARGET_IOR('T', 0x30, unsigned int)
/* Lock/unlock Pty */
#define TARGET_TIOCSPTLCK      TARGET_IOW('T', 0x31, int)
/* Get primary device node of /dev/console */
#define TARGET_TIOCGDEV        TARGET_IOR('T', 0x32, unsigned int)
#define TARGET_TCGETX          0x5432 /* SYS5 TCGETX compatibility */
#define TARGET_TCSETX          0x5433
#define TARGET_TCSETXF         0x5434
#define TARGET_TCSETXW         0x5435
/* pty: generate signal */
#define TARGET_TIOCSIG         TARGET_IOW('T', 0x36, int)
#define TARGET_TIOCVHANGUP     0x5437

#define TARGET_FIONCLEX        0x5450
#define TARGET_FIOCLEX         0x5451
#define TARGET_FIOASYNC        0x5452
#define TARGET_TIOCSERCONFIG   0x5453
#define TARGET_TIOCSERGWILD    0x5454
#define TARGET_TIOCSERSWILD    0x5455
#define TARGET_TIOCGLCKTRMIOS  0x5456
#define TARGET_TIOCSLCKTRMIOS  0x5457
#define TARGET_TIOCSERGSTRUCT  0x5458 /* For debugging only */
#define TARGET_TIOCSERGETLSR   0x5459 /* Get line status register */
#define TARGET_TIOCSERGETMULTI 0x545A /* Get multiport config  */
#define TARGET_TIOCSERSETMULTI 0x545B /* Set multiport config */

/* wait for a change on serial input line(s) */
#define TARGET_TIOCMIWAIT      0x545C
/* read serial port inline interrupt counts */
#define TARGET_TIOCGICOUNT     0x545D

/*
 * Some arches already define TARGET_FIOQSIZE due to a historical
 * conflict with a Hayes modem-specific ioctl value.
 */
#ifndef TARGET_FIOQSIZE
#define TARGET_FIOQSIZE        0x5460
#endif

/* Used for packet mode */
#define TARGET_TIOCPKT_DATA             0
#define TARGET_TIOCPKT_FLUSHREAD        1
#define TARGET_TIOCPKT_FLUSHWRITE       2
#define TARGET_TIOCPKT_STOP             4
#define TARGET_TIOCPKT_START            8
#define TARGET_TIOCPKT_NOSTOP          16
#define TARGET_TIOCPKT_DOSTOP          32
#define TARGET_TIOCPKT_IOCTL           64

#define TARGET_TIOCSER_TEMT    0x01    /* Transmitter physically empty */