Subversion Repositories Kolibri OS

Rev

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
}