Annotation of parser3/src/lib/ltdl/libltdl/lt_error.h, revision 1.2
1.2 ! moko 1: /* lt_error.h -- error propagation interface
1.1 moko 2:
1.2 ! moko 3: Copyright (C) 1999-2001, 2004, 2007, 2011-2019, 2021-2024 Free
! 4: Software Foundation, Inc.
1.1 moko 5: Written by Thomas Tanner, 1999
6:
7: NOTE: The canonical source of this file is maintained with the
8: GNU Libtool package. Report bugs to bug-libtool@gnu.org.
9:
10: GNU Libltdl is free software; you can redistribute it and/or
11: modify it under the terms of the GNU Lesser General Public
12: License as published by the Free Software Foundation; either
13: version 2 of the License, or (at your option) any later version.
14:
15: As a special exception to the GNU Lesser General Public License,
16: if you distribute this file as part of a program or library that
17: is built using GNU Libtool, you may include this file under the
18: same distribution terms that you use for the rest of that program.
19:
20: GNU Libltdl is distributed in the hope that it will be useful,
21: but WITHOUT ANY WARRANTY; without even the implied warranty of
22: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23: GNU Lesser General Public License for more details.
24:
25: You should have received a copy of the GNU Lesser General Public
1.2 ! moko 26: License along with GNU Libltdl. If not, see <https://www.gnu.org/licenses/>.
1.1 moko 27: */
28:
29: /* Only include this header file once. */
1.2 ! moko 30: #if !defined LT_ERROR_H
1.1 moko 31: #define LT_ERROR_H 1
32:
33: #include <libltdl/lt_system.h>
34:
35: LT_BEGIN_C_DECLS
36:
37: /* Defining error strings alongside their symbolic names in a macro in
38: this way allows us to expand the macro in different contexts with
39: confidence that the enumeration of symbolic names will map correctly
40: onto the table of error strings. \0 is appended to the strings to
1.2 ! moko 41: explicitly initialize the string terminator. */
1.1 moko 42: #define lt_dlerror_table \
43: LT_ERROR(UNKNOWN, "unknown error\0") \
44: LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \
45: LT_ERROR(INVALID_LOADER, "invalid loader\0") \
46: LT_ERROR(INIT_LOADER, "loader initialization failed\0") \
47: LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \
48: LT_ERROR(FILE_NOT_FOUND, "file not found\0") \
49: LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \
50: LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \
51: LT_ERROR(CANNOT_OPEN, "can't open the module\0") \
52: LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \
53: LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \
54: LT_ERROR(NO_MEMORY, "not enough memory\0") \
55: LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \
56: LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \
57: LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \
58: LT_ERROR(SHUTDOWN, "library already shutdown\0") \
59: LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \
60: LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\
61: LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\
62: LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0")
63:
64: /* Enumerate the symbolic error names. */
65: enum {
66: #define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name),
67: lt_dlerror_table
68: #undef LT_ERROR
69:
70: LT_ERROR_MAX
71: };
72:
73: /* Should be max of the error string lengths above (plus one for C++) */
74: #define LT_ERROR_LEN_MAX (41)
75:
76: /* These functions are only useful from inside custom module loaders. */
77: LT_SCOPE int lt_dladderror (const char *diagnostic);
78: LT_SCOPE int lt_dlseterror (int errorcode);
79:
80:
81: LT_END_C_DECLS
82:
1.2 ! moko 83: #endif /*!defined LT_ERROR_H*/
E-mail: