summaryrefslogtreecommitdiff
path: root/common/usb_errno.h
blob: 7ccadb6c115691c70eb73a978bb575f2de5fe281 (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
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
/****************************************************************************
 * include/errno.h
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.  The
 * ASF licenses this file to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance with the
 * License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
 * License for the specific language governing permissions and limitations
 * under the License.
 *
 ****************************************************************************/

#ifndef __INCLUDE_ERRNO_H
#define __INCLUDE_ERRNO_H

/****************************************************************************
 * Included Files
 ****************************************************************************/

/****************************************************************************
 * Pre-processor Definitions
 ****************************************************************************/

/* Convenience/compatibility definition.  If the errno is accessed from the
 * internal OS code, then the OS code should use the set_errno() and
 * get_errno().  Currently, those are just placeholders but would be needed
 * in the KERNEL mode build in order to instantiate the process address
 * environment as necessary to access the TLS-based errno variable.
 */

#define errno *__errno()
#define set_errno(e) \
  do \
    { \
       errno = (int)(e); \
    } \
  while (0)
#define get_errno() errno

/* Definitions of error numbers and the string that would be
 * returned by strerror().
 */

#define EPERM               1
#define EPERM_STR           "Operation not permitted"
#define ENOENT              2
#define ENOENT_STR          "No such file or directory"
#define ESRCH               3
#define ESRCH_STR           "No such process"
#define EINTR               4
#define EINTR_STR           "Interrupted system call"
#define EIO                 5
#define EIO_STR             "I/O error"
#define ENXIO               6
#define ENXIO_STR           "No such device or address"
#define E2BIG               7
#define E2BIG_STR           "Arg list too long"
#define ENOEXEC             8
#define ENOEXEC_STR         "Exec format error"
#define EBADF               9
#define EBADF_STR           "Bad file number"
#define ECHILD              10
#define ECHILD_STR          "No child processes"
#define EAGAIN              11
#define EWOULDBLOCK         EAGAIN
#define EAGAIN_STR          "Try again"
#define ENOMEM              12
#define ENOMEM_STR          "Out of memory"
#define EACCES              13
#define EACCES_STR          "Permission denied"
#define EFAULT              14                         /* Linux errno extension */
#define EFAULT_STR          "Bad address"
#define ENOTBLK             15
#define ENOTBLK_STR         "Block device required"
#define EBUSY               16
#define EBUSY_STR           "Device or resource busy"
#define EEXIST              17
#define EEXIST_STR          "File exists"
#define EXDEV               18
#define EXDEV_STR           "Cross-device link"
#define ENODEV              19
#define ENODEV_STR          "No such device"
#define ENOTDIR             20
#define ENOTDIR_STR         "Not a directory"
#define EISDIR              21
#define EISDIR_STR          "Is a directory"
#define EINVAL              22
#define EINVAL_STR          "Invalid argument"
#define ENFILE              23
#define ENFILE_STR          "File table overflow"
#define EMFILE              24
#define EMFILE_STR          "Too many open files"
#define ENOTTY              25
#define ENOTTY_STR          "Not a typewriter"
#define ETXTBSY             26
#define ETXTBSY_STR         "Text file busy"
#define EFBIG               27
#define EFBIG_STR           "File too large"
#define ENOSPC              28
#define ENOSPC_STR          "No space left on device"
#define ESPIPE              29
#define ESPIPE_STR          "Illegal seek"
#define EROFS               30
#define EROFS_STR           "Read-only file system"
#define EMLINK              31
#define EMLINK_STR          "Too many links"
#define EPIPE               32
#define EPIPE_STR           "Broken pipe"
#define EDOM                33
#define EDOM_STR            "Math argument out of domain of func"
#define ERANGE              34
#define ERANGE_STR          "Math result not representable"
#define ENOMSG              35
#define ENOMSG_STR          "No message of desired type"
#define EIDRM               36
#define EIDRM_STR           "Identifier removed"
#define ECHRNG              37                         /* Linux errno extension */
#define ECHRNG_STR          "Channel number out of range"
#define EL2NSYNC            38                         /* Linux errno extension */
#define EL2NSYNC_STR        "Level 2 not synchronized"
#define EL3HLT              39                         /* Linux errno extension */
#define EL3HLT_STR          "Level 3 halted"
#define EL3RST              40                         /* Linux errno extension */
#define EL3RST_STR          "Level 3 reset"
#define ELNRNG              41                         /* Linux errno extension */
#define ELNRNG_STR          "Link number out of range"
#define EUNATCH             42                         /* Linux errno extension */
#define EUNATCH_STR         "Protocol driver not attached"
#define ENOCSI              43                         /* Linux errno extension */
#define ENOCSI_STR          "No CSI structure available"
#define EL2HLT              44                         /* Linux errno extension */
#define EL2HLT_STR          "Level 2 halted"
#define EDEADLK             45
#define EDEADLK_STR         "Resource deadlock would occur"
#define ENOLCK              46
#define ENOLCK_STR          "No record locks available"

#define EBADE               50                         /* Linux errno extension */
#define EBADE_STR           "Invalid exchange"
#define EBADR               51                         /* Linux errno extension */
#define EBADR_STR           "Invalid request descriptor"
#define EXFULL              52                         /* Linux errno extension */
#define EXFULL_STR          "Exchange full"
#define ENOANO              53                         /* Linux errno extension */
#define ENOANO_STR          "No anode"
#define EBADRQC             54                         /* Linux errno extension */
#define EBADRQC_STR         "Invalid request code"
#define EBADSLT             55                         /* Linux errno extension */
#define EBADSLT_STR         "Invalid slot"
#define EDEADLOCK           56                         /* Linux errno extension */
#define EDEADLOCK_STR       "File locking deadlock error"
#define EBFONT              57                         /* Linux errno extension */
#define EBFONT_STR          "Bad font file format"

#define ENOSTR              60
#define ENOSTR_STR          "Device not a stream"
#define ENODATA             61
#define ENODATA_STR         "No data available"
#define ETIME               62
#define ETIME_STR           "Timer expired"
#define ENOSR               63
#define ENOSR_STR           "Out of streams resources"
#define ENONET              64                         /* Linux errno extension */
#define ENONET_STR          "Machine is not on the network"
#define ENOPKG              65                         /* Linux errno extension */
#define ENOPKG_STR          "Package not installed"
#define EREMOTE             66                         /* Linux errno extension */
#define EREMOTE_STR         "Object is remote"
#define ENOLINK             67
#define ENOLINK_STR         "Link has been severed"
#define EADV                68                         /* Linux errno extension */
#define EADV_STR            "Advertise error"
#define ESRMNT              69                         /* Linux errno extension */
#define ESRMNT_STR          "Srmount error"
#define ECOMM               70                         /* Linux errno extension */
#define ECOMM_STR           "Communication error on send"
#define EPROTO              71
#define EPROTO_STR          "Protocol error"

#define EMULTIHOP           74
#define EMULTIHOP_STR       "Multihop attempted"
#define ELBIN               75                         /* Linux errno extension */
#define ELBIN_STR           "Inode is remote"
#define EDOTDOT             76                         /* Linux errno extension */
#define EDOTDOT_STR         "RFS specific error"
#define EBADMSG             77
#define EBADMSG_STR         "Not a data message"

#define EFTYPE              79
#define EFTYPE_STR          "Inappropriate file type or format"
#define ENOTUNIQ            80                         /* Linux errno extension */
#define ENOTUNIQ_STR        "Name not unique on network"
#define EBADFD              81                         /* Linux errno extension */
#define EBADFD_STR          "File descriptor in bad state"
#define EREMCHG             82                         /* Linux errno extension */
#define EREMCHG_STR         "Remote address changed"
#define ELIBACC             83                         /* Linux errno extension */
#define ELIBACC_STR         "Can not access a needed shared library"
#define ELIBBAD             84                         /* Linux errno extension */
#define ELIBBAD_STR         "Accessing a corrupted shared library"
#define ELIBSCN             85                         /* Linux errno extension */
#define ELIBSCN_STR         ".lib section in a.out corrupted"
#define ELIBMAX             86                         /* Linux errno extension */
#define ELIBMAX_STR         "Attempting to link in too many shared libraries"
#define ELIBEXEC            87                         /* Linux errno extension */
#define ELIBEXEC_STR        "Cannot exec a shared library directly"
#define ENOSYS              88
#define ENOSYS_STR          "Function not implemented"
#define ENMFILE             89                         /* Cygwin */
#define ENMFILE_STR         "No more files"
#define ENOTEMPTY           90
#define ENOTEMPTY_STR       "Directory not empty"
#define ENAMETOOLONG        91
#define ENAMETOOLONG_STR    "File name too long"
#define ELOOP               92
#define ELOOP_STR           "Too many symbolic links encountered"

#define EOPNOTSUPP          95
#define EOPNOTSUPP_STR      "Operation not supported on transport endpoint"
#define EPFNOSUPPORT        96
#define EPFNOSUPPORT_STR    "Protocol family not supported"

#define ECONNRESET          104
#define ECONNRESET_STR      "Connection reset by peer"
#define ENOBUFS             105
#define ENOBUFS_STR         "No buffer space available"
#define EAFNOSUPPORT        106
#define EAFNOSUPPORT_STR    "Address family not supported by protocol"
#define EPROTOTYPE          107
#define EPROTOTYPE_STR      "Protocol wrong type for socket"
#define ENOTSOCK            108
#define ENOTSOCK_STR        "Socket operation on non-socket"
#define ENOPROTOOPT         109
#define ENOPROTOOPT_STR     "Protocol not available"
#define ESHUTDOWN           110                         /* Linux errno extension */
#define ESHUTDOWN_STR       "Cannot send after transport endpoint shutdown"
#define ECONNREFUSED        111
#define ECONNREFUSED_STR    "Connection refused"
#define EADDRINUSE          112
#define EADDRINUSE_STR      "Address already in use"
#define ECONNABORTED        113
#define ECONNABORTED_STR    "Software caused connection abort"
#define ENETUNREACH         114
#define ENETUNREACH_STR     "Network is unreachable"
#define ENETDOWN            115
#define ENETDOWN_STR        "Network is down"
#define ETIMEDOUT           116
#define ETIMEDOUT_STR       "Connection timed out"
#define EHOSTDOWN           117
#define EHOSTDOWN_STR       "Host is down"
#define EHOSTUNREACH        118
#define EHOSTUNREACH_STR    "No route to host"
#define EINPROGRESS         119
#define EINPROGRESS_STR     "Operation now in progress"
#define EALREADY            120
#define EALREADY_STR        "Socket already connected"
#define EDESTADDRREQ        121
#define EDESTADDRREQ_STR    "Destination address required"
#define EMSGSIZE            122
#define EMSGSIZE_STR        "Message too long"
#define EPROTONOSUPPORT     123
#define EPROTONOSUPPORT_STR "Protocol not supported"
#define ESOCKTNOSUPPORT     124                         /* Linux errno extension */
#define ESOCKTNOSUPPORT_STR "Socket type not supported"
#define EADDRNOTAVAIL       125
#define EADDRNOTAVAIL_STR   "Cannot assign requested address"
#define ENETRESET           126
#define ENETRESET_STR       "Network dropped connection because of reset"
#define EISCONN             127
#define EISCONN_STR         "Transport endpoint is already connected"
#define ENOTCONN            128
#define ENOTCONN_STR        "Transport endpoint is not connected"
#define ETOOMANYREFS        129
#define ETOOMANYREFS_STR    "Too many references: cannot splice"
#define EPROCLIM            130
#define EPROCLIM_STR        "Limit would be exceeded by attempted fork"
#define EUSERS              131
#define EUSERS_STR          "Too many users"
#define EDQUOT              132
#define EDQUOT_STR          "Quota exceeded"
#define ESTALE              133
#define ESTALE_STR          "Stale NFS file handle"
#define ENOTSUP             134
#define ENOTSUP_STR         "Not supported"
#define ENOMEDIUM           135                         /* Linux errno extension */
#define ENOMEDIUM_STR       "No medium found"
#define ENOSHARE            136                         /* Cygwin */
#define ENOSHARE_STR        "No such host or network path"
#define ECASECLASH          137                         /* Cygwin */
#define ECASECLASH_STR      "Filename exists with different case"
#define EILSEQ              138
#define EILSEQ_STR          "Illegal byte sequence"
#define EOVERFLOW           139
#define EOVERFLOW_STR       "Value too large for defined data type"
#define ECANCELED           140
#define ECANCELED_STR       "Operation cancelled"
#define ENOTRECOVERABLE     141
#define ENOTRECOVERABLE_STR "State not recoverable"
#define EOWNERDEAD          142
#define EOWNERDEAD_STR      "Previous owner died"
#define ESTRPIPE            143                         /* Linux errno extension */
#define ESTRPIPE_STR        "Streams pipe error"

#define __ELASTERROR        2000                        /* Users can add values starting here */

/****************************************************************************
 * Public Type Definitions
 ****************************************************************************/

/****************************************************************************
 * Public Function Prototypes
 ****************************************************************************/

#undef EXTERN
#if defined(__cplusplus)
#define EXTERN extern "C"
extern "C"
{
#else
#define EXTERN extern
#endif

/* Return a pointer to the thread specific errno. */

int *__errno(void);

#undef EXTERN
#if defined(__cplusplus)
}
#endif

#endif /* __INCLUDE_ERRNO_H */