Rev 8793 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8793 | Rev 9765 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | /* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */ |
1 | /* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */ |
Line 2... | Line 2... | ||
2 | 2 | ||
3 | #include |
3 | #include |
Line 4... | Line 4... | ||
4 | #include |
4 | #include |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | int _errno; |
6 | int __errno; |
7 | 7 | ||
8 | char* strerror(int err) |
8 | char* strerror(int err) |
9 | { |
9 | { |
- | 10 | char *msg; |
|
10 | char *msg; |
11 | switch(err){ |
11 | switch(err){ |
- | |
12 | case 0: msg = "No errors"; break; |
- | |
13 | case EPERM: msg = "Operation not permitted"; break; |
12 | case 0: msg = "No errors"; break; |
14 | case ENOENT: msg = "No such file or directory"; break; |
- | |
15 | case ESRCH: msg = "No such process"; break; |
13 | |
16 | case EINTR: msg = "Interrupted system call"; break; |
- | |
17 | case EIO: msg = "Input/output error"; break; |
- | |
18 | case ENXIO: msg = "Device not configured"; break; |
14 | case ENOTSUP: msg = "Function is not supported"; 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; |
15 | case EUNKNFS: msg = "Unknown file system"; break; |
24 | case ENOMEM: msg = "Cannot allocate memory"; break; |
16 | case ENOTFOUND: msg = "File not found"; break; |
25 | case EACCES: msg = "Permission denied"; break; |
17 | case EEOF: msg = "End of file"; break; |
26 | case EFAULT: msg = "Bad address"; break; |
18 | case EFAULT: msg = "Bad address"; break; |
27 | case ENOTBLK: msg = "Block device required"; break; |
19 | case EDQUOT: msg = "Disc quota exceeded"; break; |
28 | case EBUSY: msg = "Device / Resource busy"; break; |
20 | case EFS: msg = "File system error"; break; |
- | 21 | case EACCES: msg = "Permission denied"; break; |
|
29 | case EEXIST: msg = "File exists"; break; |
22 | case EDEV: msg = "Device error"; break; |
30 | case EXDEV: msg = "Cross-device link"; break; |
23 | case ENOMEMFS: msg = "File system requires more memory"; break; |
- | 24 | ||
31 | case ENODEV: msg = "Operation not supported by device"; break; |
25 | case ENOMEM: msg = "Not enough memory"; 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; |
- | |
Line 42... | Line -... | ||
42 | case EROFS: msg = "Read-only file system"; break; |
- | |
43 | case EMLINK: msg = "Too many links"; break; |
26 | case ENOEXEC: msg = "Exec format error"; break; |
44 | case EPIPE: msg = "Broken pipe"; break; |
27 | case EPROCLIM: msg = "Too many processes"; break; |
- | 28 | case EINVAL: msg = "Invalid argument"; break; |
|
Line 45... | Line -... | ||
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; |
29 | |
62 | case EDEVERR: msg = "Device error, e.g. paper out"; break; |
30 | case EDOM: msg = "Numerical argument out of domain"; break; |
63 | case EOVERFLOW: msg = "Value too large to be stored in data type"; break; |
31 | case ERANGE: msg = "Result too large"; break; |
64 | 32 | case EILSEQ: msg = "Illegal byte sequence"; break; |
|
65 | // Socket errors |
33 |