home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / Programming / Python2 / Python20_source / Modules / errnomodule.c < prev    next >
Encoding:
C/C++ Source or Header  |  2000-10-25  |  23.3 KB  |  792 lines

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