hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
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
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
#ifndef _ASM_POWERPC_TERMBITS_H
#define _ASM_POWERPC_TERMBITS_H
 
/*
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version
 * 2 of the License, or (at your option) any later version.
 */
 
typedef unsigned char    cc_t;
typedef unsigned int    speed_t;
typedef unsigned int    tcflag_t;
 
/*
 * termios type and macro definitions.  Be careful about adding stuff
 * to this file since it's used in GNU libc and there are strict rules
 * concerning namespace pollution.
 */
 
#define NCCS 19
struct termios {
   tcflag_t c_iflag;        /* input mode flags */
   tcflag_t c_oflag;        /* output mode flags */
   tcflag_t c_cflag;        /* control mode flags */
   tcflag_t c_lflag;        /* local mode flags */
   cc_t c_cc[NCCS];        /* control characters */
   cc_t c_line;            /* line discipline (== c_cc[19]) */
   speed_t c_ispeed;        /* input speed */
   speed_t c_ospeed;        /* output speed */
};
 
/* For PowerPC the termios and ktermios are the same */
 
struct ktermios {
   tcflag_t c_iflag;        /* input mode flags */
   tcflag_t c_oflag;        /* output mode flags */
   tcflag_t c_cflag;        /* control mode flags */
   tcflag_t c_lflag;        /* local mode flags */
   cc_t c_cc[NCCS];        /* control characters */
   cc_t c_line;            /* line discipline (== c_cc[19]) */
   speed_t c_ispeed;        /* input speed */
   speed_t c_ospeed;        /* output speed */
};
 
/* c_cc characters */
#define VINTR              0
#define VQUIT              1
#define VERASE              2
#define VKILL             3
#define VEOF             4
#define VMIN             5
#define VEOL             6
#define VTIME             7
#define VEOL2             8
#define VSWTC             9
#define VWERASE     10
#define VREPRINT    11
#define VSUSP         12
#define VSTART        13
#define VSTOP        14
#define VLNEXT        15
#define VDISCARD    16
 
/* c_iflag bits */
#define IGNBRK    0000001
#define BRKINT    0000002
#define IGNPAR    0000004
#define PARMRK    0000010
#define INPCK    0000020
#define ISTRIP    0000040
#define INLCR    0000100
#define IGNCR    0000200
#define ICRNL    0000400
#define IXON    0001000
#define IXOFF    0002000
#define IXANY    0004000
#define IUCLC    0010000
#define IMAXBEL    0020000
#define    IUTF8    0040000
 
/* c_oflag bits */
#define OPOST    0000001
#define ONLCR    0000002
#define OLCUC    0000004
 
#define OCRNL    0000010
#define ONOCR    0000020
#define ONLRET    0000040
 
#define OFILL    00000100
#define OFDEL    00000200
#define NLDLY    00001400
#define   NL0    00000000
#define   NL1    00000400
#define   NL2    00001000
#define   NL3    00001400
#define TABDLY    00006000
#define   TAB0    00000000
#define   TAB1    00002000
#define   TAB2    00004000
#define   TAB3    00006000
#define   XTABS    00006000    /* required by POSIX to == TAB3 */
#define CRDLY    00030000
#define   CR0    00000000
#define   CR1    00010000
#define   CR2    00020000
#define   CR3    00030000
#define FFDLY    00040000
#define   FF0    00000000
#define   FF1    00040000
#define BSDLY    00100000
#define   BS0    00000000
#define   BS1    00100000
#define VTDLY    00200000
#define   VT0    00000000
#define   VT1    00200000
 
/* c_cflag bit meaning */
#define CBAUD    0000377
#define  B0    0000000        /* hang up */
#define  B50    0000001
#define  B75    0000002
#define  B110    0000003
#define  B134    0000004
#define  B150    0000005
#define  B200    0000006
#define  B300    0000007
#define  B600    0000010
#define  B1200    0000011
#define  B1800    0000012
#define  B2400    0000013
#define  B4800    0000014
#define  B9600    0000015
#define  B19200    0000016
#define  B38400    0000017
#define  EXTA   B19200
#define  EXTB   B38400
#define  CBAUDEX 0000000
#define  B57600   00020
#define  B115200  00021
#define  B230400  00022
#define  B460800  00023
#define  B500000  00024
#define  B576000  00025
#define  B921600  00026
#define B1000000  00027
#define B1152000  00030
#define B1500000  00031
#define B2000000  00032
#define B2500000  00033
#define B3000000  00034
#define B3500000  00035
#define B4000000  00036
#define   BOTHER  00037
 
#define CIBAUD    077600000
#define IBSHIFT    16        /* Shift from CBAUD to CIBAUD */
 
#define CSIZE    00001400
#define   CS5    00000000
#define   CS6    00000400
#define   CS7    00001000
#define   CS8    00001400
 
#define CSTOPB    00002000
#define CREAD    00004000
#define PARENB    00010000
#define PARODD    00020000
#define HUPCL    00040000
 
#define CLOCAL    00100000
#define CMSPAR      010000000000        /* mark or space (stick) parity */
#define CRTSCTS      020000000000        /* flow control */
 
/* c_lflag bits */
#define ISIG    0x00000080
#define ICANON    0x00000100
#define XCASE    0x00004000
#define ECHO    0x00000008
#define ECHOE    0x00000002
#define ECHOK    0x00000004
#define ECHONL    0x00000010
#define NOFLSH    0x80000000
#define TOSTOP    0x00400000
#define ECHOCTL    0x00000040
#define ECHOPRT    0x00000020
#define ECHOKE    0x00000001
#define FLUSHO    0x00800000
#define PENDIN    0x20000000
#define IEXTEN    0x00000400
#define EXTPROC    0x10000000
 
/* Values for the ACTION argument to `tcflow'.  */
#define    TCOOFF        0
#define    TCOON        1
#define    TCIOFF        2
#define    TCION        3
 
/* Values for the QUEUE_SELECTOR argument to `tcflush'.  */
#define    TCIFLUSH    0
#define    TCOFLUSH    1
#define    TCIOFLUSH    2
 
/* Values for the OPTIONAL_ACTIONS argument to `tcsetattr'.  */
#define    TCSANOW        0
#define    TCSADRAIN    1
#define    TCSAFLUSH    2
 
#endif    /* _ASM_POWERPC_TERMBITS_H */