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
_inscode(PyObject * d,PyObject * de,char * name,int code)22 _inscode(PyObject *d, PyObject *de, char *name, int code)
23 {
24 PyObject *u = PyString_FromString(name);
25 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 if (u && v) {
32 /* insert in modules dict */
33 PyDict_SetItem(d, u, v);
34 /* insert in errorcode dict */
35 PyDict_SetItem(de, v, u);
36 }
37 Py_XDECREF(u);
38 Py_XDECREF(v);
39 }
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
initerrno(void)56 initerrno(void)
57 {
58 PyObject *m, *d, *de;
59 m = Py_InitModule3("errno", errno_methods, errno__doc__);
60 if (m == NULL)
61 return;
62 d = PyModule_GetDict(m);
63 de = PyDict_New();
64 if (!d || !de || PyDict_SetItemString(d, "errorcode", de) < 0)
65 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 inscode(d, ds, de, "ENODEV", ENODEV, "No such device");
77 #endif
78 #ifdef ENOCSI
79 inscode(d, ds, de, "ENOCSI", ENOCSI, "No CSI structure available");
80 #endif
81 #ifdef EHOSTUNREACH
82 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 inscode(d, ds, de, "ENOMSG", ENOMSG, "No message of desired type");
90 #endif
91 #ifdef EUCLEAN
92 inscode(d, ds, de, "EUCLEAN", EUCLEAN, "Structure needs cleaning");
93 #endif
94 #ifdef EL2NSYNC
95 inscode(d, ds, de, "EL2NSYNC", EL2NSYNC, "Level 2 not synchronized");
96 #endif
97 #ifdef EL2HLT
98 inscode(d, ds, de, "EL2HLT", EL2HLT, "Level 2 halted");
99 #endif
100 #ifdef ENODATA
101 inscode(d, ds, de, "ENODATA", ENODATA, "No data available");
102 #endif
103 #ifdef ENOTBLK
104 inscode(d, ds, de, "ENOTBLK", ENOTBLK, "Block device required");
105 #endif
106 #ifdef ENOSYS
107 inscode(d, ds, de, "ENOSYS", ENOSYS, "Function not implemented");
108 #endif
109 #ifdef EPIPE
110 inscode(d, ds, de, "EPIPE", EPIPE, "Broken pipe");
111 #endif
112 #ifdef EINVAL
113 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 inscode(d, ds, de, "EOVERFLOW", EOVERFLOW, "Value too large for defined data type");
121 #endif
122 #ifdef EADV
123 inscode(d, ds, de, "EADV", EADV, "Advertise error");
124 #endif
125 #ifdef EINTR
126 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 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 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 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 inscode(d, ds, de, "EPROTO", EPROTO, "Protocol error");
155 #endif
156 #ifdef EREMOTE
157 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 inscode(d, ds, de, "ENAVAIL", ENAVAIL, "No XENIX semaphores available");
165 #endif
166 #ifdef ECHILD
167 inscode(d, ds, de, "ECHILD", ECHILD, "No child processes");
168 #endif
169 #ifdef ELOOP
170 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 inscode(d, ds, de, "EXDEV", EXDEV, "Cross-device link");
178 #endif
179 #ifdef E2BIG
180 inscode(d, ds, de, "E2BIG", E2BIG, "Arg list too long");
181 #endif
182 #ifdef ESRCH
183 inscode(d, ds, de, "ESRCH", ESRCH, "No such process");
184 #endif
185 #ifdef EMSGSIZE
186 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 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 inscode(d, ds, de, "EBADR", EBADR, "Invalid request descriptor");
201 #endif
202 #ifdef EHOSTDOWN
203 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 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 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 inscode(d, ds, de, "EBUSY", EBUSY, "Device or resource busy");
225 #endif
226 #ifdef EWOULDBLOCK
227 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 inscode(d, ds, de, "EBADFD", EBADFD, "File descriptor in bad state");
235 #endif
236 #ifdef EDOTDOT
237 inscode(d, ds, de, "EDOTDOT", EDOTDOT, "RFS specific error");
238 #endif
239 #ifdef EISCONN
240 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 inscode(d, ds, de, "ENOANO", ENOANO, "No anode");
248 #endif
249 #ifdef ESHUTDOWN
250 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 inscode(d, ds, de, "ECHRNG", ECHRNG, "Channel number out of range");
258 #endif
259 #ifdef ELIBBAD
260 inscode(d, ds, de, "ELIBBAD", ELIBBAD, "Accessing a corrupted shared library");
261 #endif
262 #ifdef ENONET
263 inscode(d, ds, de, "ENONET", ENONET, "Machine is not on the network");
264 #endif
265 #ifdef EBADE
266 inscode(d, ds, de, "EBADE", EBADE, "Invalid exchange");
267 #endif
268 #ifdef EBADF
269 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 inscode(d, ds, de, "EMULTIHOP", EMULTIHOP, "Multihop attempted");
277 #endif
278 #ifdef EIO
279 inscode(d, ds, de, "EIO", EIO, "I/O error");
280 #endif
281 #ifdef EUNATCH
282 inscode(d, ds, de, "EUNATCH", EUNATCH, "Protocol driver not attached");
283 #endif
284 #ifdef EPROTOTYPE
285 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 inscode(d, ds, de, "ENOSPC", ENOSPC, "No space left on device");
293 #endif
294 #ifdef ENOEXEC
295 inscode(d, ds, de, "ENOEXEC", ENOEXEC, "Exec format error");
296 #endif
297 #ifdef EALREADY
298 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 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 inscode(d, ds, de, "ENOTNAM", ENOTNAM, "Not a XENIX named type file");
313 #endif
314 #ifdef EACCES
315 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 inscode(d, ds, de, "ELNRNG", ELNRNG, "Link number out of range");
323 #endif
324 #ifdef EILSEQ
325 inscode(d, ds, de, "EILSEQ", EILSEQ, "Illegal byte sequence");
326 #endif
327 #ifdef ENOTDIR
328 inscode(d, ds, de, "ENOTDIR", ENOTDIR, "Not a directory");
329 #endif
330 #ifdef ENOTUNIQ
331 inscode(d, ds, de, "ENOTUNIQ", ENOTUNIQ, "Name not unique on network");
332 #endif
333 #ifdef EPERM
334 inscode(d, ds, de, "EPERM", EPERM, "Operation not permitted");
335 #endif
336 #ifdef EDOM
337 inscode(d, ds, de, "EDOM", EDOM, "Math argument out of domain of func");
338 #endif
339 #ifdef EXFULL
340 inscode(d, ds, de, "EXFULL", EXFULL, "Exchange full");
341 #endif
342 #ifdef ECONNREFUSED
343 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 inscode(d, ds, de, "EISDIR", EISDIR, "Is a directory");
351 #endif
352 #ifdef EPROTONOSUPPORT
353 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 inscode(d, ds, de, "EROFS", EROFS, "Read-only file system");
361 #endif
362 #ifdef EADDRNOTAVAIL
363 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 inscode(d, ds, de, "EIDRM", EIDRM, "Identifier removed");
371 #endif
372 #ifdef ECOMM
373 inscode(d, ds, de, "ECOMM", ECOMM, "Communication error on send");
374 #endif
375 #ifdef ESRMNT
376 inscode(d, ds, de, "ESRMNT", ESRMNT, "Srmount error");
377 #endif
378 #ifdef EREMOTEIO
379 inscode(d, ds, de, "EREMOTEIO", EREMOTEIO, "Remote I/O error");
380 #endif
381 #ifdef EL3RST
382 inscode(d, ds, de, "EL3RST", EL3RST, "Level 3 reset");
383 #endif
384 #ifdef EBADMSG
385 inscode(d, ds, de, "EBADMSG", EBADMSG, "Not a data message");
386 #endif
387 #ifdef ENFILE
388 inscode(d, ds, de, "ENFILE", ENFILE, "File table overflow");
389 #endif
390 #ifdef ELIBMAX
391 inscode(d, ds, de, "ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries");
392 #endif
393 #ifdef ESPIPE
394 inscode(d, ds, de, "ESPIPE", ESPIPE, "Illegal seek");
395 #endif
396 #ifdef ENOLINK
397 inscode(d, ds, de, "ENOLINK", ENOLINK, "Link has been severed");
398 #endif
399 #ifdef ENETRESET
400 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 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 inscode(d, ds, de, "ENOENT", ENOENT, "No such file or directory");
415 #endif
416 #ifdef EEXIST
417 inscode(d, ds, de, "EEXIST", EEXIST, "File exists");
418 #endif
419 #ifdef EDQUOT
420 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 inscode(d, ds, de, "ENOSTR", ENOSTR, "Device not a stream");
428 #endif
429 #ifdef EBADSLT
430 inscode(d, ds, de, "EBADSLT", EBADSLT, "Invalid slot");
431 #endif
432 #ifdef EBADRQC
433 inscode(d, ds, de, "EBADRQC", EBADRQC, "Invalid request code");
434 #endif
435 #ifdef ELIBACC
436 inscode(d, ds, de, "ELIBACC", ELIBACC, "Can not access a needed shared library");
437 #endif
438 #ifdef EFAULT
439 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 inscode(d, ds, de, "EFBIG", EFBIG, "File too large");
447 #endif
448 #ifdef EDEADLK
449 inscode(d, ds, de, "EDEADLK", EDEADLK, "Resource deadlock would occur");
450 #endif
451 #ifdef ENOTCONN
452 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 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 inscode(d, ds, de, "ELIBSCN", ELIBSCN, ".lib section in a.out corrupted");
467 #endif
468 #ifdef ENOLCK
469 inscode(d, ds, de, "ENOLCK", ENOLCK, "No record locks available");
470 #endif
471 #ifdef EISNAM
472 inscode(d, ds, de, "EISNAM", EISNAM, "Is a named type file");
473 #endif
474 #ifdef ECONNABORTED
475 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 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 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 inscode(d, ds, de, "ENOSR", ENOSR, "Out of streams resources");
497 #endif
498 #ifdef ENOMEM
499 inscode(d, ds, de, "ENOMEM", ENOMEM, "Out of memory");
500 #endif
501 #ifdef ENOTSOCK
502 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 inscode(d, ds, de, "ESTRPIPE", ESTRPIPE, "Streams pipe error");
510 #endif
511 #ifdef EMLINK
512 inscode(d, ds, de, "EMLINK", EMLINK, "Too many links");
513 #endif
514 #ifdef ERANGE
515 inscode(d, ds, de, "ERANGE", ERANGE, "Math result not representable");
516 #endif
517 #ifdef ELIBEXEC
518 inscode(d, ds, de, "ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly");
519 #endif
520 #ifdef EL3HLT
521 inscode(d, ds, de, "EL3HLT", EL3HLT, "Level 3 halted");
522 #endif
523 #ifdef ECONNRESET
524 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 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 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 inscode(d, ds, de, "EREMCHG", EREMCHG, "Remote address changed");
546 #endif
547 #ifdef EAGAIN
548 inscode(d, ds, de, "EAGAIN", EAGAIN, "Try again");
549 #endif
550 #ifdef ENAMETOOLONG
551 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 inscode(d, ds, de, "ENOTTY", ENOTTY, "Not a typewriter");
559 #endif
560 #ifdef ERESTART
561 inscode(d, ds, de, "ERESTART", ERESTART, "Interrupted system call should be restarted");
562 #endif
563 #ifdef ESOCKTNOSUPPORT
564 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 inscode(d, ds, de, "ETIME", ETIME, "Timer expired");
572 #endif
573 #ifdef EBFONT
574 inscode(d, ds, de, "EBFONT", EBFONT, "Bad font file format");
575 #endif
576 #ifdef EDEADLOCK
577 inscode(d, ds, de, "EDEADLOCK", EDEADLOCK, "Error EDEADLOCK");
578 #endif
579 #ifdef ETOOMANYREFS
580 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 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 inscode(d, ds, de, "ETXTBSY", ETXTBSY, "Text file busy");
595 #endif
596 #ifdef EINPROGRESS
597 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 inscode(d, ds, de, "ENXIO", ENXIO, "No such device or address");
605 #endif
606 #ifdef ENOPKG
607 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 inscode(d, ds, de, "ENOTSUP", ENOTSUP, "Operation not supported");
788 #endif
789
790 Py_DECREF(de);
791 }
792