Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-06-03 08:39:38

0001 /* lt_error.h -- error propagation interface
0002 
0003    Copyright (C) 1999-2001, 2004, 2007, 2011-2019, 2021-2022 Free
0004    Software Foundation, Inc.
0005    Written by Thomas Tanner, 1999
0006 
0007    NOTE: The canonical source of this file is maintained with the
0008    GNU Libtool package.  Report bugs to bug-libtool@gnu.org.
0009 
0010 GNU Libltdl is free software; you can redistribute it and/or
0011 modify it under the terms of the GNU Lesser General Public
0012 License as published by the Free Software Foundation; either
0013 version 2 of the License, or (at your option) any later version.
0014 
0015 As a special exception to the GNU Lesser General Public License,
0016 if you distribute this file as part of a program or library that
0017 is built using GNU Libtool, you may include this file under the
0018 same distribution terms that you use for the rest of that program.
0019 
0020 GNU Libltdl is distributed in the hope that it will be useful,
0021 but WITHOUT ANY WARRANTY; without even the implied warranty of
0022 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0023 GNU Lesser General Public License for more details.
0024 
0025 You should have received a copy of the GNU Lesser General Public
0026 License along with GNU Libltdl; see the file COPYING.LIB.  If not, a
0027 copy can be downloaded from  http://www.gnu.org/licenses/lgpl.html,
0028 or obtained by writing to the Free Software Foundation, Inc.,
0029 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
0030 */
0031 
0032 /* Only include this header file once. */
0033 #if !defined LT_ERROR_H
0034 #define LT_ERROR_H 1
0035 
0036 #include <libltdl/lt_system.h>
0037 
0038 LT_BEGIN_C_DECLS
0039 
0040 /* Defining error strings alongside their symbolic names in a macro in
0041    this way allows us to expand the macro in different contexts with
0042    confidence that the enumeration of symbolic names will map correctly
0043    onto the table of error strings.  \0 is appended to the strings to
0044    expilicitely initialize the string terminator. */
0045 #define lt_dlerror_table                        \
0046     LT_ERROR(UNKNOWN,           "unknown error\0")          \
0047     LT_ERROR(DLOPEN_NOT_SUPPORTED,  "dlopen support not available\0")   \
0048     LT_ERROR(INVALID_LOADER,        "invalid loader\0")         \
0049     LT_ERROR(INIT_LOADER,       "loader initialization failed\0")   \
0050     LT_ERROR(REMOVE_LOADER,     "loader removal failed\0")      \
0051     LT_ERROR(FILE_NOT_FOUND,        "file not found\0")         \
0052     LT_ERROR(DEPLIB_NOT_FOUND,      "dependency library not found\0")   \
0053     LT_ERROR(NO_SYMBOLS,        "no symbols defined\0")     \
0054     LT_ERROR(CANNOT_OPEN,       "can't open the module\0")      \
0055     LT_ERROR(CANNOT_CLOSE,      "can't close the module\0")     \
0056     LT_ERROR(SYMBOL_NOT_FOUND,      "symbol not found\0")       \
0057     LT_ERROR(NO_MEMORY,         "not enough memory\0")      \
0058     LT_ERROR(INVALID_HANDLE,        "invalid module handle\0")      \
0059     LT_ERROR(BUFFER_OVERFLOW,       "internal buffer overflow\0")   \
0060     LT_ERROR(INVALID_ERRORCODE,     "invalid errorcode\0")      \
0061     LT_ERROR(SHUTDOWN,          "library already shutdown\0")   \
0062     LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0")    \
0063     LT_ERROR(INVALID_MUTEX_ARGS,    "internal error (code withdrawn)\0")\
0064     LT_ERROR(INVALID_POSITION,      "invalid search path insert position\0")\
0065     LT_ERROR(CONFLICTING_FLAGS,     "symbol visibility can be global or local\0")
0066 
0067 /* Enumerate the symbolic error names. */
0068 enum {
0069 #define LT_ERROR(name, diagnostic)  LT_CONC(LT_ERROR_, name),
0070     lt_dlerror_table
0071 #undef LT_ERROR
0072 
0073     LT_ERROR_MAX
0074 };
0075 
0076 /* Should be max of the error string lengths above (plus one for C++) */
0077 #define LT_ERROR_LEN_MAX (41)
0078 
0079 /* These functions are only useful from inside custom module loaders. */
0080 LT_SCOPE int    lt_dladderror   (const char *diagnostic);
0081 LT_SCOPE int    lt_dlseterror   (int errorcode);
0082 
0083 
0084 LT_END_C_DECLS
0085 
0086 #endif /*!defined LT_ERROR_H*/