| /* A part of the Native C Library for Windows NT |
| Copyright 2026 Rivoreo |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 2 of the License, or (at |
| your option) any later version. |
| |
| This program is distributed in the hope that it will be useful, but |
| WITHOUT ANY WARRANTY; without even the implied warranty of |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| General Public License for more details. |
| */ |
| |
| #ifndef _ERRNO_H |
| #define _ERRNO_H |
| |
| #include <_mingw.h> |
| |
| // From MingGW errno.h |
| #define EPERM 1 /* Operation not permitted */ |
| #define ENOFILE 2 /* No such file or directory */ |
| #define ENOENT 2 |
| #define ESRCH 3 /* No such process */ |
| #define EINTR 4 /* Interrupted function call */ |
| #define EIO 5 /* Input/output error */ |
| #define ENXIO 6 /* No such device or address */ |
| #define E2BIG 7 /* Arg list too long */ |
| #define ENOEXEC 8 /* Exec format error */ |
| #define EBADF 9 /* Bad file descriptor */ |
| #define ECHILD 10 /* No child processes */ |
| #define EAGAIN 11 /* Resource temporarily unavailable */ |
| #define ENOMEM 12 /* Not enough space */ |
| #define EACCES 13 /* Permission denied */ |
| #define EFAULT 14 /* Bad address */ |
| /* 15 - Unknown Error */ |
| #define EBUSY 16 /* Device or resource busy */ |
| #define EEXIST 17 /* File exists */ |
| #define EXDEV 18 /* Improper link (cross-device link?) */ |
| #define ENODEV 19 /* No such device */ |
| #define ENOTDIR 20 /* Not a directory */ |
| #define EISDIR 21 /* Is a directory */ |
| #define EINVAL 22 /* Invalid argument */ |
| #define ENFILE 23 /* Too many open files in system */ |
| #define EMFILE 24 /* Too many open files */ |
| #define ENOTTY 25 /* Inappropriate I/O control operation */ |
| #define ETXTBSY 26 /* Text file busy */ |
| #define EFBIG 27 /* File too large */ |
| #define ENOSPC 28 /* No space left on device */ |
| #define ESPIPE 29 /* Invalid seek (seek on a pipe?) */ |
| #define EROFS 30 /* Read-only file system */ |
| #define EMLINK 31 /* Too many links */ |
| #define EPIPE 32 /* Broken pipe */ |
| #define EDOM 33 /* Math argument out of domain of function */ |
| #define ERANGE 34 /* Result too large (possibly too small) */ |
| |
| // From Linux errno.h |
| #define EDEADLK 35 /* Resource deadlock would occur */ |
| |
| // From kFreeBSD errno.h |
| #define EWOULDBLOCK EAGAIN /* Operation would block */ |
| #define EINPROGRESS 36 /* Operation now in progress */ |
| #define EALREADY 37 /* Operation already in progress */ |
| #define ENOTSOCK 38 /* Socket operation on non-socket */ |
| #define EDESTADDRREQ 39 /* Destination address required */ |
| #define EMSGSIZE 40 /* Message too long */ |
| #define EPROTOTYPE 41 /* Protocol wrong type for socket */ |
| #define ENOPROTOOPT 42 /* Protocol not available */ |
| #define EPROTONOSUPPORT 43 /* Protocol not supported */ |
| #define ESOCKTNOSUPPORT 44 /* Socket type not supported */ |
| #define EOPNOTSUPP 45 /* Operation not supported */ |
| #define ENOTSUP EOPNOTSUPP |
| #define EPFNOSUPPORT 46 /* Protocol family not supported */ |
| #define EAFNOSUPPORT 47 /* Address family not supported by protocol family */ |
| #define EADDRINUSE 48 /* Address already in use */ |
| #define EADDRNOTAVAIL 49 /* Can't assign requested address */ |
| #define ENETDOWN 50 /* Network is down */ |
| #define ENETUNREACH 51 /* Network is unreachable */ |
| #define ENETRESET 52 /* Network dropped connection on reset */ |
| #define ECONNABORTED 53 /* Software caused connection abort */ |
| #define ECONNRESET 54 /* Connection reset by peer */ |
| #define ENOBUFS 55 /* No buffer space available */ |
| #define EISCONN 56 /* Socket is already connected */ |
| #define ENOTCONN 57 /* Socket is not connected */ |
| #define ESHUTDOWN 58 /* Can't send after socket shutdown */ |
| #define ETOOMANYREFS 59 /* Too many references: can't splice */ |
| #define ETIMEDOUT 60 /* Operation timed out */ |
| #define ECONNREFUSED 61 /* Connection refused */ |
| #define ELOOP 62 /* Too many levels of symbolic links */ |
| #define ENAMETOOLONG 63 /* File name too long */ |
| #define EHOSTDOWN 64 /* Host is down */ |
| #define EHOSTUNREACH 65 /* No route to host */ |
| #define ENOTEMPTY 66 /* Directory not empty */ |
| #define EPROCLIM 67 /* Too many processes */ |
| #define EUSERS 68 /* Too many users */ |
| #define EDQUOT 69 /* Disc quota exceeded */ |
| #define ESTALE 70 /* Stale NFS file handle */ |
| #define EREMOTE 71 /* Too many levels of remote in path */ |
| #define EBADRPC 72 /* RPC struct is bad */ |
| #define ERPCMISMATCH 73 /* RPC version wrong */ |
| #define EPROGUNAVAIL 74 /* RPC prog. not avail */ |
| #define EPROGMISMATCH 75 /* Program version wrong */ |
| #define EPROCUNAVAIL 76 /* Bad procedure for program */ |
| #define ENOLCK 77 /* No locks available */ |
| #define ENOSYS 78 /* Function not implemented */ |
| #define EFTYPE 79 /* Inappropriate file type or format */ |
| #define EAUTH 80 /* Authentication error */ |
| #define ENEEDAUTH 81 /* Need authenticator */ |
| #define EIDRM 82 /* Identifier removed */ |
| #define ENOMSG 83 /* No message of desired type */ |
| #define EOVERFLOW 84 /* Value too large to be stored in data type */ |
| #define ECANCELED 85 /* Operation canceled */ |
| #define EILSEQ 86 /* Illegal byte sequence */ |
| #define ENOATTR 87 /* Attribute not found */ |
| #define EBADMSG 89 /* Bad message */ |
| #define EMULTIHOP 90 /* Multihop attempted */ |
| #define ENOLINK 91 /* Link has been severed */ |
| #define EPROTO 92 /* Protocol error */ |
| #define ENOTRECOVERABLE 95 /* State not recoverable */ |
| #define EOWNERDEAD 96 /* Previous owner died */ |
| |
| // Extensions |
| #define EBADFD EBADF |
| #define ENODATA 113 /* No data available */ |
| #define ETIME 114 /* Timer expired */ |
| #define ENOTUNIQ 115 /* Name not unique on network */ |
| #define ELIBBAD 116 /* Accessing a corrupted shared library */ |
| #define EUCLEAN 117 /* Structure needs cleaning */ |
| #define EREMOTEIO 121 /* Remote I/O error */ |
| #define ENOMEDIUM 123 /* No medium found */ |
| #define EMEDIUMTYPE 124 /* Wrong medium type */ |
| |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| _CRTIMP int *__cdecl __MINGW_NOTHROW _errno(void); |
| #define errno (*_errno()) |
| |
| int __ntstatus_to_errno(long int); |
| int __set_errno_from_ntstatus(long int); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif |