226 lines
8.5 KiB
C
226 lines
8.5 KiB
C
/*-
|
|
* See the file LICENSE for redistribution information.
|
|
*
|
|
* Copyright (c) 1997,2007 Oracle. All rights reserved.
|
|
*/
|
|
/*
|
|
* Copyright (c) 1988, 1993
|
|
* The Regents of the University of California. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. Neither the name of the University nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
* $Id: strerror.c,v 12.13 2007/05/17 16:57:46 bostic Exp $
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 1982, 1985, 1993
|
|
* The Regents of the University of California. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* 3. All advertising materials mentioning features or use of this software
|
|
* must display the following acknowledgement:
|
|
* This product includes software developed by the University of
|
|
* California, Berkeley and its contributors.
|
|
* 4. Neither the name of the University nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software
|
|
* without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
|
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
|
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
|
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
|
* SUCH DAMAGE.
|
|
*
|
|
* __FBSDID("FreeBSD: /repoman/r/ncvs/src/lib/libc/gen/errlst.c,v 1.8 2005/04/02 12:33:28 das Exp $");
|
|
*/
|
|
|
|
#include "db_config.h"
|
|
|
|
#include "db_int.h"
|
|
|
|
/*
|
|
* __db_strerror --
|
|
* Return the string associated with an errno.
|
|
*
|
|
* PUBLIC: #ifndef HAVE_STRERROR
|
|
* PUBLIC: char *strerror __P((int));
|
|
* PUBLIC: #endif
|
|
*/
|
|
char *
|
|
strerror(num)
|
|
int num;
|
|
{
|
|
#define ERRSTR(v, s) do { \
|
|
if (num == (v)) \
|
|
return (s); \
|
|
} while (0)
|
|
ERRSTR(0, "Undefined error: 0");
|
|
ERRSTR(EPERM, "Operation not permitted");
|
|
ERRSTR(ENOENT, "No such file or directory");
|
|
ERRSTR(ESRCH, "No such process");
|
|
ERRSTR(EINTR, "Interrupted system call");
|
|
ERRSTR(EIO, "Input/output error");
|
|
ERRSTR(ENXIO, "Device not configured");
|
|
ERRSTR(E2BIG, "Argument list too long");
|
|
ERRSTR(ENOEXEC, "Exec format error");
|
|
ERRSTR(EBADF, "Bad file descriptor");
|
|
ERRSTR(ECHILD, "No child processes");
|
|
ERRSTR(EDEADLK, "Resource deadlock avoided");
|
|
ERRSTR(ENOMEM, "Cannot allocate memory");
|
|
ERRSTR(EACCES, "Permission denied");
|
|
ERRSTR(EFAULT, "Bad address");
|
|
ERRSTR(ENOTBLK, "Block device required");
|
|
ERRSTR(EBUSY, "Device busy");
|
|
ERRSTR(EEXIST, "File exists");
|
|
ERRSTR(EXDEV, "Cross-device link");
|
|
ERRSTR(ENODEV, "Operation not supported by device");
|
|
ERRSTR(ENOTDIR, "Not a directory");
|
|
ERRSTR(EISDIR, "Is a directory");
|
|
ERRSTR(EINVAL, "Invalid argument");
|
|
ERRSTR(ENFILE, "Too many open files in system");
|
|
ERRSTR(EMFILE, "Too many open files");
|
|
ERRSTR(ENOTTY, "Inappropriate ioctl for device");
|
|
ERRSTR(ETXTBSY, "Text file busy");
|
|
ERRSTR(EFBIG, "File too large");
|
|
ERRSTR(ENOSPC, "No space left on device");
|
|
ERRSTR(ESPIPE, "Illegal seek");
|
|
ERRSTR(EROFS, "Read-only file system");
|
|
ERRSTR(EMLINK, "Too many links");
|
|
ERRSTR(EPIPE, "Broken pipe");
|
|
|
|
/* math software */
|
|
ERRSTR(EDOM, "Numerical argument out of domain");
|
|
ERRSTR(ERANGE, "Result too large");
|
|
|
|
/* non-blocking and interrupt i/o */
|
|
ERRSTR(EAGAIN, "Resource temporarily unavailable");
|
|
ERRSTR(EWOULDBLOCK, "Resource temporarily unavailable");
|
|
ERRSTR(EINPROGRESS, "Operation now in progress");
|
|
ERRSTR(EALREADY, "Operation already in progress");
|
|
|
|
/* ipc/network software -- argument errors */
|
|
ERRSTR(ENOTSOCK, "Socket operation on non-socket");
|
|
ERRSTR(EDESTADDRREQ, "Destination address required");
|
|
ERRSTR(EMSGSIZE, "Message too long");
|
|
ERRSTR(EPROTOTYPE, "Protocol wrong type for socket");
|
|
ERRSTR(ENOPROTOOPT, "Protocol not available");
|
|
ERRSTR(EPROTONOSUPPORT, "Protocol not supported");
|
|
ERRSTR(ESOCKTNOSUPPORT, "Socket type not supported");
|
|
ERRSTR(EOPNOTSUPP, "Operation not supported");
|
|
ERRSTR(EPFNOSUPPORT, "Protocol family not supported");
|
|
ERRSTR(EAFNOSUPPORT, "Address family not supported by protocol family");
|
|
ERRSTR(EADDRINUSE, "Address already in use");
|
|
ERRSTR(EADDRNOTAVAIL, "Can't assign requested address");
|
|
|
|
/* ipc/network software -- operational errors */
|
|
ERRSTR(ENETDOWN, "Network is down");
|
|
ERRSTR(ENETUNREACH, "Network is unreachable");
|
|
ERRSTR(ENETRESET, "Network dropped connection on reset");
|
|
ERRSTR(ECONNABORTED, "Software caused connection abort");
|
|
ERRSTR(ECONNRESET, "Connection reset by peer");
|
|
ERRSTR(ENOBUFS, "No buffer space available");
|
|
ERRSTR(EISCONN, "Socket is already connected");
|
|
ERRSTR(ENOTCONN, "Socket is not connected");
|
|
ERRSTR(ESHUTDOWN, "Can't send after socket shutdown");
|
|
ERRSTR(ETOOMANYREFS, "Too many references: can't splice");
|
|
ERRSTR(ETIMEDOUT, "Operation timed out");
|
|
ERRSTR(ECONNREFUSED, "Connection refused");
|
|
|
|
ERRSTR(ELOOP, "Too many levels of symbolic links");
|
|
ERRSTR(ENAMETOOLONG, "File name too long");
|
|
|
|
/* should be rearranged */
|
|
ERRSTR(EHOSTDOWN, "Host is down");
|
|
ERRSTR(EHOSTUNREACH, "No route to host");
|
|
ERRSTR(ENOTEMPTY, "Directory not empty");
|
|
|
|
/* quotas & mush */
|
|
ERRSTR(EPROCLIM, "Too many processes");
|
|
ERRSTR(EUSERS, "Too many users");
|
|
ERRSTR(EDQUOT, "Disc quota exceeded");
|
|
|
|
/* Network File System */
|
|
ERRSTR(ESTALE, "Stale NFS file handle");
|
|
ERRSTR(EREMOTE, "Too many levels of remote in path");
|
|
ERRSTR(EBADRPC, "RPC struct is bad");
|
|
ERRSTR(ERPCMISMATCH, "RPC version wrong");
|
|
ERRSTR(EPROGUNAVAIL, "RPC prog. not avail");
|
|
ERRSTR(EPROGMISMATCH, "Program version wrong");
|
|
ERRSTR(EPROCUNAVAIL, "Bad procedure for program");
|
|
|
|
ERRSTR(ENOLCK, "No locks available");
|
|
ERRSTR(ENOSYS, "Function not implemented");
|
|
ERRSTR(EFTYPE, "Inappropriate file type or format");
|
|
#ifdef EAUTH
|
|
ERRSTR(EAUTH, "Authentication error");
|
|
#endif
|
|
#ifdef ENEEDAUTH
|
|
ERRSTR(ENEEDAUTH, "Need authenticator");
|
|
#endif
|
|
ERRSTR(EIDRM, "Identifier removed");
|
|
ERRSTR(ENOMSG, "No message of desired type");
|
|
#ifdef EOVERFLOW
|
|
ERRSTR(EOVERFLOW, "Value too large to be stored in data type");
|
|
#endif
|
|
ERRSTR(ECANCELED, "Operation canceled");
|
|
ERRSTR(EILSEQ, "Illegal byte sequence");
|
|
#ifdef ENOATTR
|
|
ERRSTR(ENOATTR, "Attribute not found");
|
|
#endif
|
|
|
|
/* General */
|
|
#ifdef EDOOFUS
|
|
ERRSTR(EDOOFUS, "Programming error");
|
|
#endif
|
|
|
|
#ifdef EBADMSG
|
|
ERRSTR(EBADMSG, "Bad message");
|
|
#endif
|
|
#ifdef EMULTIHOP
|
|
ERRSTR(EMULTIHOP, "Multihop attempted");
|
|
#endif
|
|
#ifdef ENOLINK
|
|
ERRSTR(ENOLINK, "Link has been severed");
|
|
#endif
|
|
#ifdef EPROTO
|
|
ERRSTR(EPROTO, "Protocol error");
|
|
#endif
|
|
|
|
return (__db_unknown_error(num));
|
|
}
|