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
This commit is contained in:
@@ -3,66 +3,34 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
int _errno;
|
||||
int __errno;
|
||||
|
||||
char* strerror(int err)
|
||||
{
|
||||
char *msg;
|
||||
switch(err){
|
||||
case 0: msg = "No errors"; break;
|
||||
case EPERM: msg = "Operation not permitted"; break;
|
||||
case ENOENT: msg = "No such file or directory"; break;
|
||||
case ESRCH: msg = "No such process"; break;
|
||||
case EINTR: msg = "Interrupted system call"; break;
|
||||
case EIO: msg = "Input/output error"; break;
|
||||
case ENXIO: msg = "Device not configured"; break;
|
||||
case E2BIG: msg = "Argument list too long"; break;
|
||||
case ENOEXEC: msg = "Exec format error"; break;
|
||||
case EBADF: msg = "Bad file descriptor"; break;
|
||||
case ECHILD: msg = "No child processes"; break;
|
||||
case EDEADLK: msg = "Resource deadlock avoided"; break;
|
||||
case ENOMEM: msg = "Cannot allocate memory"; break;
|
||||
case EACCES: msg = "Permission denied"; break;
|
||||
case EFAULT: msg = "Bad address"; break;
|
||||
case ENOTBLK: msg = "Block device required"; break;
|
||||
case EBUSY: msg = "Device / Resource busy"; break;
|
||||
case EEXIST: msg = "File exists"; break;
|
||||
case EXDEV: msg = "Cross-device link"; break;
|
||||
case ENODEV: msg = "Operation not supported by device"; break;
|
||||
case ENOTDIR: msg = "Not a directory"; break;
|
||||
case EISDIR: msg = "Is a directory"; break;
|
||||
case EINVAL: msg = "Invalid argument"; break;
|
||||
case ENFILE: msg = "Too many open files in system"; break;
|
||||
case EMFILE: msg = "Too many open files"; break;
|
||||
case ENOTTY: msg = "Inappropriate ioctl for device"; break;
|
||||
case ETXTBSY: msg = "Text file busy"; break;
|
||||
case EFBIG: msg = "File too large"; break;
|
||||
case ENOSPC: msg = "No space left on device"; break;
|
||||
case ESPIPE: msg = "Illegal seek"; break;
|
||||
case EROFS: msg = "Read-only file system"; break;
|
||||
case EMLINK: msg = "Too many links"; break;
|
||||
case EPIPE: msg = "Broken pipe"; break;
|
||||
|
||||
// math software
|
||||
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;
|
||||
|
||||
// should be rearranged
|
||||
case EHOSTDOWN: msg = "Host is down"; break;
|
||||
case EHOSTUNREACH: msg = "No route to host"; break;
|
||||
case ENOTEMPTY: msg = "Directory not empty"; break;
|
||||
|
||||
// quotas & mush
|
||||
case EPROCLIM: msg = "Too many processes"; break;
|
||||
case EUSERS: msg = "Too many users"; break;
|
||||
case EDQUOT: msg = "Disc quota exceeded"; break;
|
||||
|
||||
// Intelligent device errors
|
||||
case EPWROFF: msg = "Device power is off"; break;
|
||||
case EDEVERR: msg = "Device error, e.g. paper out"; break;
|
||||
case EOVERFLOW: msg = "Value too large to be stored in data type"; break;
|
||||
|
||||
// Socket errors
|
||||
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;
|
||||
|
Reference in New Issue
Block a user