00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "errdefs.h"
00023
00024 const char *nerror(int code) {
00025 switch (code) {
00026 case EPERM:
00027 case EACCES: {
00028 return "Permission denied";
00029 }
00030 case ESRCH: {
00031 return "No such proccess";
00032 }
00033 case EINTR: {
00034 return "Interrupted function";
00035 }
00036 case EIO: {
00037 return "I/O Error";
00038 }
00039 case ENXIO: {
00040 return "No such device or address";
00041 }
00042 case E2BIG: {
00043 return "Argument list too long";
00044 }
00045 case ENOEXEC: {
00046 return "Exec format error";
00047 }
00048 case EBADF: {
00049 return "Bad file number";
00050 }
00051 case ECHILD: {
00052 return "No spawned proccess";
00053 }
00054
00055 case EAGAIN: {
00056 return "Resource temporarly unavailable";
00057 }
00058 case ENOMEM: {
00059 return "The system is out of memory";
00060 }
00061 case EFAULT: {
00062 return "The given buffer points to unaccessible memory";
00063 }
00064 case EBUSY: {
00065 return "Too busy to complete the request";
00066 }
00067 case EEXIST: {
00068 return "File exists";
00069 }
00070 case EXDEV: {
00071 return "Cross-device link";
00072 }
00073 case ENODEV: {
00074 return "No such device";
00075 }
00076 case ENOTDIR: {
00077 return "A directory component in one of the paths isn't a directory";
00078 }
00079 case EISDIR: {
00080 return "The given path is a directory";
00081 }
00082 case EINVAL: {
00083 return "Invalid argument";
00084 }
00085 case ENFILE: {
00086 return "Too many open files";
00087 }
00088 case EMFILE: {
00089 return "Too many open files";
00090 }
00091 case ENOTTY: {
00092 return "Inappropriate I/O control operation";
00093 }
00094 case EFBIG: {
00095 return "File too big";
00096 }
00097 case ENOSPC: {
00098 return "No space left on the device";
00099 }
00100 case ESPIPE: {
00101 return "Invalid seek";
00102 }
00103 case EROFS: {
00104 return "Read-only filesystem";
00105 }
00106 case EMLINK: {
00107 return "Too many links";
00108 }
00109 case EPIPE: {
00110 return "Broken pipe";
00111 }
00112 case EDOM: {
00113 return "Math argument";
00114 }
00115 case ERANGE: {
00116 return "Result too large";
00117 }
00118 #if !defined(__APPLE__) && !defined(__FreeBSD__)
00119 case EDEADLOCK: {
00120 return "Resource deadlock would occur";
00121 }
00122 #endif // !defined(__APPLE__) && !defined(__FreeBSD__)
00123 case ENAMETOOLONG: {
00124 return "Filename too long";
00125 }
00126 case ENOLCK: {
00127 return "No locks available";
00128 }
00129 case ENOSYS: {
00130 return "Function not supported";
00131 }
00132 case ENOTEMPTY: {
00133 return "Directory not empty";
00134 }
00135 case EILSEQ: {
00136 return "Illegal byte sequence";
00137 }
00138 #if defined(__WIN32) && defined (_MSC_VER)
00139 case STRUNCATE: {
00140 return "String was truncated";
00141 }
00142 #endif // defined(__WIN32) && defined (_MSC_VER)
00143
00144 #ifndef __WIN32
00145 case ELOOP: {
00146 return "Too many symbolics links";
00147 }
00148 case EADDRINUSE: {
00149 return "Address already in use";
00150 }
00151 case EALREADY: {
00152 return "Connection already in progress";
00153 }
00154 #if !defined(__APPLE__) && !defined(__FreeBSD__)
00155 case EBADE: {
00156 return "Invalid exchange";
00157 }
00158 case EBADFD: {
00159 return "File descriptor in bad state";
00160 }
00161 case EBADR: {
00162 return "Invalid request descriptor";
00163 }
00164
00165 case EBADRQC: {
00166 return "Invalid request code";
00167 }
00168 case EBADSLT: {
00169 return "Invalid slot";
00170 }
00171
00172 case ECHRNG: {
00173 return "Channel number out of range";
00174 }
00175 case ECOMM: {
00176 return "Communication error on send";
00177 }
00178 #if !defined(__CYGWIN__)
00179 case EISNAM: {
00180 return "Is a named type file";
00181 }
00182 case EKEYEXPIRED: {
00183 return "Key has expired";
00184 }
00185 case EKEYREJECTED: {
00186 return "Key was rejected by service";
00187 }
00188 case EKEYREVOKED: {
00189 return "Key has been revoked";
00190 }
00191 #endif // !defined(__CYGWIN__)
00192 case EL2HLT: {
00193 return "Level 2 halted";
00194 }
00195 case EL2NSYNC: {
00196 return "Level 2 not synchronized";
00197 }
00198 case EL3HLT: {
00199 return "Level 3 halted";
00200 }
00201 case EL3RST: {
00202 return "Level 3 halted";
00203 }
00204 case ELIBACC: {
00205 return "Cannot access a needed shared library";
00206 }
00207 case ELIBBAD: {
00208 return "Accessing a corrupted shared library";
00209 }
00210 case ELIBMAX: {
00211 return "Attempting to link in too many shared libraries";
00212 }
00213 case ELIBSCN: {
00214 return "lib section in a.out corrupted";
00215 }
00216 case ELIBEXEC: {
00217 return "Cannot exec a shared library directly";
00218 }
00219 #if !defined(__CYGWIN__)
00220 case EMEDIUMTYPE: {
00221 return "Wrong medium type";
00222 }
00223 case ENOKEY: {
00224 return "Required key not available";
00225 }
00226 #endif // !defined(__CYGWIN__)
00227 case ENOTUNIQ: {
00228 return "Name not unique on network";
00229 }
00230 case EREMCHG: {
00231 return "Remote address changed";
00232 }
00233 #if !defined(__CYGWIN__)
00234 case EREMOTEIO: {
00235 return "Remote I/O error";
00236 }
00237 case ERESTART: {
00238 return "Interrupted system call should be restarted";
00239 }
00240 case ESTRPIPE: {
00241 return "Streams pipe error";
00242 }
00243 case EUCLEAN: {
00244 return "Structure needs cleaning";
00245 }
00246 #endif // !defined(__CYGWIN__)
00247 case EUNATCH: {
00248 return "Protocol driver not attached";
00249 }
00250 case EXFULL: {
00251 return "Exchange full";
00252 }
00253 #endif // !defined(__APPLE__) && !defined(__FreeBSD__)
00254 case EBADMSG: {
00255 return "Bad message";
00256 }
00257 #if !defined(__CYGWIN__)
00258 case ECANCELED: {
00259 return "Operation canceled";
00260 }
00261 #endif // !defined(__CYGWIN__)
00262 case ECONNABORTED: {
00263 return "connection aborted";
00264 }
00265 case ECONNREFUSED: {
00266 return "Connection refused";
00267 }
00268 case ECONNRESET: {
00269 return "Connection reset";
00270 }
00271 case EDESTADDRREQ: {
00272 return "Destination address required";
00273 }
00274 case EDQUOT: {
00275 return "Disk quota exceeded";
00276 }
00277 case EHOSTDOWN: {
00278 return "Host is down:";
00279 }
00280 case EHOSTUNREACH: {
00281 return "Host is unreachable";
00282 }
00283 case EIDRM: {
00284 return "Identifier removed";
00285 }
00286 case EINPROGRESS: {
00287 return "Operation in progress";
00288 }
00289 case EISCONN: {
00290 return "Socket is connected";
00291 }
00292 case EMSGSIZE: {
00293 return "Message too long";
00294 }
00295 case EMULTIHOP: {
00296 return "Multihop attempted";
00297 }
00298 case ENETDOWN: {
00299 return "Network is down";
00300 }
00301 case ENETRESET: {
00302 return "Connection aborted by network";
00303 }
00304 case ENETUNREACH: {
00305 return "Network unreachable";
00306 }
00307 case ENOBUFS: {
00308 return "No buffer space available";
00309 }
00310 case ENODATA: {
00311 return "No message is available on the STREAM head read queue";
00312 }
00313
00314
00315
00316 case ENOLINK: {
00317 return "Link has been severed";
00318 }
00319 case ENOPROTOOPT: {
00320 return "Protocol not available";
00321 }
00322 case ENOSR: {
00323 return "No STREAM resources";
00324 }
00325 case ENOSTR: {
00326 return "Not a STREAM";
00327 }
00328 case ENOTBLK: {
00329 return "Block device required";
00330 }
00331 case ENOTCONN: {
00332 return "The socket is not connected";
00333 }
00334 case ENOTSOCK: {
00335 return "Not a socket";
00336 }
00337
00338
00339
00340 case ENOTSUP: {
00341 return "Operation not supported";
00342 }
00343 case EOVERFLOW: {
00344 return "Value too large to be stored in data type";
00345 }
00346 case EPFNOSUPPORT: {
00347 return "Protocol family not supported";
00348 }
00349 case EPROTO: {
00350 return "Protocol error";
00351 }
00352 case EPROTONOSUPPORT: {
00353 return "Protocol not supported";
00354 }
00355 case EPROTOTYPE: {
00356 return "Protocol wrong type for socket";
00357 }
00358 case EREMOTE: {
00359 return "Object is remote";
00360 }
00361 case ESHUTDOWN: {
00362 return "Cannot send after transport endpoint shutdown";
00363 }
00364 case ESOCKTNOSUPPORT: {
00365 return "Socket type not supported";
00366 }
00367 case ESTALE: {
00368
00369
00370 return "Stale file handle";
00371 }
00372 case ETIME: {
00373 return "Timer expired";
00374 }
00375 case ETIMEDOUT: {
00376 return "Connection timed out";
00377 }
00378 case ETXTBSY: {
00379 return "Text file busy";
00380 }
00381
00382 case EUSERS: {
00383 return "Too many users";
00384 }
00385 case ENOENT: {
00386 return "File does not exist";
00387 }
00388
00389 #endif // __WIN32
00390
00391 default: {
00392 return "Unhandled error";
00393 }
00394 }
00395 }