Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
8687 | turbocat | 1 | /* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */ |
2 | |||
3 | #include |
||
4 | #include |
||
5 | |||
6 | int errno; |
||
7 | |||
8 | char* strerror(int err) |
||
9 | { |
||
10 | char *msg; |
||
11 | switch(err){ |
||
12 | case 0: msg = "No errors"; break; |
||
13 | case EPERM: msg = "Operation not permitted"; break; |
||
14 | case ENOENT: msg = "No such file or directory"; break; |
||
15 | case ESRCH: msg = "No such process"; break; |
||
16 | case EINTR: msg = "Interrupted system call"; break; |
||
17 | case EIO: msg = "Input/output error"; break; |
||
18 | case ENXIO: msg = "Device not configured"; break; |
||
19 | case E2BIG: msg = "Argument list too long"; break; |
||
20 | case ENOEXEC: msg = "Exec format error"; break; |
||
21 | case EBADF: msg = "Bad file descriptor"; break; |
||
22 | case ECHILD: msg = "No child processes"; break; |
||
23 | case EDEADLK: msg = "Resource deadlock avoided"; break; |
||
24 | case ENOMEM: msg = "Cannot allocate memory"; break; |
||
25 | case EACCES: msg = "Permission denied"; break; |
||
26 | case EFAULT: msg = "Bad address"; break; |
||
27 | case ENOTBLK: msg = "Block device required"; break; |
||
28 | case EBUSY: msg = "Device / Resource busy"; break; |
||
29 | case EEXIST: msg = "File exists"; break; |
||
30 | case EXDEV: msg = "Cross-device link"; break; |
||
31 | case ENODEV: msg = "Operation not supported by device"; break; |
||
32 | case ENOTDIR: msg = "Not a directory"; break; |
||
33 | case EISDIR: msg = "Is a directory"; break; |
||
34 | case EINVAL: msg = "Invalid argument"; break; |
||
35 | case ENFILE: msg = "Too many open files in system"; break; |
||
36 | case EMFILE: msg = "Too many open files"; break; |
||
37 | case ENOTTY: msg = "Inappropriate ioctl for device"; break; |
||
38 | case ETXTBSY: msg = "Text file busy"; break; |
||
39 | case EFBIG: msg = "File too large"; break; |
||
40 | case ENOSPC: msg = "No space left on device"; break; |
||
41 | case ESPIPE: msg = "Illegal seek"; break; |
||
42 | case EROFS: msg = "Read-only file system"; break; |
||
43 | case EMLINK: msg = "Too many links"; break; |
||
44 | case EPIPE: msg = "Broken pipe"; break; |
||
45 | |||
46 | // math software |
||
47 | case EDOM: msg = "Numerical argument out of domain"; break; |
||
48 | case ERANGE: msg = "Result too large"; break; |
||
49 | |||
50 | // should be rearranged |
||
51 | case EHOSTDOWN: msg = "Host is down"; break; |
||
52 | case EHOSTUNREACH: msg = "No route to host"; break; |
||
53 | case ENOTEMPTY: msg = "Directory not empty"; break; |
||
54 | |||
55 | // quotas & mush |
||
56 | case EPROCLIM: msg = "Too many processes"; break; |
||
57 | case EUSERS: msg = "Too many users"; break; |
||
58 | case EDQUOT: msg = "Disc quota exceeded"; break; |
||
59 | |||
60 | // Intelligent device errors |
||
61 | case EPWROFF: msg = "Device power is off"; break; |
||
62 | case EDEVERR: msg = "Device error, e.g. paper out"; break; |
||
63 | case EOVERFLOW: msg = "Value too large to be stored in data type"; break; |
||
64 | |||
65 | // Socket errors |
||
66 | case ENOBUFS: msg = "Broken buffer"; break; |
||
67 | case EINPROGRESS: msg = "Operation now in progress"; break; |
||
68 | case EOPNOTSUPP: msg = "Operation not supported on transport endpoint"; break; |
||
69 | case EWOULDBLOCK: msg = "Operation would block"; break; |
||
70 | case ENOTCONN: msg = "Transport endpoint is not connected"; break; |
||
71 | case EALREADY: msg = "Operation already in progress"; break; |
||
72 | case EMSGSIZE: msg = "Message too long"; break; |
||
73 | case EADDRINUSE: msg = "Address already in use"; break; |
||
74 | case ECONNREFUSED: msg = "Connection refused"; break; |
||
75 | case ECONNRESET: msg = "Connection reset by peer"; break; |
||
76 | case EISCONN: msg = "Transport endpoint is already connected"; break; |
||
77 | case ETIMEDOUT: msg = "Connection timed out"; break; |
||
78 | case ECONNABORTED: msg = "Software caused connection abort"; break; |
||
79 | default: msg = "Unknown error"; break; |
||
80 | } |
||
81 | return msg; |
||
82 | } |