kolibrios/programs/develop/ktcc/trunk/libc.obj/source/string/strerror.c
turbocat cde4fa851d libc.obj:
- Formatted by clang-format (WebKit-style).
- Removed unnecessary errno linux. 
- Added KOS error codes. 
- String functions have been replaced with more optimal ones for x86. 
- Changed wrappers for 70 sysfunction.

git-svn-id: svn://kolibrios.org@9765 a494cfbc-eb01-0410-851d-a64ba20cac60
2022-04-15 09:00:55 +00:00

51 lines
2.3 KiB
C

/* Copyright (C) 2021 Logaev Maxim (turbocat2001), GPLv2 */
#include <string.h>
#include <errno.h>
int __errno;
char* strerror(int err)
{
char *msg;
switch(err){
case 0: msg = "No errors"; break;
case ENOTSUP: msg = "Function is not supported"; break;
case EUNKNFS: msg = "Unknown file system"; break;
case ENOTFOUND: msg = "File not found"; break;
case EEOF: msg = "End of file"; break;
case EFAULT: msg = "Bad address"; break;
case EDQUOT: msg = "Disc quota exceeded"; break;
case EFS: msg = "File system error"; break;
case EACCES: msg = "Permission denied"; break;
case EDEV: msg = "Device error"; break;
case ENOMEMFS: msg = "File system requires more memory"; break;
case ENOMEM: msg = "Not enough memory"; break;
case ENOEXEC: msg = "Exec format error"; break;
case EPROCLIM: msg = "Too many processes"; break;
case EINVAL: msg = "Invalid argument"; break;
case EDOM: msg = "Numerical argument out of domain"; break;
case ERANGE: msg = "Result too large"; break;
case EILSEQ: msg = "Illegal byte sequence"; break;
case ENOBUFS: msg = "Broken buffer"; break;
case EINPROGRESS: msg = "Operation now in progress"; break;
case EOPNOTSUPP: msg = "Operation not supported on transport endpoint"; break;
case EWOULDBLOCK: msg = "Operation would block"; break;
case ENOTCONN: msg = "Transport endpoint is not connected"; break;
case EALREADY: msg = "Operation already in progress"; break;
case EMSGSIZE: msg = "Message too long"; break;
case EADDRINUSE: msg = "Address already in use"; break;
case ECONNREFUSED: msg = "Connection refused"; break;
case ECONNRESET: msg = "Connection reset by peer"; break;
case EISCONN: msg = "Transport endpoint is already connected"; break;
case ETIMEDOUT: msg = "Connection timed out"; break;
case ECONNABORTED: msg = "Software caused connection abort"; break;
default: msg = "Unknown error"; break;
}
return msg;
}