"Fossies" - the Fresh Open Source Software Archive

Member "gnuastro-0.8/bootstrapped/lib/strerror-override.c" (28 Dec 2018, 9014 Bytes) of package /linux/privat/gnuastro-0.8.tar.lz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "strerror-override.c" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 0.5_vs_0.6.

    1 /* strerror-override.c --- POSIX compatible system error routine
    2 
    3    Copyright (C) 2010-2018 Free Software Foundation, Inc.
    4 
    5    This program is free software: you can redistribute it and/or modify
    6    it under the terms of the GNU General Public License as published by
    7    the Free Software Foundation; either version 3 of the License, or
    8    (at your option) any later version.
    9 
   10    This program is distributed in the hope that it will be useful,
   11    but WITHOUT ANY WARRANTY; without even the implied warranty of
   12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   13    GNU General Public License for more details.
   14 
   15    You should have received a copy of the GNU General Public License
   16    along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
   17 
   18 /* Written by Bruno Haible <bruno@clisp.org>, 2010.  */
   19 
   20 #include <config.h>
   21 
   22 #include "strerror-override.h"
   23 
   24 #include <errno.h>
   25 
   26 #if GNULIB_defined_EWINSOCK /* native Windows platforms */
   27 # if HAVE_WINSOCK2_H
   28 #  include <winsock2.h>
   29 # endif
   30 #endif
   31 
   32 /* If ERRNUM maps to an errno value defined by gnulib, return a string
   33    describing the error.  Otherwise return NULL.  */
   34 const char *
   35 strerror_override (int errnum)
   36 {
   37   /* These error messages are taken from glibc/sysdeps/gnu/errlist.c.  */
   38   switch (errnum)
   39     {
   40 #if REPLACE_STRERROR_0
   41     case 0:
   42       return "Success";
   43 #endif
   44 
   45 #if GNULIB_defined_ESOCK /* native Windows platforms with older <errno.h> */
   46     case EINPROGRESS:
   47       return "Operation now in progress";
   48     case EALREADY:
   49       return "Operation already in progress";
   50     case ENOTSOCK:
   51       return "Socket operation on non-socket";
   52     case EDESTADDRREQ:
   53       return "Destination address required";
   54     case EMSGSIZE:
   55       return "Message too long";
   56     case EPROTOTYPE:
   57       return "Protocol wrong type for socket";
   58     case ENOPROTOOPT:
   59       return "Protocol not available";
   60     case EPROTONOSUPPORT:
   61       return "Protocol not supported";
   62     case EOPNOTSUPP:
   63       return "Operation not supported";
   64     case EAFNOSUPPORT:
   65       return "Address family not supported by protocol";
   66     case EADDRINUSE:
   67       return "Address already in use";
   68     case EADDRNOTAVAIL:
   69       return "Cannot assign requested address";
   70     case ENETDOWN:
   71       return "Network is down";
   72     case ENETUNREACH:
   73       return "Network is unreachable";
   74     case ECONNRESET:
   75       return "Connection reset by peer";
   76     case ENOBUFS:
   77       return "No buffer space available";
   78     case EISCONN:
   79       return "Transport endpoint is already connected";
   80     case ENOTCONN:
   81       return "Transport endpoint is not connected";
   82     case ETIMEDOUT:
   83       return "Connection timed out";
   84     case ECONNREFUSED:
   85       return "Connection refused";
   86     case ELOOP:
   87       return "Too many levels of symbolic links";
   88     case EHOSTUNREACH:
   89       return "No route to host";
   90     case EWOULDBLOCK:
   91       return "Operation would block";
   92 #endif
   93 #if GNULIB_defined_ESTREAMS /* native Windows platforms with older <errno.h> */
   94     case ETXTBSY:
   95       return "Text file busy";
   96     case ENODATA:
   97       return "No data available";
   98     case ENOSR:
   99       return "Out of streams resources";
  100     case ENOSTR:
  101       return "Device not a stream";
  102     case ETIME:
  103       return "Timer expired";
  104     case EOTHER:
  105       return "Other error";
  106 #endif
  107 #if GNULIB_defined_EWINSOCK /* native Windows platforms */
  108     case ESOCKTNOSUPPORT:
  109       return "Socket type not supported";
  110     case EPFNOSUPPORT:
  111       return "Protocol family not supported";
  112     case ESHUTDOWN:
  113       return "Cannot send after transport endpoint shutdown";
  114     case ETOOMANYREFS:
  115       return "Too many references: cannot splice";
  116     case EHOSTDOWN:
  117       return "Host is down";
  118     case EPROCLIM:
  119       return "Too many processes";
  120     case EUSERS:
  121       return "Too many users";
  122     case EDQUOT:
  123       return "Disk quota exceeded";
  124     case ESTALE:
  125       return "Stale NFS file handle";
  126     case EREMOTE:
  127       return "Object is remote";
  128 # if HAVE_WINSOCK2_H
  129       /* WSA_INVALID_HANDLE maps to EBADF */
  130       /* WSA_NOT_ENOUGH_MEMORY maps to ENOMEM */
  131       /* WSA_INVALID_PARAMETER maps to EINVAL */
  132     case WSA_OPERATION_ABORTED:
  133       return "Overlapped operation aborted";
  134     case WSA_IO_INCOMPLETE:
  135       return "Overlapped I/O event object not in signaled state";
  136     case WSA_IO_PENDING:
  137       return "Overlapped operations will complete later";
  138       /* WSAEINTR maps to EINTR */
  139       /* WSAEBADF maps to EBADF */
  140       /* WSAEACCES maps to EACCES */
  141       /* WSAEFAULT maps to EFAULT */
  142       /* WSAEINVAL maps to EINVAL */
  143       /* WSAEMFILE maps to EMFILE */
  144       /* WSAEWOULDBLOCK maps to EWOULDBLOCK */
  145       /* WSAEINPROGRESS maps to EINPROGRESS */
  146       /* WSAEALREADY maps to EALREADY */
  147       /* WSAENOTSOCK maps to ENOTSOCK */
  148       /* WSAEDESTADDRREQ maps to EDESTADDRREQ */
  149       /* WSAEMSGSIZE maps to EMSGSIZE */
  150       /* WSAEPROTOTYPE maps to EPROTOTYPE */
  151       /* WSAENOPROTOOPT maps to ENOPROTOOPT */
  152       /* WSAEPROTONOSUPPORT maps to EPROTONOSUPPORT */
  153       /* WSAESOCKTNOSUPPORT is ESOCKTNOSUPPORT */
  154       /* WSAEOPNOTSUPP maps to EOPNOTSUPP */
  155       /* WSAEPFNOSUPPORT is EPFNOSUPPORT */
  156       /* WSAEAFNOSUPPORT maps to EAFNOSUPPORT */
  157       /* WSAEADDRINUSE maps to EADDRINUSE */
  158       /* WSAEADDRNOTAVAIL maps to EADDRNOTAVAIL */
  159       /* WSAENETDOWN maps to ENETDOWN */
  160       /* WSAENETUNREACH maps to ENETUNREACH */
  161       /* WSAENETRESET maps to ENETRESET */
  162       /* WSAECONNABORTED maps to ECONNABORTED */
  163       /* WSAECONNRESET maps to ECONNRESET */
  164       /* WSAENOBUFS maps to ENOBUFS */
  165       /* WSAEISCONN maps to EISCONN */
  166       /* WSAENOTCONN maps to ENOTCONN */
  167       /* WSAESHUTDOWN is ESHUTDOWN */
  168       /* WSAETOOMANYREFS is ETOOMANYREFS */
  169       /* WSAETIMEDOUT maps to ETIMEDOUT */
  170       /* WSAECONNREFUSED maps to ECONNREFUSED */
  171       /* WSAELOOP maps to ELOOP */
  172       /* WSAENAMETOOLONG maps to ENAMETOOLONG */
  173       /* WSAEHOSTDOWN is EHOSTDOWN */
  174       /* WSAEHOSTUNREACH maps to EHOSTUNREACH */
  175       /* WSAENOTEMPTY maps to ENOTEMPTY */
  176       /* WSAEPROCLIM is EPROCLIM */
  177       /* WSAEUSERS is EUSERS */
  178       /* WSAEDQUOT is EDQUOT */
  179       /* WSAESTALE is ESTALE */
  180       /* WSAEREMOTE is EREMOTE */
  181     case WSASYSNOTREADY:
  182       return "Network subsystem is unavailable";
  183     case WSAVERNOTSUPPORTED:
  184       return "Winsock.dll version out of range";
  185     case WSANOTINITIALISED:
  186       return "Successful WSAStartup not yet performed";
  187     case WSAEDISCON:
  188       return "Graceful shutdown in progress";
  189     case WSAENOMORE: case WSA_E_NO_MORE:
  190       return "No more results";
  191     case WSAECANCELLED: case WSA_E_CANCELLED:
  192       return "Call was canceled";
  193     case WSAEINVALIDPROCTABLE:
  194       return "Procedure call table is invalid";
  195     case WSAEINVALIDPROVIDER:
  196       return "Service provider is invalid";
  197     case WSAEPROVIDERFAILEDINIT:
  198       return "Service provider failed to initialize";
  199     case WSASYSCALLFAILURE:
  200       return "System call failure";
  201     case WSASERVICE_NOT_FOUND:
  202       return "Service not found";
  203     case WSATYPE_NOT_FOUND:
  204       return "Class type not found";
  205     case WSAEREFUSED:
  206       return "Database query was refused";
  207     case WSAHOST_NOT_FOUND:
  208       return "Host not found";
  209     case WSATRY_AGAIN:
  210       return "Nonauthoritative host not found";
  211     case WSANO_RECOVERY:
  212       return "Nonrecoverable error";
  213     case WSANO_DATA:
  214       return "Valid name, no data record of requested type";
  215       /* WSA_QOS_* omitted */
  216 # endif
  217 #endif
  218 
  219 #if GNULIB_defined_ENOMSG
  220     case ENOMSG:
  221       return "No message of desired type";
  222 #endif
  223 
  224 #if GNULIB_defined_EIDRM
  225     case EIDRM:
  226       return "Identifier removed";
  227 #endif
  228 
  229 #if GNULIB_defined_ENOLINK
  230     case ENOLINK:
  231       return "Link has been severed";
  232 #endif
  233 
  234 #if GNULIB_defined_EPROTO
  235     case EPROTO:
  236       return "Protocol error";
  237 #endif
  238 
  239 #if GNULIB_defined_EMULTIHOP
  240     case EMULTIHOP:
  241       return "Multihop attempted";
  242 #endif
  243 
  244 #if GNULIB_defined_EBADMSG
  245     case EBADMSG:
  246       return "Bad message";
  247 #endif
  248 
  249 #if GNULIB_defined_EOVERFLOW
  250     case EOVERFLOW:
  251       return "Value too large for defined data type";
  252 #endif
  253 
  254 #if GNULIB_defined_ENOTSUP
  255     case ENOTSUP:
  256       return "Not supported";
  257 #endif
  258 
  259 #if GNULIB_defined_ENETRESET
  260     case ENETRESET:
  261       return "Network dropped connection on reset";
  262 #endif
  263 
  264 #if GNULIB_defined_ECONNABORTED
  265     case ECONNABORTED:
  266       return "Software caused connection abort";
  267 #endif
  268 
  269 #if GNULIB_defined_ESTALE
  270     case ESTALE:
  271       return "Stale NFS file handle";
  272 #endif
  273 
  274 #if GNULIB_defined_EDQUOT
  275     case EDQUOT:
  276       return "Disk quota exceeded";
  277 #endif
  278 
  279 #if GNULIB_defined_ECANCELED
  280     case ECANCELED:
  281       return "Operation canceled";
  282 #endif
  283 
  284 #if GNULIB_defined_EOWNERDEAD
  285     case EOWNERDEAD:
  286       return "Owner died";
  287 #endif
  288 
  289 #if GNULIB_defined_ENOTRECOVERABLE
  290     case ENOTRECOVERABLE:
  291       return "State not recoverable";
  292 #endif
  293 
  294 #if GNULIB_defined_EILSEQ
  295     case EILSEQ:
  296       return "Invalid or incomplete multibyte or wide character";
  297 #endif
  298 
  299     default:
  300       return NULL;
  301     }
  302 }