/* Copyright (C) 1999 Beau Kuiper
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "../../config.h"
#ifndef HAVE_STRERROR
#include "strerror.h"
/* this was generated using vi on a linux system. May not work on yours */
char *strerror(int errnum)
{
switch (errnum)
{
case EPERM : { return("Operation not permitted"); };
case ENOENT : { return("No such file or directory"); };
case ESRCH : { return("No such process"); };
case EINTR : { return("Interrupted system call"); };
case EIO : { return("I/O error"); };
case ENXIO : { return("No such device or address"); };
case E2BIG : { return("Arg list too long"); };
case ENOEXEC : { return("Exec format error"); };
case EBADF : { return("Bad file number"); };
case ECHILD : { return("No child processes"); };
case EAGAIN : { return("Try again"); };
case ENOMEM : { return("Out of memory"); };
case EACCES : { return("Permission denied"); };
case EFAULT : { return("Bad address"); };
case ENOTBLK : { return("Block device required"); };
case EBUSY : { return("Device or resource busy"); };
case EEXIST : { return("File exists"); };
case EXDEV : { return("Cross-device link"); };
case ENODEV : { return("No such device"); };
case ENOTDIR : { return("Not a directory"); };
case EISDIR : { return("Is a directory"); };
case EINVAL : { return("Invalid argument"); };
case ENFILE : { return("File table overflow"); };
case EMFILE : { return("Too many open files"); };
case ENOTTY : { return("Not a typewriter"); };
case ETXTBSY : { return("Text file busy"); };
case EFBIG : { return("File too large"); };
case ENOSPC : { return("No space left on device"); };
case ESPIPE : { return("Illegal seek"); };
case EROFS : { return("Read-only file system"); };
case EMLINK : { return("Too many links"); };
case EPIPE : { return("Broken pipe"); };
case EDOM : { return("Math argument out of domain of func"); };
case ERANGE : { return("Math result not representable"); };
case EDEADLK : { return("Resource deadlock would occur"); };
case ENAMETOOLONG : { return("File name too long"); };
case ENOLCK : { return("No record locks available"); };
case ENOSYS : { return("Function not implemented"); };
case ENOTEMPTY : { return("Directory not empty"); };
case ELOOP : { return("Too many symbolic links encountered"); };
case ENOMSG : { return("No message of desired type"); };
case EIDRM : { return("Identifier removed"); };
case ENOSTR : { return("Device not a stream"); };
case ETIME : { return("Timer expired"); };
case ENOSR : { return("Out of streams resources"); };
case ENONET : { return("Machine is not on the network"); };
case EREMOTE : { return("Object is remote"); };
case ENOLINK : { return("Link has been severed"); };
case EADV : { return("Advertise error"); };
case ESRMNT : { return("Srmount error"); };
case ECOMM : { return("Communication error on send"); };
case EPROTO : { return("Protocol error"); };
case EMULTIHOP : { return("Multihop attempted"); };
case EDOTDOT : { return("RFS specific error"); };
case EBADMSG : { return("Not a data message"); };
case EREMCHG : { return("Remote address changed"); };
case EUSERS : { return("Too many users"); };
case ENOTSOCK : { return("Socket operation on non-socket"); };
case EDESTADDRREQ : { return("Destination address required"); };
case EMSGSIZE : { return("Message too long"); };
case EPROTOTYPE : { return("Protocol wrong type for socket"); };
case ENOPROTOOPT : { return("Protocol not available"); };
case EPROTONOSUPPORT : { return("Protocol not supported"); };
case ESOCKTNOSUPPORT : { return("Socket type not supported"); };
case EOPNOTSUPP : { return("Operation not supported on transport endpoint"); };
case EPFNOSUPPORT : { return("Protocol family not supported"); };
case EAFNOSUPPORT : { return("Address family not supported by protocol"); };
case EADDRINUSE : { return("Address already in use"); };
case EADDRNOTAVAIL : { return("Cannot assign requested address"); };
case ENETDOWN : { return("Network is down"); };
case ENETUNREACH : { return("Network is unreachable"); };
case ENETRESET : { return("Network dropped connection because of reset"); };
case ECONNABORTED : { return("Software caused connection abort"); };
case ECONNRESET : { return("Connection reset by peer"); };
case ENOBUFS : { return("No buffer space available"); };
case EISCONN : { return("Transport endpoint is already connected"); };
case ENOTCONN : { return("Transport endpoint is not connected"); };
case ESHUTDOWN : { return("Cannot send after transport endpoint shutdown"); };
case ETOOMANYREFS : { return("Too many references: cannot splice"); };
case ETIMEDOUT : { return("Connection timed out"); };
case ECONNREFUSED : { return("Connection refused"); };
case EHOSTDOWN : { return("Host is down"); };
case EHOSTUNREACH : { return("No route to host"); };
case EALREADY : { return("Operation already in progress"); };
case EINPROGRESS : { return("Operation now in progress"); };
case ESTALE : { return("Stale NFS file handle"); };
case EDQUOT : { return("Quota exceeded"); };
default : { return("Unknown Error"); };
}
}
#endif /* HAVE_STRERROR */
syntax highlighted by Code2HTML, v. 0.9.1