Subversion Repositories Kolibri OS

Rev

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