1 /* strerror-override.h --- 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 #ifndef _GL_STRERROR_OVERRIDE_H 19 # define _GL_STRERROR_OVERRIDE_H 20 21 # include <errno.h> 22 # include <stddef.h> 23 24 /* Reasonable buffer size that should never trigger ERANGE; if this 25 proves too small, we intentionally abort(), to remind us to fix 26 this value. */ 27 # define STACKBUF_LEN 256 28 29 /* If ERRNUM maps to an errno value defined by gnulib, return a string 30 describing the error. Otherwise return NULL. */ 31 # if REPLACE_STRERROR_0 \ 32 || GNULIB_defined_ESOCK \ 33 || GNULIB_defined_ESTREAMS \ 34 || GNULIB_defined_EWINSOCK \ 35 || GNULIB_defined_ENOMSG \ 36 || GNULIB_defined_EIDRM \ 37 || GNULIB_defined_ENOLINK \ 38 || GNULIB_defined_EPROTO \ 39 || GNULIB_defined_EMULTIHOP \ 40 || GNULIB_defined_EBADMSG \ 41 || GNULIB_defined_EOVERFLOW \ 42 || GNULIB_defined_ENOTSUP \ 43 || GNULIB_defined_ENETRESET \ 44 || GNULIB_defined_ECONNABORTED \ 45 || GNULIB_defined_ESTALE \ 46 || GNULIB_defined_EDQUOT \ 47 || GNULIB_defined_ECANCELED \ 48 || GNULIB_defined_EOWNERDEAD \ 49 || GNULIB_defined_ENOTRECOVERABLE \ 50 || GNULIB_defined_EILSEQ 51 extern const char *strerror_override (int errnum) _GL_ATTRIBUTE_CONST; 52 # else 53 # define strerror_override(ignored) NULL 54 # endif 55 56 #endif /* _GL_STRERROR_OVERRIDE_H */ 57