toops - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 6292a25b694b0a4183942f92404208bfc09b51f8
 (DIR) parent 5a4b4e924d857cd53b4e119dfa7075c44ed28813
 (HTM) Author: rsc <devnull@localhost>
       Date:   Sun, 23 Jul 2006 05:03:46 +0000
       
       oops
       
       Diffstat:
         M src/cmd/9pfuse/errstr.c             |     157 ++++++-------------------------
       
       1 file changed, 30 insertions(+), 127 deletions(-)
       ---
 (DIR) diff --git a/src/cmd/9pfuse/errstr.c b/src/cmd/9pfuse/errstr.c
       t@@ -14,132 +14,35 @@ struct Error
        };
        
        static Error errortab[] = {
       -        {"Operation not permitted", EPERM},
       -        {"wstat prohibited", EPERM},
       -        {"No such file or directory", ENOENT},
       -        {"file not found", ENOENT},
       -        {"Interrupted system call", EINTR},
       -        {"Input/output error", EIO},
       -        {"No such device or address", ENXIO},
       -        {"Argument list too long", E2BIG},
       -        {"Bad file descriptor", EBADF},
       -        {"Resource temporarily unavailable", EAGAIN},
       -        {"Cannot allocate memory", ENOMEM},
       -        {"Permission denied", EACCES},
       -        {"Bad address", EFAULT},
       -        {"Block device required", ENOTBLK},
       -        {"Device or resource busy", EBUSY},
       -        {"File exists", EEXIST},
       -        {"Invalid cross-device link", EXDEV},
       -        {"No such device", ENODEV},
       -        {"Not a directory", ENOTDIR},
       -        {"Is a directory", EISDIR},
       -        {"Invalid argument", EINVAL},
       -        {"Too many open files in system", ENFILE},
       -        {"Too many open files", EMFILE},
       -        {"Text file busy", ETXTBSY},
       -        {"File too large", EFBIG},
       -        {"No space left on device", ENOSPC},
       -        {"Illegal seek", ESPIPE},
       -        {"Read-only file system", EROFS},
       -        {"Too many links", EMLINK},
       -        {"Broken pipe", EPIPE},
       -        {"Numerical argument out of domain", EDOM},
       -        {"Numerical result out of range", ERANGE},
       -        {"Resource deadlock avoided", EDEADLK},
       -        {"File name too long", ENAMETOOLONG},
       -        {"No locks available", ENOLCK},
       -        {"Function not implemented", ENOSYS},
       -        {"Directory not empty", ENOTEMPTY},
       -        {"Too many levels of symbolic links", ELOOP},
       -        {"No message of desired type", ENOMSG},
       -        {"Identifier removed", EIDRM},
       -        {"No data available", ENODATA},
       -        {"Machine is not on the network", ENONET},
       -        {"Package not installed", ENOPKG},
       -        {"Object is remote", EREMOTE},
       -        {"Link has been severed", ENOLINK},
       -        {"Communication error on send", ECOMM},
       -        {"Protocol error", EPROTO},
       -        {"Bad message", EBADMSG},
       -        {"File descriptor in bad state", EBADFD},
       -        {"Streams pipe error", ESTRPIPE},
       -        {"Too many users", EUSERS},
       -        {"Socket operation on non-socket", ENOTSOCK},
       -        {"Message too long", EMSGSIZE},
       -        {"Protocol not available", ENOPROTOOPT},
       -        {"Protocol not supported", EPROTONOSUPPORT},
       -        {"Socket type not supported", ESOCKTNOSUPPORT},
       -        {"Operation not supported", EOPNOTSUPP},
       -        {"Protocol family not supported", EPFNOSUPPORT},
       -        {"Network is down", ENETDOWN},
       -        {"Network is unreachable", ENETUNREACH},
       -        {"Network dropped connection on reset", ENETRESET},
       -        {"Software caused connection abort", ECONNABORTED},
       -        {"Connection reset by peer", ECONNRESET},
       -        {"No buffer space available", ENOBUFS},
       -        {"Transport endpoint is already connected", EISCONN},
       -        {"Transport endpoint is not connected", ENOTCONN},
       -        {"Cannot send after transport endpoint shutdown", ESHUTDOWN},
       -        {"Connection timed out", ETIMEDOUT},
       -        {"Connection refused", ECONNREFUSED},
       -        {"Host is down", EHOSTDOWN},
       -        {"No route to host", EHOSTUNREACH},
       -        {"Operation already in progress", EALREADY},
       -        {"Operation now in progress", EINPROGRESS},
       -        {"Is a named type file", EISNAM},
       -        {"Remote I/O error", EREMOTEIO},
       -        {"Disk quota exceeded", EDQUOT},
       -/* errors from fossil, vacfs, and u9fs */
       -        {"fid unknown or out of range", EBADF},
       -        {"permission denied", EACCES},
       -        {"file does not exist", ENOENT},
       -        {"authentication failed", ECONNREFUSED},
       -        {"bad offset in directory read", ESPIPE},
       -        {"bad use of fid", EBADF},
       -        {"wstat can't convert between files and directories", EPERM},
       -        {"directory is not empty", ENOTEMPTY},
       -        {"file exists", EEXIST},
       -        {"file already exists", EEXIST},
       -        {"file or directory already exists", EEXIST},
       -        {"fid already in use", EBADF},
       -        {"file in use", ETXTBSY},
       -        {"i/o error", EIO},
       -        {"file already open for I/O", ETXTBSY},
       -        {"illegal mode", EINVAL},
       -        {"illegal name", ENAMETOOLONG},
       -        {"not a directory", ENOTDIR},
       -        {"not a member of proposed group", EPERM},
       -        {"not owner", EACCES},
       -        {"only owner can change group in wstat", EACCES},
       -        {"read only file system", EROFS},
       -        {"no access to special file", EPERM},
       -        {"i/o count too large", EIO},
       -        {"unknown group", EINVAL},
       -        {"unknown user", EINVAL},
       -        {"bogus wstat buffer", EPROTO},
       -        {"exclusive use file already open", EAGAIN},
       -        {"corrupted directory entry", EIO},
       -        {"corrupted file entry", EIO},
       -        {"corrupted block label", EIO},
       -        {"corrupted meta data", EIO},
       -        {"illegal offset", EINVAL},
       -        {"illegal path element", ENOENT},
       -        {"root of file system is corrupted", EIO},
       -        {"corrupted super block", EIO},
       -        {"protocol botch", EPROTO},
       -        {"file system is full", ENOSPC},
       -        {"file is in use", EAGAIN},
       -        {"directory entry is not allocated", ENOENT},
       -        {"file is read only", EROFS},
       -        {"file has been removed", EIDRM},
       -        {"only support truncation to zero length", EPERM},
       -        {"cannot remove root", EPERM},
       -        {"file too big", EFBIG},
       -        {"venti i/o error", EIO},
       -        /* these are not errors */
       -        {"u9fs rhostsauth: no authentication required", 0},
       -        {"u9fs authnone: no authentication required", 0}
       +        { "permitted", EPERM },
       +        { "permission", EACCES },
       +        { "access", EACCES },
       +        { "exists", EEXIST },
       +        { "exist", ENOENT },
       +        { "no such", ENOENT },
       +        { "not found", ENOENT },
       +        { "input/output", EIO },
       +        { "timeout", ETIMEDOUT },
       +        { "timed out", ETIMEDOUT },
       +        { "i/o", EIO },
       +        { "too long", E2BIG },
       +        { "interrupt", EINTR },
       +        { "no such", ENODEV },
       +        { "bad file", EBADF },
       +        { " fid ", EBADF },
       +        { "temporar", EAGAIN },
       +        { "memory", ENOMEM },
       +        { "is a directory", EISDIR },
       +        { "directory", ENOTDIR },
       +        { "argument", EINVAL },
       +        { "pipe", EPIPE },
       +        { "in use", EBUSY },
       +        { "busy", EBUSY },
       +        { "illegal", EINVAL },
       +        { "read-only", EROFS },
       +        { "read only", EROFS },
       +        { "proto", EPROTO },
       +        { "entry", ENOENT },
        };
        
        int
       t@@ -160,6 +63,6 @@ errstr2errno(void)
                for(i=0; i<nelem(errortab); i++)
                        if(errortab[i].len <= len && cistrstr(e, errortab[i].text))
                                return errortab[i].err;
       -        return ERANGE;        /* who knows? */
       +        return ERANGE;        /* who knows - be blatantly wrong */
        }