Line data Source code
1 :
2 : /* Errno module */
3 :
4 : #include "Python.h"
5 :
6 : /* Windows socket errors (WSA*) */
7 : #ifdef MS_WINDOWS
8 : #include <windows.h>
9 : #endif
10 :
11 : /*
12 : * Pull in the system error definitions
13 : */
14 :
15 : static PyMethodDef errno_methods[] = {
16 : {NULL, NULL}
17 : };
18 :
19 : /* Helper function doing the dictionary inserting */
20 :
21 : static void
22 369 : _inscode(PyObject *d, PyObject *de, char *name, int code)
23 : {
24 369 : PyObject *u = PyString_FromString(name);
25 369 : PyObject *v = PyInt_FromLong((long) code);
26 :
27 : /* Don't bother checking for errors; they'll be caught at the end
28 : * of the module initialization function by the caller of
29 : * initerrno().
30 : */
31 369 : if (u && v) {
32 : /* insert in modules dict */
33 369 : PyDict_SetItem(d, u, v);
34 : /* insert in errorcode dict */
35 369 : PyDict_SetItem(de, v, u);
36 : }
37 369 : Py_XDECREF(u);
38 369 : Py_XDECREF(v);
39 369 : }
40 :
41 : PyDoc_STRVAR(errno__doc__,
42 : "This module makes available standard errno system symbols.\n\
43 : \n\
44 : The value of each symbol is the corresponding integer value,\n\
45 : e.g., on most systems, errno.ENOENT equals the integer 2.\n\
46 : \n\
47 : The dictionary errno.errorcode maps numeric codes to symbol names,\n\
48 : e.g., errno.errorcode[2] could be the string 'ENOENT'.\n\
49 : \n\
50 : Symbols that are not relevant to the underlying system are not defined.\n\
51 : \n\
52 : To map error codes to error messages, use the function os.strerror(),\n\
53 : e.g. os.strerror(2) could return 'No such file or directory'.");
54 :
55 : PyMODINIT_FUNC
56 3 : initerrno(void)
57 : {
58 : PyObject *m, *d, *de;
59 3 : m = Py_InitModule3("errno", errno_methods, errno__doc__);
60 3 : if (m == NULL)
61 0 : return;
62 3 : d = PyModule_GetDict(m);
63 3 : de = PyDict_New();
64 3 : if (!d || !de || PyDict_SetItemString(d, "errorcode", de) < 0)
65 0 : return;
66 :
67 : /* Macro so I don't have to edit each and every line below... */
68 : #define inscode(d, ds, de, name, code, comment) _inscode(d, de, name, code)
69 :
70 : /*
71 : * The names and comments are borrowed from linux/include/errno.h,
72 : * which should be pretty all-inclusive
73 : */
74 :
75 : #ifdef ENODEV
76 3 : inscode(d, ds, de, "ENODEV", ENODEV, "No such device");
77 : #endif
78 : #ifdef ENOCSI
79 3 : inscode(d, ds, de, "ENOCSI", ENOCSI, "No CSI structure available");
80 : #endif
81 : #ifdef EHOSTUNREACH
82 3 : inscode(d, ds, de, "EHOSTUNREACH", EHOSTUNREACH, "No route to host");
83 : #else
84 : #ifdef WSAEHOSTUNREACH
85 : inscode(d, ds, de, "EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
86 : #endif
87 : #endif
88 : #ifdef ENOMSG
89 3 : inscode(d, ds, de, "ENOMSG", ENOMSG, "No message of desired type");
90 : #endif
91 : #ifdef EUCLEAN
92 3 : inscode(d, ds, de, "EUCLEAN", EUCLEAN, "Structure needs cleaning");
93 : #endif
94 : #ifdef EL2NSYNC
95 3 : inscode(d, ds, de, "EL2NSYNC", EL2NSYNC, "Level 2 not synchronized");
96 : #endif
97 : #ifdef EL2HLT
98 3 : inscode(d, ds, de, "EL2HLT", EL2HLT, "Level 2 halted");
99 : #endif
100 : #ifdef ENODATA
101 3 : inscode(d, ds, de, "ENODATA", ENODATA, "No data available");
102 : #endif
103 : #ifdef ENOTBLK
104 3 : inscode(d, ds, de, "ENOTBLK", ENOTBLK, "Block device required");
105 : #endif
106 : #ifdef ENOSYS
107 3 : inscode(d, ds, de, "ENOSYS", ENOSYS, "Function not implemented");
108 : #endif
109 : #ifdef EPIPE
110 3 : inscode(d, ds, de, "EPIPE", EPIPE, "Broken pipe");
111 : #endif
112 : #ifdef EINVAL
113 3 : inscode(d, ds, de, "EINVAL", EINVAL, "Invalid argument");
114 : #else
115 : #ifdef WSAEINVAL
116 : inscode(d, ds, de, "EINVAL", WSAEINVAL, "Invalid argument");
117 : #endif
118 : #endif
119 : #ifdef EOVERFLOW
120 3 : inscode(d, ds, de, "EOVERFLOW", EOVERFLOW, "Value too large for defined data type");
121 : #endif
122 : #ifdef EADV
123 3 : inscode(d, ds, de, "EADV", EADV, "Advertise error");
124 : #endif
125 : #ifdef EINTR
126 3 : inscode(d, ds, de, "EINTR", EINTR, "Interrupted system call");
127 : #else
128 : #ifdef WSAEINTR
129 : inscode(d, ds, de, "EINTR", WSAEINTR, "Interrupted system call");
130 : #endif
131 : #endif
132 : #ifdef EUSERS
133 3 : inscode(d, ds, de, "EUSERS", EUSERS, "Too many users");
134 : #else
135 : #ifdef WSAEUSERS
136 : inscode(d, ds, de, "EUSERS", WSAEUSERS, "Too many users");
137 : #endif
138 : #endif
139 : #ifdef ENOTEMPTY
140 3 : inscode(d, ds, de, "ENOTEMPTY", ENOTEMPTY, "Directory not empty");
141 : #else
142 : #ifdef WSAENOTEMPTY
143 : inscode(d, ds, de, "ENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
144 : #endif
145 : #endif
146 : #ifdef ENOBUFS
147 3 : inscode(d, ds, de, "ENOBUFS", ENOBUFS, "No buffer space available");
148 : #else
149 : #ifdef WSAENOBUFS
150 : inscode(d, ds, de, "ENOBUFS", WSAENOBUFS, "No buffer space available");
151 : #endif
152 : #endif
153 : #ifdef EPROTO
154 3 : inscode(d, ds, de, "EPROTO", EPROTO, "Protocol error");
155 : #endif
156 : #ifdef EREMOTE
157 3 : inscode(d, ds, de, "EREMOTE", EREMOTE, "Object is remote");
158 : #else
159 : #ifdef WSAEREMOTE
160 : inscode(d, ds, de, "EREMOTE", WSAEREMOTE, "Object is remote");
161 : #endif
162 : #endif
163 : #ifdef ENAVAIL
164 3 : inscode(d, ds, de, "ENAVAIL", ENAVAIL, "No XENIX semaphores available");
165 : #endif
166 : #ifdef ECHILD
167 3 : inscode(d, ds, de, "ECHILD", ECHILD, "No child processes");
168 : #endif
169 : #ifdef ELOOP
170 3 : inscode(d, ds, de, "ELOOP", ELOOP, "Too many symbolic links encountered");
171 : #else
172 : #ifdef WSAELOOP
173 : inscode(d, ds, de, "ELOOP", WSAELOOP, "Too many symbolic links encountered");
174 : #endif
175 : #endif
176 : #ifdef EXDEV
177 3 : inscode(d, ds, de, "EXDEV", EXDEV, "Cross-device link");
178 : #endif
179 : #ifdef E2BIG
180 3 : inscode(d, ds, de, "E2BIG", E2BIG, "Arg list too long");
181 : #endif
182 : #ifdef ESRCH
183 3 : inscode(d, ds, de, "ESRCH", ESRCH, "No such process");
184 : #endif
185 : #ifdef EMSGSIZE
186 3 : inscode(d, ds, de, "EMSGSIZE", EMSGSIZE, "Message too long");
187 : #else
188 : #ifdef WSAEMSGSIZE
189 : inscode(d, ds, de, "EMSGSIZE", WSAEMSGSIZE, "Message too long");
190 : #endif
191 : #endif
192 : #ifdef EAFNOSUPPORT
193 3 : inscode(d, ds, de, "EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol");
194 : #else
195 : #ifdef WSAEAFNOSUPPORT
196 : inscode(d, ds, de, "EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
197 : #endif
198 : #endif
199 : #ifdef EBADR
200 3 : inscode(d, ds, de, "EBADR", EBADR, "Invalid request descriptor");
201 : #endif
202 : #ifdef EHOSTDOWN
203 3 : inscode(d, ds, de, "EHOSTDOWN", EHOSTDOWN, "Host is down");
204 : #else
205 : #ifdef WSAEHOSTDOWN
206 : inscode(d, ds, de, "EHOSTDOWN", WSAEHOSTDOWN, "Host is down");
207 : #endif
208 : #endif
209 : #ifdef EPFNOSUPPORT
210 3 : inscode(d, ds, de, "EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported");
211 : #else
212 : #ifdef WSAEPFNOSUPPORT
213 : inscode(d, ds, de, "EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
214 : #endif
215 : #endif
216 : #ifdef ENOPROTOOPT
217 3 : inscode(d, ds, de, "ENOPROTOOPT", ENOPROTOOPT, "Protocol not available");
218 : #else
219 : #ifdef WSAENOPROTOOPT
220 : inscode(d, ds, de, "ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
221 : #endif
222 : #endif
223 : #ifdef EBUSY
224 3 : inscode(d, ds, de, "EBUSY", EBUSY, "Device or resource busy");
225 : #endif
226 : #ifdef EWOULDBLOCK
227 3 : inscode(d, ds, de, "EWOULDBLOCK", EWOULDBLOCK, "Operation would block");
228 : #else
229 : #ifdef WSAEWOULDBLOCK
230 : inscode(d, ds, de, "EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
231 : #endif
232 : #endif
233 : #ifdef EBADFD
234 3 : inscode(d, ds, de, "EBADFD", EBADFD, "File descriptor in bad state");
235 : #endif
236 : #ifdef EDOTDOT
237 3 : inscode(d, ds, de, "EDOTDOT", EDOTDOT, "RFS specific error");
238 : #endif
239 : #ifdef EISCONN
240 3 : inscode(d, ds, de, "EISCONN", EISCONN, "Transport endpoint is already connected");
241 : #else
242 : #ifdef WSAEISCONN
243 : inscode(d, ds, de, "EISCONN", WSAEISCONN, "Transport endpoint is already connected");
244 : #endif
245 : #endif
246 : #ifdef ENOANO
247 3 : inscode(d, ds, de, "ENOANO", ENOANO, "No anode");
248 : #endif
249 : #ifdef ESHUTDOWN
250 3 : inscode(d, ds, de, "ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown");
251 : #else
252 : #ifdef WSAESHUTDOWN
253 : inscode(d, ds, de, "ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
254 : #endif
255 : #endif
256 : #ifdef ECHRNG
257 3 : inscode(d, ds, de, "ECHRNG", ECHRNG, "Channel number out of range");
258 : #endif
259 : #ifdef ELIBBAD
260 3 : inscode(d, ds, de, "ELIBBAD", ELIBBAD, "Accessing a corrupted shared library");
261 : #endif
262 : #ifdef ENONET
263 3 : inscode(d, ds, de, "ENONET", ENONET, "Machine is not on the network");
264 : #endif
265 : #ifdef EBADE
266 3 : inscode(d, ds, de, "EBADE", EBADE, "Invalid exchange");
267 : #endif
268 : #ifdef EBADF
269 3 : inscode(d, ds, de, "EBADF", EBADF, "Bad file number");
270 : #else
271 : #ifdef WSAEBADF
272 : inscode(d, ds, de, "EBADF", WSAEBADF, "Bad file number");
273 : #endif
274 : #endif
275 : #ifdef EMULTIHOP
276 3 : inscode(d, ds, de, "EMULTIHOP", EMULTIHOP, "Multihop attempted");
277 : #endif
278 : #ifdef EIO
279 3 : inscode(d, ds, de, "EIO", EIO, "I/O error");
280 : #endif
281 : #ifdef EUNATCH
282 3 : inscode(d, ds, de, "EUNATCH", EUNATCH, "Protocol driver not attached");
283 : #endif
284 : #ifdef EPROTOTYPE
285 3 : inscode(d, ds, de, "EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket");
286 : #else
287 : #ifdef WSAEPROTOTYPE
288 : inscode(d, ds, de, "EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
289 : #endif
290 : #endif
291 : #ifdef ENOSPC
292 3 : inscode(d, ds, de, "ENOSPC", ENOSPC, "No space left on device");
293 : #endif
294 : #ifdef ENOEXEC
295 3 : inscode(d, ds, de, "ENOEXEC", ENOEXEC, "Exec format error");
296 : #endif
297 : #ifdef EALREADY
298 3 : inscode(d, ds, de, "EALREADY", EALREADY, "Operation already in progress");
299 : #else
300 : #ifdef WSAEALREADY
301 : inscode(d, ds, de, "EALREADY", WSAEALREADY, "Operation already in progress");
302 : #endif
303 : #endif
304 : #ifdef ENETDOWN
305 3 : inscode(d, ds, de, "ENETDOWN", ENETDOWN, "Network is down");
306 : #else
307 : #ifdef WSAENETDOWN
308 : inscode(d, ds, de, "ENETDOWN", WSAENETDOWN, "Network is down");
309 : #endif
310 : #endif
311 : #ifdef ENOTNAM
312 3 : inscode(d, ds, de, "ENOTNAM", ENOTNAM, "Not a XENIX named type file");
313 : #endif
314 : #ifdef EACCES
315 3 : inscode(d, ds, de, "EACCES", EACCES, "Permission denied");
316 : #else
317 : #ifdef WSAEACCES
318 : inscode(d, ds, de, "EACCES", WSAEACCES, "Permission denied");
319 : #endif
320 : #endif
321 : #ifdef ELNRNG
322 3 : inscode(d, ds, de, "ELNRNG", ELNRNG, "Link number out of range");
323 : #endif
324 : #ifdef EILSEQ
325 3 : inscode(d, ds, de, "EILSEQ", EILSEQ, "Illegal byte sequence");
326 : #endif
327 : #ifdef ENOTDIR
328 3 : inscode(d, ds, de, "ENOTDIR", ENOTDIR, "Not a directory");
329 : #endif
330 : #ifdef ENOTUNIQ
331 3 : inscode(d, ds, de, "ENOTUNIQ", ENOTUNIQ, "Name not unique on network");
332 : #endif
333 : #ifdef EPERM
334 3 : inscode(d, ds, de, "EPERM", EPERM, "Operation not permitted");
335 : #endif
336 : #ifdef EDOM
337 3 : inscode(d, ds, de, "EDOM", EDOM, "Math argument out of domain of func");
338 : #endif
339 : #ifdef EXFULL
340 3 : inscode(d, ds, de, "EXFULL", EXFULL, "Exchange full");
341 : #endif
342 : #ifdef ECONNREFUSED
343 3 : inscode(d, ds, de, "ECONNREFUSED", ECONNREFUSED, "Connection refused");
344 : #else
345 : #ifdef WSAECONNREFUSED
346 : inscode(d, ds, de, "ECONNREFUSED", WSAECONNREFUSED, "Connection refused");
347 : #endif
348 : #endif
349 : #ifdef EISDIR
350 3 : inscode(d, ds, de, "EISDIR", EISDIR, "Is a directory");
351 : #endif
352 : #ifdef EPROTONOSUPPORT
353 3 : inscode(d, ds, de, "EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported");
354 : #else
355 : #ifdef WSAEPROTONOSUPPORT
356 : inscode(d, ds, de, "EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
357 : #endif
358 : #endif
359 : #ifdef EROFS
360 3 : inscode(d, ds, de, "EROFS", EROFS, "Read-only file system");
361 : #endif
362 : #ifdef EADDRNOTAVAIL
363 3 : inscode(d, ds, de, "EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address");
364 : #else
365 : #ifdef WSAEADDRNOTAVAIL
366 : inscode(d, ds, de, "EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
367 : #endif
368 : #endif
369 : #ifdef EIDRM
370 3 : inscode(d, ds, de, "EIDRM", EIDRM, "Identifier removed");
371 : #endif
372 : #ifdef ECOMM
373 3 : inscode(d, ds, de, "ECOMM", ECOMM, "Communication error on send");
374 : #endif
375 : #ifdef ESRMNT
376 3 : inscode(d, ds, de, "ESRMNT", ESRMNT, "Srmount error");
377 : #endif
378 : #ifdef EREMOTEIO
379 3 : inscode(d, ds, de, "EREMOTEIO", EREMOTEIO, "Remote I/O error");
380 : #endif
381 : #ifdef EL3RST
382 3 : inscode(d, ds, de, "EL3RST", EL3RST, "Level 3 reset");
383 : #endif
384 : #ifdef EBADMSG
385 3 : inscode(d, ds, de, "EBADMSG", EBADMSG, "Not a data message");
386 : #endif
387 : #ifdef ENFILE
388 3 : inscode(d, ds, de, "ENFILE", ENFILE, "File table overflow");
389 : #endif
390 : #ifdef ELIBMAX
391 3 : inscode(d, ds, de, "ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries");
392 : #endif
393 : #ifdef ESPIPE
394 3 : inscode(d, ds, de, "ESPIPE", ESPIPE, "Illegal seek");
395 : #endif
396 : #ifdef ENOLINK
397 3 : inscode(d, ds, de, "ENOLINK", ENOLINK, "Link has been severed");
398 : #endif
399 : #ifdef ENETRESET
400 3 : inscode(d, ds, de, "ENETRESET", ENETRESET, "Network dropped connection because of reset");
401 : #else
402 : #ifdef WSAENETRESET
403 : inscode(d, ds, de, "ENETRESET", WSAENETRESET, "Network dropped connection because of reset");
404 : #endif
405 : #endif
406 : #ifdef ETIMEDOUT
407 3 : inscode(d, ds, de, "ETIMEDOUT", ETIMEDOUT, "Connection timed out");
408 : #else
409 : #ifdef WSAETIMEDOUT
410 : inscode(d, ds, de, "ETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
411 : #endif
412 : #endif
413 : #ifdef ENOENT
414 3 : inscode(d, ds, de, "ENOENT", ENOENT, "No such file or directory");
415 : #endif
416 : #ifdef EEXIST
417 3 : inscode(d, ds, de, "EEXIST", EEXIST, "File exists");
418 : #endif
419 : #ifdef EDQUOT
420 3 : inscode(d, ds, de, "EDQUOT", EDQUOT, "Quota exceeded");
421 : #else
422 : #ifdef WSAEDQUOT
423 : inscode(d, ds, de, "EDQUOT", WSAEDQUOT, "Quota exceeded");
424 : #endif
425 : #endif
426 : #ifdef ENOSTR
427 3 : inscode(d, ds, de, "ENOSTR", ENOSTR, "Device not a stream");
428 : #endif
429 : #ifdef EBADSLT
430 3 : inscode(d, ds, de, "EBADSLT", EBADSLT, "Invalid slot");
431 : #endif
432 : #ifdef EBADRQC
433 3 : inscode(d, ds, de, "EBADRQC", EBADRQC, "Invalid request code");
434 : #endif
435 : #ifdef ELIBACC
436 3 : inscode(d, ds, de, "ELIBACC", ELIBACC, "Can not access a needed shared library");
437 : #endif
438 : #ifdef EFAULT
439 3 : inscode(d, ds, de, "EFAULT", EFAULT, "Bad address");
440 : #else
441 : #ifdef WSAEFAULT
442 : inscode(d, ds, de, "EFAULT", WSAEFAULT, "Bad address");
443 : #endif
444 : #endif
445 : #ifdef EFBIG
446 3 : inscode(d, ds, de, "EFBIG", EFBIG, "File too large");
447 : #endif
448 : #ifdef EDEADLK
449 3 : inscode(d, ds, de, "EDEADLK", EDEADLK, "Resource deadlock would occur");
450 : #endif
451 : #ifdef ENOTCONN
452 3 : inscode(d, ds, de, "ENOTCONN", ENOTCONN, "Transport endpoint is not connected");
453 : #else
454 : #ifdef WSAENOTCONN
455 : inscode(d, ds, de, "ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
456 : #endif
457 : #endif
458 : #ifdef EDESTADDRREQ
459 3 : inscode(d, ds, de, "EDESTADDRREQ", EDESTADDRREQ, "Destination address required");
460 : #else
461 : #ifdef WSAEDESTADDRREQ
462 : inscode(d, ds, de, "EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
463 : #endif
464 : #endif
465 : #ifdef ELIBSCN
466 3 : inscode(d, ds, de, "ELIBSCN", ELIBSCN, ".lib section in a.out corrupted");
467 : #endif
468 : #ifdef ENOLCK
469 3 : inscode(d, ds, de, "ENOLCK", ENOLCK, "No record locks available");
470 : #endif
471 : #ifdef EISNAM
472 3 : inscode(d, ds, de, "EISNAM", EISNAM, "Is a named type file");
473 : #endif
474 : #ifdef ECONNABORTED
475 3 : inscode(d, ds, de, "ECONNABORTED", ECONNABORTED, "Software caused connection abort");
476 : #else
477 : #ifdef WSAECONNABORTED
478 : inscode(d, ds, de, "ECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
479 : #endif
480 : #endif
481 : #ifdef ENETUNREACH
482 3 : inscode(d, ds, de, "ENETUNREACH", ENETUNREACH, "Network is unreachable");
483 : #else
484 : #ifdef WSAENETUNREACH
485 : inscode(d, ds, de, "ENETUNREACH", WSAENETUNREACH, "Network is unreachable");
486 : #endif
487 : #endif
488 : #ifdef ESTALE
489 3 : inscode(d, ds, de, "ESTALE", ESTALE, "Stale NFS file handle");
490 : #else
491 : #ifdef WSAESTALE
492 : inscode(d, ds, de, "ESTALE", WSAESTALE, "Stale NFS file handle");
493 : #endif
494 : #endif
495 : #ifdef ENOSR
496 3 : inscode(d, ds, de, "ENOSR", ENOSR, "Out of streams resources");
497 : #endif
498 : #ifdef ENOMEM
499 3 : inscode(d, ds, de, "ENOMEM", ENOMEM, "Out of memory");
500 : #endif
501 : #ifdef ENOTSOCK
502 3 : inscode(d, ds, de, "ENOTSOCK", ENOTSOCK, "Socket operation on non-socket");
503 : #else
504 : #ifdef WSAENOTSOCK
505 : inscode(d, ds, de, "ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
506 : #endif
507 : #endif
508 : #ifdef ESTRPIPE
509 3 : inscode(d, ds, de, "ESTRPIPE", ESTRPIPE, "Streams pipe error");
510 : #endif
511 : #ifdef EMLINK
512 3 : inscode(d, ds, de, "EMLINK", EMLINK, "Too many links");
513 : #endif
514 : #ifdef ERANGE
515 3 : inscode(d, ds, de, "ERANGE", ERANGE, "Math result not representable");
516 : #endif
517 : #ifdef ELIBEXEC
518 3 : inscode(d, ds, de, "ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly");
519 : #endif
520 : #ifdef EL3HLT
521 3 : inscode(d, ds, de, "EL3HLT", EL3HLT, "Level 3 halted");
522 : #endif
523 : #ifdef ECONNRESET
524 3 : inscode(d, ds, de, "ECONNRESET", ECONNRESET, "Connection reset by peer");
525 : #else
526 : #ifdef WSAECONNRESET
527 : inscode(d, ds, de, "ECONNRESET", WSAECONNRESET, "Connection reset by peer");
528 : #endif
529 : #endif
530 : #ifdef EADDRINUSE
531 3 : inscode(d, ds, de, "EADDRINUSE", EADDRINUSE, "Address already in use");
532 : #else
533 : #ifdef WSAEADDRINUSE
534 : inscode(d, ds, de, "EADDRINUSE", WSAEADDRINUSE, "Address already in use");
535 : #endif
536 : #endif
537 : #ifdef EOPNOTSUPP
538 3 : inscode(d, ds, de, "EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint");
539 : #else
540 : #ifdef WSAEOPNOTSUPP
541 : inscode(d, ds, de, "EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
542 : #endif
543 : #endif
544 : #ifdef EREMCHG
545 3 : inscode(d, ds, de, "EREMCHG", EREMCHG, "Remote address changed");
546 : #endif
547 : #ifdef EAGAIN
548 3 : inscode(d, ds, de, "EAGAIN", EAGAIN, "Try again");
549 : #endif
550 : #ifdef ENAMETOOLONG
551 3 : inscode(d, ds, de, "ENAMETOOLONG", ENAMETOOLONG, "File name too long");
552 : #else
553 : #ifdef WSAENAMETOOLONG
554 : inscode(d, ds, de, "ENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
555 : #endif
556 : #endif
557 : #ifdef ENOTTY
558 3 : inscode(d, ds, de, "ENOTTY", ENOTTY, "Not a typewriter");
559 : #endif
560 : #ifdef ERESTART
561 3 : inscode(d, ds, de, "ERESTART", ERESTART, "Interrupted system call should be restarted");
562 : #endif
563 : #ifdef ESOCKTNOSUPPORT
564 3 : inscode(d, ds, de, "ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported");
565 : #else
566 : #ifdef WSAESOCKTNOSUPPORT
567 : inscode(d, ds, de, "ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
568 : #endif
569 : #endif
570 : #ifdef ETIME
571 3 : inscode(d, ds, de, "ETIME", ETIME, "Timer expired");
572 : #endif
573 : #ifdef EBFONT
574 3 : inscode(d, ds, de, "EBFONT", EBFONT, "Bad font file format");
575 : #endif
576 : #ifdef EDEADLOCK
577 3 : inscode(d, ds, de, "EDEADLOCK", EDEADLOCK, "Error EDEADLOCK");
578 : #endif
579 : #ifdef ETOOMANYREFS
580 3 : inscode(d, ds, de, "ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice");
581 : #else
582 : #ifdef WSAETOOMANYREFS
583 : inscode(d, ds, de, "ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
584 : #endif
585 : #endif
586 : #ifdef EMFILE
587 3 : inscode(d, ds, de, "EMFILE", EMFILE, "Too many open files");
588 : #else
589 : #ifdef WSAEMFILE
590 : inscode(d, ds, de, "EMFILE", WSAEMFILE, "Too many open files");
591 : #endif
592 : #endif
593 : #ifdef ETXTBSY
594 3 : inscode(d, ds, de, "ETXTBSY", ETXTBSY, "Text file busy");
595 : #endif
596 : #ifdef EINPROGRESS
597 3 : inscode(d, ds, de, "EINPROGRESS", EINPROGRESS, "Operation now in progress");
598 : #else
599 : #ifdef WSAEINPROGRESS
600 : inscode(d, ds, de, "EINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
601 : #endif
602 : #endif
603 : #ifdef ENXIO
604 3 : inscode(d, ds, de, "ENXIO", ENXIO, "No such device or address");
605 : #endif
606 : #ifdef ENOPKG
607 3 : inscode(d, ds, de, "ENOPKG", ENOPKG, "Package not installed");
608 : #endif
609 : #ifdef WSASY
610 : inscode(d, ds, de, "WSASY", WSASY, "Error WSASY");
611 : #endif
612 : #ifdef WSAEHOSTDOWN
613 : inscode(d, ds, de, "WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down");
614 : #endif
615 : #ifdef WSAENETDOWN
616 : inscode(d, ds, de, "WSAENETDOWN", WSAENETDOWN, "Network is down");
617 : #endif
618 : #ifdef WSAENOTSOCK
619 : inscode(d, ds, de, "WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket");
620 : #endif
621 : #ifdef WSAEHOSTUNREACH
622 : inscode(d, ds, de, "WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host");
623 : #endif
624 : #ifdef WSAELOOP
625 : inscode(d, ds, de, "WSAELOOP", WSAELOOP, "Too many symbolic links encountered");
626 : #endif
627 : #ifdef WSAEMFILE
628 : inscode(d, ds, de, "WSAEMFILE", WSAEMFILE, "Too many open files");
629 : #endif
630 : #ifdef WSAESTALE
631 : inscode(d, ds, de, "WSAESTALE", WSAESTALE, "Stale NFS file handle");
632 : #endif
633 : #ifdef WSAVERNOTSUPPORTED
634 : inscode(d, ds, de, "WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED");
635 : #endif
636 : #ifdef WSAENETUNREACH
637 : inscode(d, ds, de, "WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable");
638 : #endif
639 : #ifdef WSAEPROCLIM
640 : inscode(d, ds, de, "WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM");
641 : #endif
642 : #ifdef WSAEFAULT
643 : inscode(d, ds, de, "WSAEFAULT", WSAEFAULT, "Bad address");
644 : #endif
645 : #ifdef WSANOTINITIALISED
646 : inscode(d, ds, de, "WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED");
647 : #endif
648 : #ifdef WSAEUSERS
649 : inscode(d, ds, de, "WSAEUSERS", WSAEUSERS, "Too many users");
650 : #endif
651 : #ifdef WSAMAKEASYNCREPL
652 : inscode(d, ds, de, "WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL");
653 : #endif
654 : #ifdef WSAENOPROTOOPT
655 : inscode(d, ds, de, "WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available");
656 : #endif
657 : #ifdef WSAECONNABORTED
658 : inscode(d, ds, de, "WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort");
659 : #endif
660 : #ifdef WSAENAMETOOLONG
661 : inscode(d, ds, de, "WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long");
662 : #endif
663 : #ifdef WSAENOTEMPTY
664 : inscode(d, ds, de, "WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty");
665 : #endif
666 : #ifdef WSAESHUTDOWN
667 : inscode(d, ds, de, "WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown");
668 : #endif
669 : #ifdef WSAEAFNOSUPPORT
670 : inscode(d, ds, de, "WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol");
671 : #endif
672 : #ifdef WSAETOOMANYREFS
673 : inscode(d, ds, de, "WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice");
674 : #endif
675 : #ifdef WSAEACCES
676 : inscode(d, ds, de, "WSAEACCES", WSAEACCES, "Permission denied");
677 : #endif
678 : #ifdef WSATR
679 : inscode(d, ds, de, "WSATR", WSATR, "Error WSATR");
680 : #endif
681 : #ifdef WSABASEERR
682 : inscode(d, ds, de, "WSABASEERR", WSABASEERR, "Error WSABASEERR");
683 : #endif
684 : #ifdef WSADESCRIPTIO
685 : inscode(d, ds, de, "WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO");
686 : #endif
687 : #ifdef WSAEMSGSIZE
688 : inscode(d, ds, de, "WSAEMSGSIZE", WSAEMSGSIZE, "Message too long");
689 : #endif
690 : #ifdef WSAEBADF
691 : inscode(d, ds, de, "WSAEBADF", WSAEBADF, "Bad file number");
692 : #endif
693 : #ifdef WSAECONNRESET
694 : inscode(d, ds, de, "WSAECONNRESET", WSAECONNRESET, "Connection reset by peer");
695 : #endif
696 : #ifdef WSAGETSELECTERRO
697 : inscode(d, ds, de, "WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO");
698 : #endif
699 : #ifdef WSAETIMEDOUT
700 : inscode(d, ds, de, "WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out");
701 : #endif
702 : #ifdef WSAENOBUFS
703 : inscode(d, ds, de, "WSAENOBUFS", WSAENOBUFS, "No buffer space available");
704 : #endif
705 : #ifdef WSAEDISCON
706 : inscode(d, ds, de, "WSAEDISCON", WSAEDISCON, "Error WSAEDISCON");
707 : #endif
708 : #ifdef WSAEINTR
709 : inscode(d, ds, de, "WSAEINTR", WSAEINTR, "Interrupted system call");
710 : #endif
711 : #ifdef WSAEPROTOTYPE
712 : inscode(d, ds, de, "WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket");
713 : #endif
714 : #ifdef WSAHOS
715 : inscode(d, ds, de, "WSAHOS", WSAHOS, "Error WSAHOS");
716 : #endif
717 : #ifdef WSAEADDRINUSE
718 : inscode(d, ds, de, "WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use");
719 : #endif
720 : #ifdef WSAEADDRNOTAVAIL
721 : inscode(d, ds, de, "WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address");
722 : #endif
723 : #ifdef WSAEALREADY
724 : inscode(d, ds, de, "WSAEALREADY", WSAEALREADY, "Operation already in progress");
725 : #endif
726 : #ifdef WSAEPROTONOSUPPORT
727 : inscode(d, ds, de, "WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported");
728 : #endif
729 : #ifdef WSASYSNOTREADY
730 : inscode(d, ds, de, "WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY");
731 : #endif
732 : #ifdef WSAEWOULDBLOCK
733 : inscode(d, ds, de, "WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block");
734 : #endif
735 : #ifdef WSAEPFNOSUPPORT
736 : inscode(d, ds, de, "WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported");
737 : #endif
738 : #ifdef WSAEOPNOTSUPP
739 : inscode(d, ds, de, "WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint");
740 : #endif
741 : #ifdef WSAEISCONN
742 : inscode(d, ds, de, "WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected");
743 : #endif
744 : #ifdef WSAEDQUOT
745 : inscode(d, ds, de, "WSAEDQUOT", WSAEDQUOT, "Quota exceeded");
746 : #endif
747 : #ifdef WSAENOTCONN
748 : inscode(d, ds, de, "WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected");
749 : #endif
750 : #ifdef WSAEREMOTE
751 : inscode(d, ds, de, "WSAEREMOTE", WSAEREMOTE, "Object is remote");
752 : #endif
753 : #ifdef WSAEINVAL
754 : inscode(d, ds, de, "WSAEINVAL", WSAEINVAL, "Invalid argument");
755 : #endif
756 : #ifdef WSAEINPROGRESS
757 : inscode(d, ds, de, "WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress");
758 : #endif
759 : #ifdef WSAGETSELECTEVEN
760 : inscode(d, ds, de, "WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN");
761 : #endif
762 : #ifdef WSAESOCKTNOSUPPORT
763 : inscode(d, ds, de, "WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported");
764 : #endif
765 : #ifdef WSAGETASYNCERRO
766 : inscode(d, ds, de, "WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO");
767 : #endif
768 : #ifdef WSAMAKESELECTREPL
769 : inscode(d, ds, de, "WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL");
770 : #endif
771 : #ifdef WSAGETASYNCBUFLE
772 : inscode(d, ds, de, "WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE");
773 : #endif
774 : #ifdef WSAEDESTADDRREQ
775 : inscode(d, ds, de, "WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required");
776 : #endif
777 : #ifdef WSAECONNREFUSED
778 : inscode(d, ds, de, "WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused");
779 : #endif
780 : #ifdef WSAENETRESET
781 : inscode(d, ds, de, "WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset");
782 : #endif
783 : #ifdef WSAN
784 : inscode(d, ds, de, "WSAN", WSAN, "Error WSAN");
785 : #endif
786 : #ifdef ENOTSUP
787 3 : inscode(d, ds, de, "ENOTSUP", ENOTSUP, "Operation not supported");
788 : #endif
789 :
790 3 : Py_DECREF(de);
791 : }
|