17db96d56Sopenharmony_ci 27db96d56Sopenharmony_ci/* Errno module */ 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci#include "Python.h" 57db96d56Sopenharmony_ci 67db96d56Sopenharmony_ci/* Windows socket errors (WSA*) */ 77db96d56Sopenharmony_ci#ifdef MS_WINDOWS 87db96d56Sopenharmony_ci#define WIN32_LEAN_AND_MEAN 97db96d56Sopenharmony_ci#include <windows.h> 107db96d56Sopenharmony_ci/* The following constants were added to errno.h in VS2010 but have 117db96d56Sopenharmony_ci preferred WSA equivalents. */ 127db96d56Sopenharmony_ci#undef EADDRINUSE 137db96d56Sopenharmony_ci#undef EADDRNOTAVAIL 147db96d56Sopenharmony_ci#undef EAFNOSUPPORT 157db96d56Sopenharmony_ci#undef EALREADY 167db96d56Sopenharmony_ci#undef ECONNABORTED 177db96d56Sopenharmony_ci#undef ECONNREFUSED 187db96d56Sopenharmony_ci#undef ECONNRESET 197db96d56Sopenharmony_ci#undef EDESTADDRREQ 207db96d56Sopenharmony_ci#undef EHOSTUNREACH 217db96d56Sopenharmony_ci#undef EINPROGRESS 227db96d56Sopenharmony_ci#undef EISCONN 237db96d56Sopenharmony_ci#undef ELOOP 247db96d56Sopenharmony_ci#undef EMSGSIZE 257db96d56Sopenharmony_ci#undef ENETDOWN 267db96d56Sopenharmony_ci#undef ENETRESET 277db96d56Sopenharmony_ci#undef ENETUNREACH 287db96d56Sopenharmony_ci#undef ENOBUFS 297db96d56Sopenharmony_ci#undef ENOPROTOOPT 307db96d56Sopenharmony_ci#undef ENOTCONN 317db96d56Sopenharmony_ci#undef ENOTSOCK 327db96d56Sopenharmony_ci#undef EOPNOTSUPP 337db96d56Sopenharmony_ci#undef EPROTONOSUPPORT 347db96d56Sopenharmony_ci#undef EPROTOTYPE 357db96d56Sopenharmony_ci#undef ETIMEDOUT 367db96d56Sopenharmony_ci#undef EWOULDBLOCK 377db96d56Sopenharmony_ci#endif 387db96d56Sopenharmony_ci 397db96d56Sopenharmony_ci/* 407db96d56Sopenharmony_ci * Pull in the system error definitions 417db96d56Sopenharmony_ci */ 427db96d56Sopenharmony_ci 437db96d56Sopenharmony_cistatic PyMethodDef errno_methods[] = { 447db96d56Sopenharmony_ci {NULL, NULL} 457db96d56Sopenharmony_ci}; 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci/* Helper function doing the dictionary inserting */ 487db96d56Sopenharmony_ci 497db96d56Sopenharmony_cistatic int 507db96d56Sopenharmony_ci_add_errcode(PyObject *module_dict, PyObject *error_dict, const char *name_str, int code_int) 517db96d56Sopenharmony_ci{ 527db96d56Sopenharmony_ci PyObject *name = PyUnicode_FromString(name_str); 537db96d56Sopenharmony_ci if (!name) { 547db96d56Sopenharmony_ci return -1; 557db96d56Sopenharmony_ci } 567db96d56Sopenharmony_ci 577db96d56Sopenharmony_ci PyObject *code = PyLong_FromLong(code_int); 587db96d56Sopenharmony_ci if (!code) { 597db96d56Sopenharmony_ci Py_DECREF(name); 607db96d56Sopenharmony_ci return -1; 617db96d56Sopenharmony_ci } 627db96d56Sopenharmony_ci 637db96d56Sopenharmony_ci int ret = -1; 647db96d56Sopenharmony_ci /* insert in modules dict */ 657db96d56Sopenharmony_ci if (PyDict_SetItem(module_dict, name, code) < 0) { 667db96d56Sopenharmony_ci goto end; 677db96d56Sopenharmony_ci } 687db96d56Sopenharmony_ci /* insert in errorcode dict */ 697db96d56Sopenharmony_ci if (PyDict_SetItem(error_dict, code, name) < 0) { 707db96d56Sopenharmony_ci goto end; 717db96d56Sopenharmony_ci } 727db96d56Sopenharmony_ci ret = 0; 737db96d56Sopenharmony_ciend: 747db96d56Sopenharmony_ci Py_DECREF(name); 757db96d56Sopenharmony_ci Py_DECREF(code); 767db96d56Sopenharmony_ci return ret; 777db96d56Sopenharmony_ci} 787db96d56Sopenharmony_ci 797db96d56Sopenharmony_cistatic int 807db96d56Sopenharmony_cierrno_exec(PyObject *module) 817db96d56Sopenharmony_ci{ 827db96d56Sopenharmony_ci PyObject *module_dict = PyModule_GetDict(module); 837db96d56Sopenharmony_ci PyObject *error_dict = PyDict_New(); 847db96d56Sopenharmony_ci if (!module_dict || !error_dict) { 857db96d56Sopenharmony_ci return -1; 867db96d56Sopenharmony_ci } 877db96d56Sopenharmony_ci if (PyDict_SetItemString(module_dict, "errorcode", error_dict) < 0) { 887db96d56Sopenharmony_ci Py_DECREF(error_dict); 897db96d56Sopenharmony_ci return -1; 907db96d56Sopenharmony_ci } 917db96d56Sopenharmony_ci 927db96d56Sopenharmony_ci/* Macro so I don't have to edit each and every line below... */ 937db96d56Sopenharmony_ci#define add_errcode(name, code, comment) \ 947db96d56Sopenharmony_ci do { \ 957db96d56Sopenharmony_ci if (_add_errcode(module_dict, error_dict, name, code) < 0) { \ 967db96d56Sopenharmony_ci Py_DECREF(error_dict); \ 977db96d56Sopenharmony_ci return -1; \ 987db96d56Sopenharmony_ci } \ 997db96d56Sopenharmony_ci } while (0); 1007db96d56Sopenharmony_ci 1017db96d56Sopenharmony_ci /* 1027db96d56Sopenharmony_ci * The names and comments are borrowed from linux/include/errno.h, 1037db96d56Sopenharmony_ci * which should be pretty all-inclusive. However, the Solaris specific 1047db96d56Sopenharmony_ci * names and comments are borrowed from sys/errno.h in Solaris. 1057db96d56Sopenharmony_ci * MacOSX specific names and comments are borrowed from sys/errno.h in 1067db96d56Sopenharmony_ci * MacOSX. 1077db96d56Sopenharmony_ci */ 1087db96d56Sopenharmony_ci 1097db96d56Sopenharmony_ci#ifdef ENODEV 1107db96d56Sopenharmony_ci add_errcode("ENODEV", ENODEV, "No such device"); 1117db96d56Sopenharmony_ci#endif 1127db96d56Sopenharmony_ci#ifdef ENOCSI 1137db96d56Sopenharmony_ci add_errcode("ENOCSI", ENOCSI, "No CSI structure available"); 1147db96d56Sopenharmony_ci#endif 1157db96d56Sopenharmony_ci#ifdef EHOSTUNREACH 1167db96d56Sopenharmony_ci add_errcode("EHOSTUNREACH", EHOSTUNREACH, "No route to host"); 1177db96d56Sopenharmony_ci#else 1187db96d56Sopenharmony_ci#ifdef WSAEHOSTUNREACH 1197db96d56Sopenharmony_ci add_errcode("EHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); 1207db96d56Sopenharmony_ci#endif 1217db96d56Sopenharmony_ci#endif 1227db96d56Sopenharmony_ci#ifdef ENOMSG 1237db96d56Sopenharmony_ci add_errcode("ENOMSG", ENOMSG, "No message of desired type"); 1247db96d56Sopenharmony_ci#endif 1257db96d56Sopenharmony_ci#ifdef EUCLEAN 1267db96d56Sopenharmony_ci add_errcode("EUCLEAN", EUCLEAN, "Structure needs cleaning"); 1277db96d56Sopenharmony_ci#endif 1287db96d56Sopenharmony_ci#ifdef EL2NSYNC 1297db96d56Sopenharmony_ci add_errcode("EL2NSYNC", EL2NSYNC, "Level 2 not synchronized"); 1307db96d56Sopenharmony_ci#endif 1317db96d56Sopenharmony_ci#ifdef EL2HLT 1327db96d56Sopenharmony_ci add_errcode("EL2HLT", EL2HLT, "Level 2 halted"); 1337db96d56Sopenharmony_ci#endif 1347db96d56Sopenharmony_ci#ifdef ENODATA 1357db96d56Sopenharmony_ci add_errcode("ENODATA", ENODATA, "No data available"); 1367db96d56Sopenharmony_ci#endif 1377db96d56Sopenharmony_ci#ifdef ENOTBLK 1387db96d56Sopenharmony_ci add_errcode("ENOTBLK", ENOTBLK, "Block device required"); 1397db96d56Sopenharmony_ci#endif 1407db96d56Sopenharmony_ci#ifdef ENOSYS 1417db96d56Sopenharmony_ci add_errcode("ENOSYS", ENOSYS, "Function not implemented"); 1427db96d56Sopenharmony_ci#endif 1437db96d56Sopenharmony_ci#ifdef EPIPE 1447db96d56Sopenharmony_ci add_errcode("EPIPE", EPIPE, "Broken pipe"); 1457db96d56Sopenharmony_ci#endif 1467db96d56Sopenharmony_ci#ifdef EINVAL 1477db96d56Sopenharmony_ci add_errcode("EINVAL", EINVAL, "Invalid argument"); 1487db96d56Sopenharmony_ci#else 1497db96d56Sopenharmony_ci#ifdef WSAEINVAL 1507db96d56Sopenharmony_ci add_errcode("EINVAL", WSAEINVAL, "Invalid argument"); 1517db96d56Sopenharmony_ci#endif 1527db96d56Sopenharmony_ci#endif 1537db96d56Sopenharmony_ci#ifdef EOVERFLOW 1547db96d56Sopenharmony_ci add_errcode("EOVERFLOW", EOVERFLOW, "Value too large for defined data type"); 1557db96d56Sopenharmony_ci#endif 1567db96d56Sopenharmony_ci#ifdef EADV 1577db96d56Sopenharmony_ci add_errcode("EADV", EADV, "Advertise error"); 1587db96d56Sopenharmony_ci#endif 1597db96d56Sopenharmony_ci#ifdef EINTR 1607db96d56Sopenharmony_ci add_errcode("EINTR", EINTR, "Interrupted system call"); 1617db96d56Sopenharmony_ci#else 1627db96d56Sopenharmony_ci#ifdef WSAEINTR 1637db96d56Sopenharmony_ci add_errcode("EINTR", WSAEINTR, "Interrupted system call"); 1647db96d56Sopenharmony_ci#endif 1657db96d56Sopenharmony_ci#endif 1667db96d56Sopenharmony_ci#ifdef EUSERS 1677db96d56Sopenharmony_ci add_errcode("EUSERS", EUSERS, "Too many users"); 1687db96d56Sopenharmony_ci#else 1697db96d56Sopenharmony_ci#ifdef WSAEUSERS 1707db96d56Sopenharmony_ci add_errcode("EUSERS", WSAEUSERS, "Too many users"); 1717db96d56Sopenharmony_ci#endif 1727db96d56Sopenharmony_ci#endif 1737db96d56Sopenharmony_ci#ifdef ENOTEMPTY 1747db96d56Sopenharmony_ci add_errcode("ENOTEMPTY", ENOTEMPTY, "Directory not empty"); 1757db96d56Sopenharmony_ci#else 1767db96d56Sopenharmony_ci#ifdef WSAENOTEMPTY 1777db96d56Sopenharmony_ci add_errcode("ENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); 1787db96d56Sopenharmony_ci#endif 1797db96d56Sopenharmony_ci#endif 1807db96d56Sopenharmony_ci#ifdef ENOBUFS 1817db96d56Sopenharmony_ci add_errcode("ENOBUFS", ENOBUFS, "No buffer space available"); 1827db96d56Sopenharmony_ci#else 1837db96d56Sopenharmony_ci#ifdef WSAENOBUFS 1847db96d56Sopenharmony_ci add_errcode("ENOBUFS", WSAENOBUFS, "No buffer space available"); 1857db96d56Sopenharmony_ci#endif 1867db96d56Sopenharmony_ci#endif 1877db96d56Sopenharmony_ci#ifdef EPROTO 1887db96d56Sopenharmony_ci add_errcode("EPROTO", EPROTO, "Protocol error"); 1897db96d56Sopenharmony_ci#endif 1907db96d56Sopenharmony_ci#ifdef EREMOTE 1917db96d56Sopenharmony_ci add_errcode("EREMOTE", EREMOTE, "Object is remote"); 1927db96d56Sopenharmony_ci#else 1937db96d56Sopenharmony_ci#ifdef WSAEREMOTE 1947db96d56Sopenharmony_ci add_errcode("EREMOTE", WSAEREMOTE, "Object is remote"); 1957db96d56Sopenharmony_ci#endif 1967db96d56Sopenharmony_ci#endif 1977db96d56Sopenharmony_ci#ifdef ENAVAIL 1987db96d56Sopenharmony_ci add_errcode("ENAVAIL", ENAVAIL, "No XENIX semaphores available"); 1997db96d56Sopenharmony_ci#endif 2007db96d56Sopenharmony_ci#ifdef ECHILD 2017db96d56Sopenharmony_ci add_errcode("ECHILD", ECHILD, "No child processes"); 2027db96d56Sopenharmony_ci#endif 2037db96d56Sopenharmony_ci#ifdef ELOOP 2047db96d56Sopenharmony_ci add_errcode("ELOOP", ELOOP, "Too many symbolic links encountered"); 2057db96d56Sopenharmony_ci#else 2067db96d56Sopenharmony_ci#ifdef WSAELOOP 2077db96d56Sopenharmony_ci add_errcode("ELOOP", WSAELOOP, "Too many symbolic links encountered"); 2087db96d56Sopenharmony_ci#endif 2097db96d56Sopenharmony_ci#endif 2107db96d56Sopenharmony_ci#ifdef EXDEV 2117db96d56Sopenharmony_ci add_errcode("EXDEV", EXDEV, "Cross-device link"); 2127db96d56Sopenharmony_ci#endif 2137db96d56Sopenharmony_ci#ifdef E2BIG 2147db96d56Sopenharmony_ci add_errcode("E2BIG", E2BIG, "Arg list too long"); 2157db96d56Sopenharmony_ci#endif 2167db96d56Sopenharmony_ci#ifdef ESRCH 2177db96d56Sopenharmony_ci add_errcode("ESRCH", ESRCH, "No such process"); 2187db96d56Sopenharmony_ci#endif 2197db96d56Sopenharmony_ci#ifdef EMSGSIZE 2207db96d56Sopenharmony_ci add_errcode("EMSGSIZE", EMSGSIZE, "Message too long"); 2217db96d56Sopenharmony_ci#else 2227db96d56Sopenharmony_ci#ifdef WSAEMSGSIZE 2237db96d56Sopenharmony_ci add_errcode("EMSGSIZE", WSAEMSGSIZE, "Message too long"); 2247db96d56Sopenharmony_ci#endif 2257db96d56Sopenharmony_ci#endif 2267db96d56Sopenharmony_ci#ifdef EAFNOSUPPORT 2277db96d56Sopenharmony_ci add_errcode("EAFNOSUPPORT", EAFNOSUPPORT, "Address family not supported by protocol"); 2287db96d56Sopenharmony_ci#else 2297db96d56Sopenharmony_ci#ifdef WSAEAFNOSUPPORT 2307db96d56Sopenharmony_ci add_errcode("EAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); 2317db96d56Sopenharmony_ci#endif 2327db96d56Sopenharmony_ci#endif 2337db96d56Sopenharmony_ci#ifdef EBADR 2347db96d56Sopenharmony_ci add_errcode("EBADR", EBADR, "Invalid request descriptor"); 2357db96d56Sopenharmony_ci#endif 2367db96d56Sopenharmony_ci#ifdef EHOSTDOWN 2377db96d56Sopenharmony_ci add_errcode("EHOSTDOWN", EHOSTDOWN, "Host is down"); 2387db96d56Sopenharmony_ci#else 2397db96d56Sopenharmony_ci#ifdef WSAEHOSTDOWN 2407db96d56Sopenharmony_ci add_errcode("EHOSTDOWN", WSAEHOSTDOWN, "Host is down"); 2417db96d56Sopenharmony_ci#endif 2427db96d56Sopenharmony_ci#endif 2437db96d56Sopenharmony_ci#ifdef EPFNOSUPPORT 2447db96d56Sopenharmony_ci add_errcode("EPFNOSUPPORT", EPFNOSUPPORT, "Protocol family not supported"); 2457db96d56Sopenharmony_ci#else 2467db96d56Sopenharmony_ci#ifdef WSAEPFNOSUPPORT 2477db96d56Sopenharmony_ci add_errcode("EPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); 2487db96d56Sopenharmony_ci#endif 2497db96d56Sopenharmony_ci#endif 2507db96d56Sopenharmony_ci#ifdef ENOPROTOOPT 2517db96d56Sopenharmony_ci add_errcode("ENOPROTOOPT", ENOPROTOOPT, "Protocol not available"); 2527db96d56Sopenharmony_ci#else 2537db96d56Sopenharmony_ci#ifdef WSAENOPROTOOPT 2547db96d56Sopenharmony_ci add_errcode("ENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); 2557db96d56Sopenharmony_ci#endif 2567db96d56Sopenharmony_ci#endif 2577db96d56Sopenharmony_ci#ifdef EBUSY 2587db96d56Sopenharmony_ci add_errcode("EBUSY", EBUSY, "Device or resource busy"); 2597db96d56Sopenharmony_ci#endif 2607db96d56Sopenharmony_ci#ifdef EWOULDBLOCK 2617db96d56Sopenharmony_ci add_errcode("EWOULDBLOCK", EWOULDBLOCK, "Operation would block"); 2627db96d56Sopenharmony_ci#else 2637db96d56Sopenharmony_ci#ifdef WSAEWOULDBLOCK 2647db96d56Sopenharmony_ci add_errcode("EWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); 2657db96d56Sopenharmony_ci#endif 2667db96d56Sopenharmony_ci#endif 2677db96d56Sopenharmony_ci#ifdef EBADFD 2687db96d56Sopenharmony_ci add_errcode("EBADFD", EBADFD, "File descriptor in bad state"); 2697db96d56Sopenharmony_ci#endif 2707db96d56Sopenharmony_ci#ifdef EDOTDOT 2717db96d56Sopenharmony_ci add_errcode("EDOTDOT", EDOTDOT, "RFS specific error"); 2727db96d56Sopenharmony_ci#endif 2737db96d56Sopenharmony_ci#ifdef EISCONN 2747db96d56Sopenharmony_ci add_errcode("EISCONN", EISCONN, "Transport endpoint is already connected"); 2757db96d56Sopenharmony_ci#else 2767db96d56Sopenharmony_ci#ifdef WSAEISCONN 2777db96d56Sopenharmony_ci add_errcode("EISCONN", WSAEISCONN, "Transport endpoint is already connected"); 2787db96d56Sopenharmony_ci#endif 2797db96d56Sopenharmony_ci#endif 2807db96d56Sopenharmony_ci#ifdef ENOANO 2817db96d56Sopenharmony_ci add_errcode("ENOANO", ENOANO, "No anode"); 2827db96d56Sopenharmony_ci#endif 2837db96d56Sopenharmony_ci#if defined(__wasi__) && !defined(ESHUTDOWN) 2847db96d56Sopenharmony_ci // WASI SDK 16 does not have ESHUTDOWN, shutdown results in EPIPE. 2857db96d56Sopenharmony_ci #define ESHUTDOWN EPIPE 2867db96d56Sopenharmony_ci#endif 2877db96d56Sopenharmony_ci#ifdef ESHUTDOWN 2887db96d56Sopenharmony_ci add_errcode("ESHUTDOWN", ESHUTDOWN, "Cannot send after transport endpoint shutdown"); 2897db96d56Sopenharmony_ci#else 2907db96d56Sopenharmony_ci#ifdef WSAESHUTDOWN 2917db96d56Sopenharmony_ci add_errcode("ESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); 2927db96d56Sopenharmony_ci#endif 2937db96d56Sopenharmony_ci#endif 2947db96d56Sopenharmony_ci#ifdef ECHRNG 2957db96d56Sopenharmony_ci add_errcode("ECHRNG", ECHRNG, "Channel number out of range"); 2967db96d56Sopenharmony_ci#endif 2977db96d56Sopenharmony_ci#ifdef ELIBBAD 2987db96d56Sopenharmony_ci add_errcode("ELIBBAD", ELIBBAD, "Accessing a corrupted shared library"); 2997db96d56Sopenharmony_ci#endif 3007db96d56Sopenharmony_ci#ifdef ENONET 3017db96d56Sopenharmony_ci add_errcode("ENONET", ENONET, "Machine is not on the network"); 3027db96d56Sopenharmony_ci#endif 3037db96d56Sopenharmony_ci#ifdef EBADE 3047db96d56Sopenharmony_ci add_errcode("EBADE", EBADE, "Invalid exchange"); 3057db96d56Sopenharmony_ci#endif 3067db96d56Sopenharmony_ci#ifdef EBADF 3077db96d56Sopenharmony_ci add_errcode("EBADF", EBADF, "Bad file number"); 3087db96d56Sopenharmony_ci#else 3097db96d56Sopenharmony_ci#ifdef WSAEBADF 3107db96d56Sopenharmony_ci add_errcode("EBADF", WSAEBADF, "Bad file number"); 3117db96d56Sopenharmony_ci#endif 3127db96d56Sopenharmony_ci#endif 3137db96d56Sopenharmony_ci#ifdef EMULTIHOP 3147db96d56Sopenharmony_ci add_errcode("EMULTIHOP", EMULTIHOP, "Multihop attempted"); 3157db96d56Sopenharmony_ci#endif 3167db96d56Sopenharmony_ci#ifdef EIO 3177db96d56Sopenharmony_ci add_errcode("EIO", EIO, "I/O error"); 3187db96d56Sopenharmony_ci#endif 3197db96d56Sopenharmony_ci#ifdef EUNATCH 3207db96d56Sopenharmony_ci add_errcode("EUNATCH", EUNATCH, "Protocol driver not attached"); 3217db96d56Sopenharmony_ci#endif 3227db96d56Sopenharmony_ci#ifdef EPROTOTYPE 3237db96d56Sopenharmony_ci add_errcode("EPROTOTYPE", EPROTOTYPE, "Protocol wrong type for socket"); 3247db96d56Sopenharmony_ci#else 3257db96d56Sopenharmony_ci#ifdef WSAEPROTOTYPE 3267db96d56Sopenharmony_ci add_errcode("EPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); 3277db96d56Sopenharmony_ci#endif 3287db96d56Sopenharmony_ci#endif 3297db96d56Sopenharmony_ci#ifdef ENOSPC 3307db96d56Sopenharmony_ci add_errcode("ENOSPC", ENOSPC, "No space left on device"); 3317db96d56Sopenharmony_ci#endif 3327db96d56Sopenharmony_ci#ifdef ENOEXEC 3337db96d56Sopenharmony_ci add_errcode("ENOEXEC", ENOEXEC, "Exec format error"); 3347db96d56Sopenharmony_ci#endif 3357db96d56Sopenharmony_ci#ifdef EALREADY 3367db96d56Sopenharmony_ci add_errcode("EALREADY", EALREADY, "Operation already in progress"); 3377db96d56Sopenharmony_ci#else 3387db96d56Sopenharmony_ci#ifdef WSAEALREADY 3397db96d56Sopenharmony_ci add_errcode("EALREADY", WSAEALREADY, "Operation already in progress"); 3407db96d56Sopenharmony_ci#endif 3417db96d56Sopenharmony_ci#endif 3427db96d56Sopenharmony_ci#ifdef ENETDOWN 3437db96d56Sopenharmony_ci add_errcode("ENETDOWN", ENETDOWN, "Network is down"); 3447db96d56Sopenharmony_ci#else 3457db96d56Sopenharmony_ci#ifdef WSAENETDOWN 3467db96d56Sopenharmony_ci add_errcode("ENETDOWN", WSAENETDOWN, "Network is down"); 3477db96d56Sopenharmony_ci#endif 3487db96d56Sopenharmony_ci#endif 3497db96d56Sopenharmony_ci#ifdef ENOTNAM 3507db96d56Sopenharmony_ci add_errcode("ENOTNAM", ENOTNAM, "Not a XENIX named type file"); 3517db96d56Sopenharmony_ci#endif 3527db96d56Sopenharmony_ci#ifdef EACCES 3537db96d56Sopenharmony_ci add_errcode("EACCES", EACCES, "Permission denied"); 3547db96d56Sopenharmony_ci#else 3557db96d56Sopenharmony_ci#ifdef WSAEACCES 3567db96d56Sopenharmony_ci add_errcode("EACCES", WSAEACCES, "Permission denied"); 3577db96d56Sopenharmony_ci#endif 3587db96d56Sopenharmony_ci#endif 3597db96d56Sopenharmony_ci#ifdef ELNRNG 3607db96d56Sopenharmony_ci add_errcode("ELNRNG", ELNRNG, "Link number out of range"); 3617db96d56Sopenharmony_ci#endif 3627db96d56Sopenharmony_ci#ifdef EILSEQ 3637db96d56Sopenharmony_ci add_errcode("EILSEQ", EILSEQ, "Illegal byte sequence"); 3647db96d56Sopenharmony_ci#endif 3657db96d56Sopenharmony_ci#ifdef ENOTDIR 3667db96d56Sopenharmony_ci add_errcode("ENOTDIR", ENOTDIR, "Not a directory"); 3677db96d56Sopenharmony_ci#endif 3687db96d56Sopenharmony_ci#ifdef ENOTUNIQ 3697db96d56Sopenharmony_ci add_errcode("ENOTUNIQ", ENOTUNIQ, "Name not unique on network"); 3707db96d56Sopenharmony_ci#endif 3717db96d56Sopenharmony_ci#ifdef EPERM 3727db96d56Sopenharmony_ci add_errcode("EPERM", EPERM, "Operation not permitted"); 3737db96d56Sopenharmony_ci#endif 3747db96d56Sopenharmony_ci#ifdef EDOM 3757db96d56Sopenharmony_ci add_errcode("EDOM", EDOM, "Math argument out of domain of func"); 3767db96d56Sopenharmony_ci#endif 3777db96d56Sopenharmony_ci#ifdef EXFULL 3787db96d56Sopenharmony_ci add_errcode("EXFULL", EXFULL, "Exchange full"); 3797db96d56Sopenharmony_ci#endif 3807db96d56Sopenharmony_ci#ifdef ECONNREFUSED 3817db96d56Sopenharmony_ci add_errcode("ECONNREFUSED", ECONNREFUSED, "Connection refused"); 3827db96d56Sopenharmony_ci#else 3837db96d56Sopenharmony_ci#ifdef WSAECONNREFUSED 3847db96d56Sopenharmony_ci add_errcode("ECONNREFUSED", WSAECONNREFUSED, "Connection refused"); 3857db96d56Sopenharmony_ci#endif 3867db96d56Sopenharmony_ci#endif 3877db96d56Sopenharmony_ci#ifdef EISDIR 3887db96d56Sopenharmony_ci add_errcode("EISDIR", EISDIR, "Is a directory"); 3897db96d56Sopenharmony_ci#endif 3907db96d56Sopenharmony_ci#ifdef EPROTONOSUPPORT 3917db96d56Sopenharmony_ci add_errcode("EPROTONOSUPPORT", EPROTONOSUPPORT, "Protocol not supported"); 3927db96d56Sopenharmony_ci#else 3937db96d56Sopenharmony_ci#ifdef WSAEPROTONOSUPPORT 3947db96d56Sopenharmony_ci add_errcode("EPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); 3957db96d56Sopenharmony_ci#endif 3967db96d56Sopenharmony_ci#endif 3977db96d56Sopenharmony_ci#ifdef EROFS 3987db96d56Sopenharmony_ci add_errcode("EROFS", EROFS, "Read-only file system"); 3997db96d56Sopenharmony_ci#endif 4007db96d56Sopenharmony_ci#ifdef EADDRNOTAVAIL 4017db96d56Sopenharmony_ci add_errcode("EADDRNOTAVAIL", EADDRNOTAVAIL, "Cannot assign requested address"); 4027db96d56Sopenharmony_ci#else 4037db96d56Sopenharmony_ci#ifdef WSAEADDRNOTAVAIL 4047db96d56Sopenharmony_ci add_errcode("EADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); 4057db96d56Sopenharmony_ci#endif 4067db96d56Sopenharmony_ci#endif 4077db96d56Sopenharmony_ci#ifdef EIDRM 4087db96d56Sopenharmony_ci add_errcode("EIDRM", EIDRM, "Identifier removed"); 4097db96d56Sopenharmony_ci#endif 4107db96d56Sopenharmony_ci#ifdef ECOMM 4117db96d56Sopenharmony_ci add_errcode("ECOMM", ECOMM, "Communication error on send"); 4127db96d56Sopenharmony_ci#endif 4137db96d56Sopenharmony_ci#ifdef ESRMNT 4147db96d56Sopenharmony_ci add_errcode("ESRMNT", ESRMNT, "Srmount error"); 4157db96d56Sopenharmony_ci#endif 4167db96d56Sopenharmony_ci#ifdef EREMOTEIO 4177db96d56Sopenharmony_ci add_errcode("EREMOTEIO", EREMOTEIO, "Remote I/O error"); 4187db96d56Sopenharmony_ci#endif 4197db96d56Sopenharmony_ci#ifdef EL3RST 4207db96d56Sopenharmony_ci add_errcode("EL3RST", EL3RST, "Level 3 reset"); 4217db96d56Sopenharmony_ci#endif 4227db96d56Sopenharmony_ci#ifdef EBADMSG 4237db96d56Sopenharmony_ci add_errcode("EBADMSG", EBADMSG, "Not a data message"); 4247db96d56Sopenharmony_ci#endif 4257db96d56Sopenharmony_ci#ifdef ENFILE 4267db96d56Sopenharmony_ci add_errcode("ENFILE", ENFILE, "File table overflow"); 4277db96d56Sopenharmony_ci#endif 4287db96d56Sopenharmony_ci#ifdef ELIBMAX 4297db96d56Sopenharmony_ci add_errcode("ELIBMAX", ELIBMAX, "Attempting to link in too many shared libraries"); 4307db96d56Sopenharmony_ci#endif 4317db96d56Sopenharmony_ci#ifdef ESPIPE 4327db96d56Sopenharmony_ci add_errcode("ESPIPE", ESPIPE, "Illegal seek"); 4337db96d56Sopenharmony_ci#endif 4347db96d56Sopenharmony_ci#ifdef ENOLINK 4357db96d56Sopenharmony_ci add_errcode("ENOLINK", ENOLINK, "Link has been severed"); 4367db96d56Sopenharmony_ci#endif 4377db96d56Sopenharmony_ci#ifdef ENETRESET 4387db96d56Sopenharmony_ci add_errcode("ENETRESET", ENETRESET, "Network dropped connection because of reset"); 4397db96d56Sopenharmony_ci#else 4407db96d56Sopenharmony_ci#ifdef WSAENETRESET 4417db96d56Sopenharmony_ci add_errcode("ENETRESET", WSAENETRESET, "Network dropped connection because of reset"); 4427db96d56Sopenharmony_ci#endif 4437db96d56Sopenharmony_ci#endif 4447db96d56Sopenharmony_ci#ifdef ETIMEDOUT 4457db96d56Sopenharmony_ci add_errcode("ETIMEDOUT", ETIMEDOUT, "Connection timed out"); 4467db96d56Sopenharmony_ci#else 4477db96d56Sopenharmony_ci#ifdef WSAETIMEDOUT 4487db96d56Sopenharmony_ci add_errcode("ETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); 4497db96d56Sopenharmony_ci#endif 4507db96d56Sopenharmony_ci#endif 4517db96d56Sopenharmony_ci#ifdef ENOENT 4527db96d56Sopenharmony_ci add_errcode("ENOENT", ENOENT, "No such file or directory"); 4537db96d56Sopenharmony_ci#endif 4547db96d56Sopenharmony_ci#ifdef EEXIST 4557db96d56Sopenharmony_ci add_errcode("EEXIST", EEXIST, "File exists"); 4567db96d56Sopenharmony_ci#endif 4577db96d56Sopenharmony_ci#ifdef EDQUOT 4587db96d56Sopenharmony_ci add_errcode("EDQUOT", EDQUOT, "Quota exceeded"); 4597db96d56Sopenharmony_ci#else 4607db96d56Sopenharmony_ci#ifdef WSAEDQUOT 4617db96d56Sopenharmony_ci add_errcode("EDQUOT", WSAEDQUOT, "Quota exceeded"); 4627db96d56Sopenharmony_ci#endif 4637db96d56Sopenharmony_ci#endif 4647db96d56Sopenharmony_ci#ifdef ENOSTR 4657db96d56Sopenharmony_ci add_errcode("ENOSTR", ENOSTR, "Device not a stream"); 4667db96d56Sopenharmony_ci#endif 4677db96d56Sopenharmony_ci#ifdef EBADSLT 4687db96d56Sopenharmony_ci add_errcode("EBADSLT", EBADSLT, "Invalid slot"); 4697db96d56Sopenharmony_ci#endif 4707db96d56Sopenharmony_ci#ifdef EBADRQC 4717db96d56Sopenharmony_ci add_errcode("EBADRQC", EBADRQC, "Invalid request code"); 4727db96d56Sopenharmony_ci#endif 4737db96d56Sopenharmony_ci#ifdef ELIBACC 4747db96d56Sopenharmony_ci add_errcode("ELIBACC", ELIBACC, "Can not access a needed shared library"); 4757db96d56Sopenharmony_ci#endif 4767db96d56Sopenharmony_ci#ifdef EFAULT 4777db96d56Sopenharmony_ci add_errcode("EFAULT", EFAULT, "Bad address"); 4787db96d56Sopenharmony_ci#else 4797db96d56Sopenharmony_ci#ifdef WSAEFAULT 4807db96d56Sopenharmony_ci add_errcode("EFAULT", WSAEFAULT, "Bad address"); 4817db96d56Sopenharmony_ci#endif 4827db96d56Sopenharmony_ci#endif 4837db96d56Sopenharmony_ci#ifdef EFBIG 4847db96d56Sopenharmony_ci add_errcode("EFBIG", EFBIG, "File too large"); 4857db96d56Sopenharmony_ci#endif 4867db96d56Sopenharmony_ci#ifdef EDEADLK 4877db96d56Sopenharmony_ci add_errcode("EDEADLK", EDEADLK, "Resource deadlock would occur"); 4887db96d56Sopenharmony_ci#endif 4897db96d56Sopenharmony_ci#ifdef ENOTCONN 4907db96d56Sopenharmony_ci add_errcode("ENOTCONN", ENOTCONN, "Transport endpoint is not connected"); 4917db96d56Sopenharmony_ci#else 4927db96d56Sopenharmony_ci#ifdef WSAENOTCONN 4937db96d56Sopenharmony_ci add_errcode("ENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); 4947db96d56Sopenharmony_ci#endif 4957db96d56Sopenharmony_ci#endif 4967db96d56Sopenharmony_ci#ifdef EDESTADDRREQ 4977db96d56Sopenharmony_ci add_errcode("EDESTADDRREQ", EDESTADDRREQ, "Destination address required"); 4987db96d56Sopenharmony_ci#else 4997db96d56Sopenharmony_ci#ifdef WSAEDESTADDRREQ 5007db96d56Sopenharmony_ci add_errcode("EDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); 5017db96d56Sopenharmony_ci#endif 5027db96d56Sopenharmony_ci#endif 5037db96d56Sopenharmony_ci#ifdef ELIBSCN 5047db96d56Sopenharmony_ci add_errcode("ELIBSCN", ELIBSCN, ".lib section in a.out corrupted"); 5057db96d56Sopenharmony_ci#endif 5067db96d56Sopenharmony_ci#ifdef ENOLCK 5077db96d56Sopenharmony_ci add_errcode("ENOLCK", ENOLCK, "No record locks available"); 5087db96d56Sopenharmony_ci#endif 5097db96d56Sopenharmony_ci#ifdef EISNAM 5107db96d56Sopenharmony_ci add_errcode("EISNAM", EISNAM, "Is a named type file"); 5117db96d56Sopenharmony_ci#endif 5127db96d56Sopenharmony_ci#ifdef ECONNABORTED 5137db96d56Sopenharmony_ci add_errcode("ECONNABORTED", ECONNABORTED, "Software caused connection abort"); 5147db96d56Sopenharmony_ci#else 5157db96d56Sopenharmony_ci#ifdef WSAECONNABORTED 5167db96d56Sopenharmony_ci add_errcode("ECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); 5177db96d56Sopenharmony_ci#endif 5187db96d56Sopenharmony_ci#endif 5197db96d56Sopenharmony_ci#ifdef ENETUNREACH 5207db96d56Sopenharmony_ci add_errcode("ENETUNREACH", ENETUNREACH, "Network is unreachable"); 5217db96d56Sopenharmony_ci#else 5227db96d56Sopenharmony_ci#ifdef WSAENETUNREACH 5237db96d56Sopenharmony_ci add_errcode("ENETUNREACH", WSAENETUNREACH, "Network is unreachable"); 5247db96d56Sopenharmony_ci#endif 5257db96d56Sopenharmony_ci#endif 5267db96d56Sopenharmony_ci#ifdef ESTALE 5277db96d56Sopenharmony_ci add_errcode("ESTALE", ESTALE, "Stale NFS file handle"); 5287db96d56Sopenharmony_ci#else 5297db96d56Sopenharmony_ci#ifdef WSAESTALE 5307db96d56Sopenharmony_ci add_errcode("ESTALE", WSAESTALE, "Stale NFS file handle"); 5317db96d56Sopenharmony_ci#endif 5327db96d56Sopenharmony_ci#endif 5337db96d56Sopenharmony_ci#ifdef ENOSR 5347db96d56Sopenharmony_ci add_errcode("ENOSR", ENOSR, "Out of streams resources"); 5357db96d56Sopenharmony_ci#endif 5367db96d56Sopenharmony_ci#ifdef ENOMEM 5377db96d56Sopenharmony_ci add_errcode("ENOMEM", ENOMEM, "Out of memory"); 5387db96d56Sopenharmony_ci#endif 5397db96d56Sopenharmony_ci#ifdef ENOTSOCK 5407db96d56Sopenharmony_ci add_errcode("ENOTSOCK", ENOTSOCK, "Socket operation on non-socket"); 5417db96d56Sopenharmony_ci#else 5427db96d56Sopenharmony_ci#ifdef WSAENOTSOCK 5437db96d56Sopenharmony_ci add_errcode("ENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); 5447db96d56Sopenharmony_ci#endif 5457db96d56Sopenharmony_ci#endif 5467db96d56Sopenharmony_ci#ifdef ESTRPIPE 5477db96d56Sopenharmony_ci add_errcode("ESTRPIPE", ESTRPIPE, "Streams pipe error"); 5487db96d56Sopenharmony_ci#endif 5497db96d56Sopenharmony_ci#ifdef EMLINK 5507db96d56Sopenharmony_ci add_errcode("EMLINK", EMLINK, "Too many links"); 5517db96d56Sopenharmony_ci#endif 5527db96d56Sopenharmony_ci#ifdef ERANGE 5537db96d56Sopenharmony_ci add_errcode("ERANGE", ERANGE, "Math result not representable"); 5547db96d56Sopenharmony_ci#endif 5557db96d56Sopenharmony_ci#ifdef ELIBEXEC 5567db96d56Sopenharmony_ci add_errcode("ELIBEXEC", ELIBEXEC, "Cannot exec a shared library directly"); 5577db96d56Sopenharmony_ci#endif 5587db96d56Sopenharmony_ci#ifdef EL3HLT 5597db96d56Sopenharmony_ci add_errcode("EL3HLT", EL3HLT, "Level 3 halted"); 5607db96d56Sopenharmony_ci#endif 5617db96d56Sopenharmony_ci#ifdef ECONNRESET 5627db96d56Sopenharmony_ci add_errcode("ECONNRESET", ECONNRESET, "Connection reset by peer"); 5637db96d56Sopenharmony_ci#else 5647db96d56Sopenharmony_ci#ifdef WSAECONNRESET 5657db96d56Sopenharmony_ci add_errcode("ECONNRESET", WSAECONNRESET, "Connection reset by peer"); 5667db96d56Sopenharmony_ci#endif 5677db96d56Sopenharmony_ci#endif 5687db96d56Sopenharmony_ci#ifdef EADDRINUSE 5697db96d56Sopenharmony_ci add_errcode("EADDRINUSE", EADDRINUSE, "Address already in use"); 5707db96d56Sopenharmony_ci#else 5717db96d56Sopenharmony_ci#ifdef WSAEADDRINUSE 5727db96d56Sopenharmony_ci add_errcode("EADDRINUSE", WSAEADDRINUSE, "Address already in use"); 5737db96d56Sopenharmony_ci#endif 5747db96d56Sopenharmony_ci#endif 5757db96d56Sopenharmony_ci#ifdef EOPNOTSUPP 5767db96d56Sopenharmony_ci add_errcode("EOPNOTSUPP", EOPNOTSUPP, "Operation not supported on transport endpoint"); 5777db96d56Sopenharmony_ci#else 5787db96d56Sopenharmony_ci#ifdef WSAEOPNOTSUPP 5797db96d56Sopenharmony_ci add_errcode("EOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); 5807db96d56Sopenharmony_ci#endif 5817db96d56Sopenharmony_ci#endif 5827db96d56Sopenharmony_ci#ifdef EREMCHG 5837db96d56Sopenharmony_ci add_errcode("EREMCHG", EREMCHG, "Remote address changed"); 5847db96d56Sopenharmony_ci#endif 5857db96d56Sopenharmony_ci#ifdef EAGAIN 5867db96d56Sopenharmony_ci add_errcode("EAGAIN", EAGAIN, "Try again"); 5877db96d56Sopenharmony_ci#endif 5887db96d56Sopenharmony_ci#ifdef ENAMETOOLONG 5897db96d56Sopenharmony_ci add_errcode("ENAMETOOLONG", ENAMETOOLONG, "File name too long"); 5907db96d56Sopenharmony_ci#else 5917db96d56Sopenharmony_ci#ifdef WSAENAMETOOLONG 5927db96d56Sopenharmony_ci add_errcode("ENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); 5937db96d56Sopenharmony_ci#endif 5947db96d56Sopenharmony_ci#endif 5957db96d56Sopenharmony_ci#ifdef ENOTTY 5967db96d56Sopenharmony_ci add_errcode("ENOTTY", ENOTTY, "Not a typewriter"); 5977db96d56Sopenharmony_ci#endif 5987db96d56Sopenharmony_ci#ifdef ERESTART 5997db96d56Sopenharmony_ci add_errcode("ERESTART", ERESTART, "Interrupted system call should be restarted"); 6007db96d56Sopenharmony_ci#endif 6017db96d56Sopenharmony_ci#ifdef ESOCKTNOSUPPORT 6027db96d56Sopenharmony_ci add_errcode("ESOCKTNOSUPPORT", ESOCKTNOSUPPORT, "Socket type not supported"); 6037db96d56Sopenharmony_ci#else 6047db96d56Sopenharmony_ci#ifdef WSAESOCKTNOSUPPORT 6057db96d56Sopenharmony_ci add_errcode("ESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); 6067db96d56Sopenharmony_ci#endif 6077db96d56Sopenharmony_ci#endif 6087db96d56Sopenharmony_ci#ifdef ETIME 6097db96d56Sopenharmony_ci add_errcode("ETIME", ETIME, "Timer expired"); 6107db96d56Sopenharmony_ci#endif 6117db96d56Sopenharmony_ci#ifdef EBFONT 6127db96d56Sopenharmony_ci add_errcode("EBFONT", EBFONT, "Bad font file format"); 6137db96d56Sopenharmony_ci#endif 6147db96d56Sopenharmony_ci#ifdef EDEADLOCK 6157db96d56Sopenharmony_ci add_errcode("EDEADLOCK", EDEADLOCK, "Error EDEADLOCK"); 6167db96d56Sopenharmony_ci#endif 6177db96d56Sopenharmony_ci#ifdef ETOOMANYREFS 6187db96d56Sopenharmony_ci add_errcode("ETOOMANYREFS", ETOOMANYREFS, "Too many references: cannot splice"); 6197db96d56Sopenharmony_ci#else 6207db96d56Sopenharmony_ci#ifdef WSAETOOMANYREFS 6217db96d56Sopenharmony_ci add_errcode("ETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); 6227db96d56Sopenharmony_ci#endif 6237db96d56Sopenharmony_ci#endif 6247db96d56Sopenharmony_ci#ifdef EMFILE 6257db96d56Sopenharmony_ci add_errcode("EMFILE", EMFILE, "Too many open files"); 6267db96d56Sopenharmony_ci#else 6277db96d56Sopenharmony_ci#ifdef WSAEMFILE 6287db96d56Sopenharmony_ci add_errcode("EMFILE", WSAEMFILE, "Too many open files"); 6297db96d56Sopenharmony_ci#endif 6307db96d56Sopenharmony_ci#endif 6317db96d56Sopenharmony_ci#ifdef ETXTBSY 6327db96d56Sopenharmony_ci add_errcode("ETXTBSY", ETXTBSY, "Text file busy"); 6337db96d56Sopenharmony_ci#endif 6347db96d56Sopenharmony_ci#ifdef EINPROGRESS 6357db96d56Sopenharmony_ci add_errcode("EINPROGRESS", EINPROGRESS, "Operation now in progress"); 6367db96d56Sopenharmony_ci#else 6377db96d56Sopenharmony_ci#ifdef WSAEINPROGRESS 6387db96d56Sopenharmony_ci add_errcode("EINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); 6397db96d56Sopenharmony_ci#endif 6407db96d56Sopenharmony_ci#endif 6417db96d56Sopenharmony_ci#ifdef ENXIO 6427db96d56Sopenharmony_ci add_errcode("ENXIO", ENXIO, "No such device or address"); 6437db96d56Sopenharmony_ci#endif 6447db96d56Sopenharmony_ci#ifdef ENOPKG 6457db96d56Sopenharmony_ci add_errcode("ENOPKG", ENOPKG, "Package not installed"); 6467db96d56Sopenharmony_ci#endif 6477db96d56Sopenharmony_ci#ifdef WSASY 6487db96d56Sopenharmony_ci add_errcode("WSASY", WSASY, "Error WSASY"); 6497db96d56Sopenharmony_ci#endif 6507db96d56Sopenharmony_ci#ifdef WSAEHOSTDOWN 6517db96d56Sopenharmony_ci add_errcode("WSAEHOSTDOWN", WSAEHOSTDOWN, "Host is down"); 6527db96d56Sopenharmony_ci#endif 6537db96d56Sopenharmony_ci#ifdef WSAENETDOWN 6547db96d56Sopenharmony_ci add_errcode("WSAENETDOWN", WSAENETDOWN, "Network is down"); 6557db96d56Sopenharmony_ci#endif 6567db96d56Sopenharmony_ci#ifdef WSAENOTSOCK 6577db96d56Sopenharmony_ci add_errcode("WSAENOTSOCK", WSAENOTSOCK, "Socket operation on non-socket"); 6587db96d56Sopenharmony_ci#endif 6597db96d56Sopenharmony_ci#ifdef WSAEHOSTUNREACH 6607db96d56Sopenharmony_ci add_errcode("WSAEHOSTUNREACH", WSAEHOSTUNREACH, "No route to host"); 6617db96d56Sopenharmony_ci#endif 6627db96d56Sopenharmony_ci#ifdef WSAELOOP 6637db96d56Sopenharmony_ci add_errcode("WSAELOOP", WSAELOOP, "Too many symbolic links encountered"); 6647db96d56Sopenharmony_ci#endif 6657db96d56Sopenharmony_ci#ifdef WSAEMFILE 6667db96d56Sopenharmony_ci add_errcode("WSAEMFILE", WSAEMFILE, "Too many open files"); 6677db96d56Sopenharmony_ci#endif 6687db96d56Sopenharmony_ci#ifdef WSAESTALE 6697db96d56Sopenharmony_ci add_errcode("WSAESTALE", WSAESTALE, "Stale NFS file handle"); 6707db96d56Sopenharmony_ci#endif 6717db96d56Sopenharmony_ci#ifdef WSAVERNOTSUPPORTED 6727db96d56Sopenharmony_ci add_errcode("WSAVERNOTSUPPORTED", WSAVERNOTSUPPORTED, "Error WSAVERNOTSUPPORTED"); 6737db96d56Sopenharmony_ci#endif 6747db96d56Sopenharmony_ci#ifdef WSAENETUNREACH 6757db96d56Sopenharmony_ci add_errcode("WSAENETUNREACH", WSAENETUNREACH, "Network is unreachable"); 6767db96d56Sopenharmony_ci#endif 6777db96d56Sopenharmony_ci#ifdef WSAEPROCLIM 6787db96d56Sopenharmony_ci add_errcode("WSAEPROCLIM", WSAEPROCLIM, "Error WSAEPROCLIM"); 6797db96d56Sopenharmony_ci#endif 6807db96d56Sopenharmony_ci#ifdef WSAEFAULT 6817db96d56Sopenharmony_ci add_errcode("WSAEFAULT", WSAEFAULT, "Bad address"); 6827db96d56Sopenharmony_ci#endif 6837db96d56Sopenharmony_ci#ifdef WSANOTINITIALISED 6847db96d56Sopenharmony_ci add_errcode("WSANOTINITIALISED", WSANOTINITIALISED, "Error WSANOTINITIALISED"); 6857db96d56Sopenharmony_ci#endif 6867db96d56Sopenharmony_ci#ifdef WSAEUSERS 6877db96d56Sopenharmony_ci add_errcode("WSAEUSERS", WSAEUSERS, "Too many users"); 6887db96d56Sopenharmony_ci#endif 6897db96d56Sopenharmony_ci#ifdef WSAMAKEASYNCREPL 6907db96d56Sopenharmony_ci add_errcode("WSAMAKEASYNCREPL", WSAMAKEASYNCREPL, "Error WSAMAKEASYNCREPL"); 6917db96d56Sopenharmony_ci#endif 6927db96d56Sopenharmony_ci#ifdef WSAENOPROTOOPT 6937db96d56Sopenharmony_ci add_errcode("WSAENOPROTOOPT", WSAENOPROTOOPT, "Protocol not available"); 6947db96d56Sopenharmony_ci#endif 6957db96d56Sopenharmony_ci#ifdef WSAECONNABORTED 6967db96d56Sopenharmony_ci add_errcode("WSAECONNABORTED", WSAECONNABORTED, "Software caused connection abort"); 6977db96d56Sopenharmony_ci#endif 6987db96d56Sopenharmony_ci#ifdef WSAENAMETOOLONG 6997db96d56Sopenharmony_ci add_errcode("WSAENAMETOOLONG", WSAENAMETOOLONG, "File name too long"); 7007db96d56Sopenharmony_ci#endif 7017db96d56Sopenharmony_ci#ifdef WSAENOTEMPTY 7027db96d56Sopenharmony_ci add_errcode("WSAENOTEMPTY", WSAENOTEMPTY, "Directory not empty"); 7037db96d56Sopenharmony_ci#endif 7047db96d56Sopenharmony_ci#ifdef WSAESHUTDOWN 7057db96d56Sopenharmony_ci add_errcode("WSAESHUTDOWN", WSAESHUTDOWN, "Cannot send after transport endpoint shutdown"); 7067db96d56Sopenharmony_ci#endif 7077db96d56Sopenharmony_ci#ifdef WSAEAFNOSUPPORT 7087db96d56Sopenharmony_ci add_errcode("WSAEAFNOSUPPORT", WSAEAFNOSUPPORT, "Address family not supported by protocol"); 7097db96d56Sopenharmony_ci#endif 7107db96d56Sopenharmony_ci#ifdef WSAETOOMANYREFS 7117db96d56Sopenharmony_ci add_errcode("WSAETOOMANYREFS", WSAETOOMANYREFS, "Too many references: cannot splice"); 7127db96d56Sopenharmony_ci#endif 7137db96d56Sopenharmony_ci#ifdef WSAEACCES 7147db96d56Sopenharmony_ci add_errcode("WSAEACCES", WSAEACCES, "Permission denied"); 7157db96d56Sopenharmony_ci#endif 7167db96d56Sopenharmony_ci#ifdef WSATR 7177db96d56Sopenharmony_ci add_errcode("WSATR", WSATR, "Error WSATR"); 7187db96d56Sopenharmony_ci#endif 7197db96d56Sopenharmony_ci#ifdef WSABASEERR 7207db96d56Sopenharmony_ci add_errcode("WSABASEERR", WSABASEERR, "Error WSABASEERR"); 7217db96d56Sopenharmony_ci#endif 7227db96d56Sopenharmony_ci#ifdef WSADESCRIPTIO 7237db96d56Sopenharmony_ci add_errcode("WSADESCRIPTIO", WSADESCRIPTIO, "Error WSADESCRIPTIO"); 7247db96d56Sopenharmony_ci#endif 7257db96d56Sopenharmony_ci#ifdef WSAEMSGSIZE 7267db96d56Sopenharmony_ci add_errcode("WSAEMSGSIZE", WSAEMSGSIZE, "Message too long"); 7277db96d56Sopenharmony_ci#endif 7287db96d56Sopenharmony_ci#ifdef WSAEBADF 7297db96d56Sopenharmony_ci add_errcode("WSAEBADF", WSAEBADF, "Bad file number"); 7307db96d56Sopenharmony_ci#endif 7317db96d56Sopenharmony_ci#ifdef WSAECONNRESET 7327db96d56Sopenharmony_ci add_errcode("WSAECONNRESET", WSAECONNRESET, "Connection reset by peer"); 7337db96d56Sopenharmony_ci#endif 7347db96d56Sopenharmony_ci#ifdef WSAGETSELECTERRO 7357db96d56Sopenharmony_ci add_errcode("WSAGETSELECTERRO", WSAGETSELECTERRO, "Error WSAGETSELECTERRO"); 7367db96d56Sopenharmony_ci#endif 7377db96d56Sopenharmony_ci#ifdef WSAETIMEDOUT 7387db96d56Sopenharmony_ci add_errcode("WSAETIMEDOUT", WSAETIMEDOUT, "Connection timed out"); 7397db96d56Sopenharmony_ci#endif 7407db96d56Sopenharmony_ci#ifdef WSAENOBUFS 7417db96d56Sopenharmony_ci add_errcode("WSAENOBUFS", WSAENOBUFS, "No buffer space available"); 7427db96d56Sopenharmony_ci#endif 7437db96d56Sopenharmony_ci#ifdef WSAEDISCON 7447db96d56Sopenharmony_ci add_errcode("WSAEDISCON", WSAEDISCON, "Error WSAEDISCON"); 7457db96d56Sopenharmony_ci#endif 7467db96d56Sopenharmony_ci#ifdef WSAEINTR 7477db96d56Sopenharmony_ci add_errcode("WSAEINTR", WSAEINTR, "Interrupted system call"); 7487db96d56Sopenharmony_ci#endif 7497db96d56Sopenharmony_ci#ifdef WSAEPROTOTYPE 7507db96d56Sopenharmony_ci add_errcode("WSAEPROTOTYPE", WSAEPROTOTYPE, "Protocol wrong type for socket"); 7517db96d56Sopenharmony_ci#endif 7527db96d56Sopenharmony_ci#ifdef WSAHOS 7537db96d56Sopenharmony_ci add_errcode("WSAHOS", WSAHOS, "Error WSAHOS"); 7547db96d56Sopenharmony_ci#endif 7557db96d56Sopenharmony_ci#ifdef WSAEADDRINUSE 7567db96d56Sopenharmony_ci add_errcode("WSAEADDRINUSE", WSAEADDRINUSE, "Address already in use"); 7577db96d56Sopenharmony_ci#endif 7587db96d56Sopenharmony_ci#ifdef WSAEADDRNOTAVAIL 7597db96d56Sopenharmony_ci add_errcode("WSAEADDRNOTAVAIL", WSAEADDRNOTAVAIL, "Cannot assign requested address"); 7607db96d56Sopenharmony_ci#endif 7617db96d56Sopenharmony_ci#ifdef WSAEALREADY 7627db96d56Sopenharmony_ci add_errcode("WSAEALREADY", WSAEALREADY, "Operation already in progress"); 7637db96d56Sopenharmony_ci#endif 7647db96d56Sopenharmony_ci#ifdef WSAEPROTONOSUPPORT 7657db96d56Sopenharmony_ci add_errcode("WSAEPROTONOSUPPORT", WSAEPROTONOSUPPORT, "Protocol not supported"); 7667db96d56Sopenharmony_ci#endif 7677db96d56Sopenharmony_ci#ifdef WSASYSNOTREADY 7687db96d56Sopenharmony_ci add_errcode("WSASYSNOTREADY", WSASYSNOTREADY, "Error WSASYSNOTREADY"); 7697db96d56Sopenharmony_ci#endif 7707db96d56Sopenharmony_ci#ifdef WSAEWOULDBLOCK 7717db96d56Sopenharmony_ci add_errcode("WSAEWOULDBLOCK", WSAEWOULDBLOCK, "Operation would block"); 7727db96d56Sopenharmony_ci#endif 7737db96d56Sopenharmony_ci#ifdef WSAEPFNOSUPPORT 7747db96d56Sopenharmony_ci add_errcode("WSAEPFNOSUPPORT", WSAEPFNOSUPPORT, "Protocol family not supported"); 7757db96d56Sopenharmony_ci#endif 7767db96d56Sopenharmony_ci#ifdef WSAEOPNOTSUPP 7777db96d56Sopenharmony_ci add_errcode("WSAEOPNOTSUPP", WSAEOPNOTSUPP, "Operation not supported on transport endpoint"); 7787db96d56Sopenharmony_ci#endif 7797db96d56Sopenharmony_ci#ifdef WSAEISCONN 7807db96d56Sopenharmony_ci add_errcode("WSAEISCONN", WSAEISCONN, "Transport endpoint is already connected"); 7817db96d56Sopenharmony_ci#endif 7827db96d56Sopenharmony_ci#ifdef WSAEDQUOT 7837db96d56Sopenharmony_ci add_errcode("WSAEDQUOT", WSAEDQUOT, "Quota exceeded"); 7847db96d56Sopenharmony_ci#endif 7857db96d56Sopenharmony_ci#ifdef WSAENOTCONN 7867db96d56Sopenharmony_ci add_errcode("WSAENOTCONN", WSAENOTCONN, "Transport endpoint is not connected"); 7877db96d56Sopenharmony_ci#endif 7887db96d56Sopenharmony_ci#ifdef WSAEREMOTE 7897db96d56Sopenharmony_ci add_errcode("WSAEREMOTE", WSAEREMOTE, "Object is remote"); 7907db96d56Sopenharmony_ci#endif 7917db96d56Sopenharmony_ci#ifdef WSAEINVAL 7927db96d56Sopenharmony_ci add_errcode("WSAEINVAL", WSAEINVAL, "Invalid argument"); 7937db96d56Sopenharmony_ci#endif 7947db96d56Sopenharmony_ci#ifdef WSAEINPROGRESS 7957db96d56Sopenharmony_ci add_errcode("WSAEINPROGRESS", WSAEINPROGRESS, "Operation now in progress"); 7967db96d56Sopenharmony_ci#endif 7977db96d56Sopenharmony_ci#ifdef WSAGETSELECTEVEN 7987db96d56Sopenharmony_ci add_errcode("WSAGETSELECTEVEN", WSAGETSELECTEVEN, "Error WSAGETSELECTEVEN"); 7997db96d56Sopenharmony_ci#endif 8007db96d56Sopenharmony_ci#ifdef WSAESOCKTNOSUPPORT 8017db96d56Sopenharmony_ci add_errcode("WSAESOCKTNOSUPPORT", WSAESOCKTNOSUPPORT, "Socket type not supported"); 8027db96d56Sopenharmony_ci#endif 8037db96d56Sopenharmony_ci#ifdef WSAGETASYNCERRO 8047db96d56Sopenharmony_ci add_errcode("WSAGETASYNCERRO", WSAGETASYNCERRO, "Error WSAGETASYNCERRO"); 8057db96d56Sopenharmony_ci#endif 8067db96d56Sopenharmony_ci#ifdef WSAMAKESELECTREPL 8077db96d56Sopenharmony_ci add_errcode("WSAMAKESELECTREPL", WSAMAKESELECTREPL, "Error WSAMAKESELECTREPL"); 8087db96d56Sopenharmony_ci#endif 8097db96d56Sopenharmony_ci#ifdef WSAGETASYNCBUFLE 8107db96d56Sopenharmony_ci add_errcode("WSAGETASYNCBUFLE", WSAGETASYNCBUFLE, "Error WSAGETASYNCBUFLE"); 8117db96d56Sopenharmony_ci#endif 8127db96d56Sopenharmony_ci#ifdef WSAEDESTADDRREQ 8137db96d56Sopenharmony_ci add_errcode("WSAEDESTADDRREQ", WSAEDESTADDRREQ, "Destination address required"); 8147db96d56Sopenharmony_ci#endif 8157db96d56Sopenharmony_ci#ifdef WSAECONNREFUSED 8167db96d56Sopenharmony_ci add_errcode("WSAECONNREFUSED", WSAECONNREFUSED, "Connection refused"); 8177db96d56Sopenharmony_ci#endif 8187db96d56Sopenharmony_ci#ifdef WSAENETRESET 8197db96d56Sopenharmony_ci add_errcode("WSAENETRESET", WSAENETRESET, "Network dropped connection because of reset"); 8207db96d56Sopenharmony_ci#endif 8217db96d56Sopenharmony_ci#ifdef WSAN 8227db96d56Sopenharmony_ci add_errcode("WSAN", WSAN, "Error WSAN"); 8237db96d56Sopenharmony_ci#endif 8247db96d56Sopenharmony_ci#ifdef ENOMEDIUM 8257db96d56Sopenharmony_ci add_errcode("ENOMEDIUM", ENOMEDIUM, "No medium found"); 8267db96d56Sopenharmony_ci#endif 8277db96d56Sopenharmony_ci#ifdef EMEDIUMTYPE 8287db96d56Sopenharmony_ci add_errcode("EMEDIUMTYPE", EMEDIUMTYPE, "Wrong medium type"); 8297db96d56Sopenharmony_ci#endif 8307db96d56Sopenharmony_ci#ifdef ECANCELED 8317db96d56Sopenharmony_ci add_errcode("ECANCELED", ECANCELED, "Operation Canceled"); 8327db96d56Sopenharmony_ci#endif 8337db96d56Sopenharmony_ci#ifdef ENOKEY 8347db96d56Sopenharmony_ci add_errcode("ENOKEY", ENOKEY, "Required key not available"); 8357db96d56Sopenharmony_ci#endif 8367db96d56Sopenharmony_ci#ifdef EKEYEXPIRED 8377db96d56Sopenharmony_ci add_errcode("EKEYEXPIRED", EKEYEXPIRED, "Key has expired"); 8387db96d56Sopenharmony_ci#endif 8397db96d56Sopenharmony_ci#ifdef EKEYREVOKED 8407db96d56Sopenharmony_ci add_errcode("EKEYREVOKED", EKEYREVOKED, "Key has been revoked"); 8417db96d56Sopenharmony_ci#endif 8427db96d56Sopenharmony_ci#ifdef EKEYREJECTED 8437db96d56Sopenharmony_ci add_errcode("EKEYREJECTED", EKEYREJECTED, "Key was rejected by service"); 8447db96d56Sopenharmony_ci#endif 8457db96d56Sopenharmony_ci#ifdef EOWNERDEAD 8467db96d56Sopenharmony_ci add_errcode("EOWNERDEAD", EOWNERDEAD, "Owner died"); 8477db96d56Sopenharmony_ci#endif 8487db96d56Sopenharmony_ci#ifdef ENOTRECOVERABLE 8497db96d56Sopenharmony_ci add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "State not recoverable"); 8507db96d56Sopenharmony_ci#endif 8517db96d56Sopenharmony_ci#ifdef ERFKILL 8527db96d56Sopenharmony_ci add_errcode("ERFKILL", ERFKILL, "Operation not possible due to RF-kill"); 8537db96d56Sopenharmony_ci#endif 8547db96d56Sopenharmony_ci 8557db96d56Sopenharmony_ci /* Solaris-specific errnos */ 8567db96d56Sopenharmony_ci#ifdef ECANCELED 8577db96d56Sopenharmony_ci add_errcode("ECANCELED", ECANCELED, "Operation canceled"); 8587db96d56Sopenharmony_ci#endif 8597db96d56Sopenharmony_ci#ifdef ENOTSUP 8607db96d56Sopenharmony_ci add_errcode("ENOTSUP", ENOTSUP, "Operation not supported"); 8617db96d56Sopenharmony_ci#endif 8627db96d56Sopenharmony_ci#ifdef EOWNERDEAD 8637db96d56Sopenharmony_ci add_errcode("EOWNERDEAD", EOWNERDEAD, "Process died with the lock"); 8647db96d56Sopenharmony_ci#endif 8657db96d56Sopenharmony_ci#ifdef ENOTRECOVERABLE 8667db96d56Sopenharmony_ci add_errcode("ENOTRECOVERABLE", ENOTRECOVERABLE, "Lock is not recoverable"); 8677db96d56Sopenharmony_ci#endif 8687db96d56Sopenharmony_ci#ifdef ELOCKUNMAPPED 8697db96d56Sopenharmony_ci add_errcode("ELOCKUNMAPPED", ELOCKUNMAPPED, "Locked lock was unmapped"); 8707db96d56Sopenharmony_ci#endif 8717db96d56Sopenharmony_ci#ifdef ENOTACTIVE 8727db96d56Sopenharmony_ci add_errcode("ENOTACTIVE", ENOTACTIVE, "Facility is not active"); 8737db96d56Sopenharmony_ci#endif 8747db96d56Sopenharmony_ci 8757db96d56Sopenharmony_ci /* MacOSX specific errnos */ 8767db96d56Sopenharmony_ci#ifdef EAUTH 8777db96d56Sopenharmony_ci add_errcode("EAUTH", EAUTH, "Authentication error"); 8787db96d56Sopenharmony_ci#endif 8797db96d56Sopenharmony_ci#ifdef EBADARCH 8807db96d56Sopenharmony_ci add_errcode("EBADARCH", EBADARCH, "Bad CPU type in executable"); 8817db96d56Sopenharmony_ci#endif 8827db96d56Sopenharmony_ci#ifdef EBADEXEC 8837db96d56Sopenharmony_ci add_errcode("EBADEXEC", EBADEXEC, "Bad executable (or shared library)"); 8847db96d56Sopenharmony_ci#endif 8857db96d56Sopenharmony_ci#ifdef EBADMACHO 8867db96d56Sopenharmony_ci add_errcode("EBADMACHO", EBADMACHO, "Malformed Mach-o file"); 8877db96d56Sopenharmony_ci#endif 8887db96d56Sopenharmony_ci#ifdef EBADRPC 8897db96d56Sopenharmony_ci add_errcode("EBADRPC", EBADRPC, "RPC struct is bad"); 8907db96d56Sopenharmony_ci#endif 8917db96d56Sopenharmony_ci#ifdef EDEVERR 8927db96d56Sopenharmony_ci add_errcode("EDEVERR", EDEVERR, "Device error"); 8937db96d56Sopenharmony_ci#endif 8947db96d56Sopenharmony_ci#ifdef EFTYPE 8957db96d56Sopenharmony_ci add_errcode("EFTYPE", EFTYPE, "Inappropriate file type or format"); 8967db96d56Sopenharmony_ci#endif 8977db96d56Sopenharmony_ci#ifdef ENEEDAUTH 8987db96d56Sopenharmony_ci add_errcode("ENEEDAUTH", ENEEDAUTH, "Need authenticator"); 8997db96d56Sopenharmony_ci#endif 9007db96d56Sopenharmony_ci#ifdef ENOATTR 9017db96d56Sopenharmony_ci add_errcode("ENOATTR", ENOATTR, "Attribute not found"); 9027db96d56Sopenharmony_ci#endif 9037db96d56Sopenharmony_ci#ifdef ENOPOLICY 9047db96d56Sopenharmony_ci add_errcode("ENOPOLICY", ENOPOLICY, "Policy not found"); 9057db96d56Sopenharmony_ci#endif 9067db96d56Sopenharmony_ci#ifdef EPROCLIM 9077db96d56Sopenharmony_ci add_errcode("EPROCLIM", EPROCLIM, "Too many processes"); 9087db96d56Sopenharmony_ci#endif 9097db96d56Sopenharmony_ci#ifdef EPROCUNAVAIL 9107db96d56Sopenharmony_ci add_errcode("EPROCUNAVAIL", EPROCUNAVAIL, "Bad procedure for program"); 9117db96d56Sopenharmony_ci#endif 9127db96d56Sopenharmony_ci#ifdef EPROGMISMATCH 9137db96d56Sopenharmony_ci add_errcode("EPROGMISMATCH", EPROGMISMATCH, "Program version wrong"); 9147db96d56Sopenharmony_ci#endif 9157db96d56Sopenharmony_ci#ifdef EPROGUNAVAIL 9167db96d56Sopenharmony_ci add_errcode("EPROGUNAVAIL", EPROGUNAVAIL, "RPC prog. not avail"); 9177db96d56Sopenharmony_ci#endif 9187db96d56Sopenharmony_ci#ifdef EPWROFF 9197db96d56Sopenharmony_ci add_errcode("EPWROFF", EPWROFF, "Device power is off"); 9207db96d56Sopenharmony_ci#endif 9217db96d56Sopenharmony_ci#ifdef ERPCMISMATCH 9227db96d56Sopenharmony_ci add_errcode("ERPCMISMATCH", ERPCMISMATCH, "RPC version wrong"); 9237db96d56Sopenharmony_ci#endif 9247db96d56Sopenharmony_ci#ifdef ESHLIBVERS 9257db96d56Sopenharmony_ci add_errcode("ESHLIBVERS", ESHLIBVERS, "Shared library version mismatch"); 9267db96d56Sopenharmony_ci#endif 9277db96d56Sopenharmony_ci#ifdef EQFULL 9287db96d56Sopenharmony_ci add_errcode("EQFULL", EQFULL, "Interface output queue is full"); 9297db96d56Sopenharmony_ci#endif 9307db96d56Sopenharmony_ci#ifdef ENOTCAPABLE 9317db96d56Sopenharmony_ci // WASI extension 9327db96d56Sopenharmony_ci add_errcode("ENOTCAPABLE", ENOTCAPABLE, "Capabilities insufficient"); 9337db96d56Sopenharmony_ci#endif 9347db96d56Sopenharmony_ci 9357db96d56Sopenharmony_ci Py_DECREF(error_dict); 9367db96d56Sopenharmony_ci return 0; 9377db96d56Sopenharmony_ci} 9387db96d56Sopenharmony_ci 9397db96d56Sopenharmony_cistatic PyModuleDef_Slot errno_slots[] = { 9407db96d56Sopenharmony_ci {Py_mod_exec, errno_exec}, 9417db96d56Sopenharmony_ci {0, NULL} 9427db96d56Sopenharmony_ci}; 9437db96d56Sopenharmony_ci 9447db96d56Sopenharmony_ciPyDoc_STRVAR(errno__doc__, 9457db96d56Sopenharmony_ci"This module makes available standard errno system symbols.\n\ 9467db96d56Sopenharmony_ci\n\ 9477db96d56Sopenharmony_ciThe value of each symbol is the corresponding integer value,\n\ 9487db96d56Sopenharmony_cie.g., on most systems, errno.ENOENT equals the integer 2.\n\ 9497db96d56Sopenharmony_ci\n\ 9507db96d56Sopenharmony_ciThe dictionary errno.errorcode maps numeric codes to symbol names,\n\ 9517db96d56Sopenharmony_cie.g., errno.errorcode[2] could be the string 'ENOENT'.\n\ 9527db96d56Sopenharmony_ci\n\ 9537db96d56Sopenharmony_ciSymbols that are not relevant to the underlying system are not defined.\n\ 9547db96d56Sopenharmony_ci\n\ 9557db96d56Sopenharmony_ciTo map error codes to error messages, use the function os.strerror(),\n\ 9567db96d56Sopenharmony_cie.g. os.strerror(2) could return 'No such file or directory'."); 9577db96d56Sopenharmony_ci 9587db96d56Sopenharmony_cistatic struct PyModuleDef errnomodule = { 9597db96d56Sopenharmony_ci PyModuleDef_HEAD_INIT, 9607db96d56Sopenharmony_ci .m_name = "errno", 9617db96d56Sopenharmony_ci .m_doc = errno__doc__, 9627db96d56Sopenharmony_ci .m_size = 0, 9637db96d56Sopenharmony_ci .m_methods = errno_methods, 9647db96d56Sopenharmony_ci .m_slots = errno_slots, 9657db96d56Sopenharmony_ci}; 9667db96d56Sopenharmony_ci 9677db96d56Sopenharmony_ciPyMODINIT_FUNC 9687db96d56Sopenharmony_ciPyInit_errno(void) 9697db96d56Sopenharmony_ci{ 9707db96d56Sopenharmony_ci return PyModuleDef_Init(&errnomodule); 9717db96d56Sopenharmony_ci} 972