X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Ferrno.c;h=295183c4310c578594bc3809067432e7618d3f7f;hb=230612b2efeeb769f1d96193ec01b10bd36d9873;hp=af369b12d87055243a02e9f4d3d6d139db1557b9;hpb=b99e0f9bd0dfcf6f1b3d33534ea78f8fb33be92a;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/errno.c b/Usermode/Libraries/libc.so_src/errno.c index af369b12..295183c4 100644 --- a/Usermode/Libraries/libc.so_src/errno.c +++ b/Usermode/Libraries/libc.so_src/errno.c @@ -6,6 +6,7 @@ * - errno and strerror */ #include "lib.h" +#include #include #include #include @@ -20,13 +21,16 @@ EXPORT char *strerror(int errnum) switch((enum libc_eErrorNumbers)errnum) { case EOK: return "Success"; + case ERANGE: return "Value out of range"; + case EDOM: return "Value out of domain"; + case EILSEQ: return "Illegal character sequence"; + case ENOSYS: return "Invalid instruction/syscall"; case EINVAL: return "Bad argument(s)"; case EBADF: return "Invalid file"; case ENOMEM: return "No free memory"; case EACCES: return "Not permitted"; case EBUSY: return "Resource is busy"; - case ERANGE: return "Value out of range"; case ENOTFOUND: return "Item not found"; case EROFS: return "Read only filesystem"; case ENOTIMPL: return "Not implimented"; @@ -42,8 +46,18 @@ EXPORT char *strerror(int errnum) case EADDRNOTAVAIL: return "Address not avaliable"; case EINPROGRESS: return "Operation in process"; case EPERM: return "Operation not permitted"; + case ENOTTY: return "Not a TTY"; case EAGAIN: return "Try again"; + case EFBIG: return "File too big"; + case E2BIG: return "Value too big"; case EALREADY: return "Operation was no-op"; + case ENOSPC: return "No space left on the device"; + + case EAFNOSUPPORT: return "Address family not supported"; + case EADDRINUSE: return "Address already in use"; + case ETIMEDOUT: return "Operation timed out"; + case EOPNOTSUPP: return "Operation not supported on socket"; + case EINTERNAL: return "Internal error"; } _SysDebug("strerror: errnum=%i unk", errnum); @@ -61,3 +75,16 @@ EXPORT int strerror_r(int errnum, char *buf, size_t bufsiz) return 0; } +// stdio.h +EXPORT void perror(const char *s) +{ + int err = errno; + if( s && s[0] ) { + fprintf(stderr, "%s: (%i) %s\n", s, err, strerror(err)); + } + else { + fprintf(stderr, "(%i) %s\n", err, strerror(err)); + } + _SysDebug("perror('%s'): %s (%i)", s, strerror(err), err); +} +