forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-11-20 2e7bd41e4e8ab3d1efdabd9e263a2f7fe79bff8c
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
/* termios type and macro definitions.  Linux version.
   Copyright (C) 1993-2016 Free Software Foundation, Inc.
   This file is part of the GNU C Library.
 
   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.
 
   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.
 
   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <http://www.gnu.org/licenses/>.  */
 
#ifndef _TERMIOS_H
# error "Never include <bits/termios.h> directly; use <termios.h> instead."
#endif
 
typedef unsigned char    cc_t;
typedef unsigned int    speed_t;
typedef unsigned int    tcflag_t;
 
#define NCCS 32
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_line;            /* line discipline */
    cc_t c_cc[NCCS];        /* control characters */
    speed_t c_ispeed;        /* input speed */
    speed_t c_ospeed;        /* output speed */
#define _HAVE_STRUCT_TERMIOS_C_ISPEED 1
#define _HAVE_STRUCT_TERMIOS_C_OSPEED 1
  };
 
/* c_cc characters */
#define VINTR 0
#define VQUIT 1
#define VERASE 2
#define VKILL 3
#define VEOF 4
#define VTIME 5
#define VMIN 6
#define VSWTC 7
#define VSTART 8
#define VSTOP 9
#define VSUSP 10
#define VEOL 11
#define VREPRINT 12
#define VDISCARD 13
#define VWERASE 14
#define VLNEXT 15
#define VEOL2 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 IUCLC    0001000
#define IXON    0002000
#define IXANY    0004000
#define IXOFF    0010000
#define IMAXBEL    0020000
#define IUTF8    0040000
 
/* c_oflag bits */
#define OPOST    0000001
#define OLCUC    0000002
#define ONLCR    0000004
#define OCRNL    0000010
#define ONOCR    0000020
#define ONLRET    0000040
#define OFILL    0000100
#define OFDEL    0000200
#if defined __USE_MISC || defined __USE_XOPEN
# define NLDLY    0000400
# define   NL0    0000000
# define   NL1    0000400
# define CRDLY    0003000
# define   CR0    0000000
# define   CR1    0001000
# define   CR2    0002000
# define   CR3    0003000
# define TABDLY    0014000
# define   TAB0    0000000
# define   TAB1    0004000
# define   TAB2    0010000
# define   TAB3    0014000
# define BSDLY    0020000
# define   BS0    0000000
# define   BS1    0020000
# define FFDLY    0100000
# define   FF0    0000000
# define   FF1    0100000
#endif
 
#define VTDLY    0040000
#define   VT0    0000000
#define   VT1    0040000
 
#ifdef __USE_MISC
# define XTABS    0014000
#endif
 
/* c_cflag bit meaning */
#ifdef __USE_MISC
# define CBAUD    0010017
#endif
#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
#ifdef __USE_MISC
# define EXTA B19200
# define EXTB B38400
#endif
#define CSIZE    0000060
#define   CS5    0000000
#define   CS6    0000020
#define   CS7    0000040
#define   CS8    0000060
#define CSTOPB    0000100
#define CREAD    0000200
#define PARENB    0000400
#define PARODD    0001000
#define HUPCL    0002000
#define CLOCAL    0004000
#ifdef __USE_MISC
# define CBAUDEX 0010000
#endif
#define  B57600   0010001
#define  B115200  0010002
#define  B230400  0010003
#define  B460800  0010004
#define  B500000  0010005
#define  B576000  0010006
#define  B921600  0010007
#define  B1000000 0010010
#define  B1152000 0010011
#define  B1500000 0010012
#define  B2000000 0010013
#define  B2500000 0010014
#define  B3000000 0010015
#define  B3500000 0010016
#define  B4000000 0010017
#define __MAX_BAUD B4000000
#ifdef __USE_MISC
# define CIBAUD      002003600000        /* input baud rate (not used) */
# define CMSPAR   010000000000        /* mark or space (stick) parity */
# define CRTSCTS  020000000000        /* flow control */
#endif
 
/* c_lflag bits */
#define ISIG    0000001
#define ICANON    0000002
#if defined __USE_MISC || defined __USE_XOPEN
# define XCASE    0000004
#endif
#define ECHO    0000010
#define ECHOE    0000020
#define ECHOK    0000040
#define ECHONL    0000100
#define NOFLSH    0000200
#define TOSTOP    0000400
#ifdef __USE_MISC
# define ECHOCTL 0001000
# define ECHOPRT 0002000
# define ECHOKE     0004000
# define FLUSHO     0010000
# define PENDIN     0040000
#endif
#define IEXTEN    0100000
#ifdef __USE_MISC
# define EXTPROC 0200000
#endif
 
/* tcflow() and TCXONC use these */
#define    TCOOFF        0
#define    TCOON        1
#define    TCIOFF        2
#define    TCION        3
 
/* tcflush() and TCFLSH use these */
#define    TCIFLUSH    0
#define    TCOFLUSH    1
#define    TCIOFLUSH    2
 
/* tcsetattr uses these */
#define    TCSANOW        0
#define    TCSADRAIN    1
#define    TCSAFLUSH    2
 
 
#define _IOT_termios /* Hurd ioctl type field.  */ \
  _IOT (_IOTS (cflag_t), 4, _IOTS (cc_t), NCCS, _IOTS (speed_t), 2)