diff options
Diffstat (limited to 'libltdl/ltdl.h')
-rw-r--r-- | libltdl/ltdl.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/libltdl/ltdl.h b/libltdl/ltdl.h new file mode 100644 index 0000000000..c0e446b87e --- /dev/null +++ b/libltdl/ltdl.h @@ -0,0 +1,92 @@ +/* ltdl.h -- generic dlopen functions + Copyright (C) 1998-1999 Free Software Foundation, Inc. + Originally by Thomas Tanner <tanner@ffii.org> + This file is part of GNU Libtool. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +As a special exception to the GNU Library General Public License, +if you distribute this file as part of a program that uses GNU libtool +to create libraries and programs, you may include it under the same +distribution terms that you use for the rest of that program. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this library; if not, write to the Free +Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA +*/ + +/* Only include this header file once. */ +#ifndef _LTDL_H_ +#define _LTDL_H_ 1 + +/* __BEGIN_DECLS should be used at the beginning of your declarations, + so that C++ compilers don't mangle their names. Use __END_DECLS at + the end of C declarations. */ +#undef __BEGIN_DECLS +#undef __END_DECLS +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS /* empty */ +# define __END_DECLS /* empty */ +#endif + +/* LTDL_PARAMS is a macro used to wrap function prototypes, so that compilers + that don't understand ANSI C prototypes still work, and ANSI C + compilers can issue warnings about type mismatches. */ +#undef LTDL_PARAMS +#undef lt_ptr_t +#if defined (__STDC__) || defined (_AIX) || (defined (__mips) && defined (_SYSTYPE_SVR4)) || defined(WIN32) || defined(__cplusplus) +# define LTDL_PARAMS(protos) protos +# define lt_ptr_t void* +#else +# define LTDL_PARAMS(protos) () +# define lt_ptr_t char* +#endif + +#include <stdlib.h> + +#ifdef _LTDL_COMPILE_ +typedef struct lt_dlhandle_t *lt_dlhandle; +#else +typedef lt_ptr_t lt_dlhandle; +#endif + +typedef struct { + const char *name; + lt_ptr_t address; +} lt_dlsymlist; + +__BEGIN_DECLS +extern int lt_dlinit LTDL_PARAMS((void)); +extern int lt_dlpreload LTDL_PARAMS((const lt_dlsymlist *preloaded)); +extern int lt_dlpreload_default LTDL_PARAMS((const lt_dlsymlist *preloaded)); +extern int lt_dlexit LTDL_PARAMS((void)); +extern lt_dlhandle lt_dlopen LTDL_PARAMS((const char *filename)); +extern lt_dlhandle lt_dlopenext LTDL_PARAMS((const char *filename)); +extern int lt_dlclose LTDL_PARAMS((lt_dlhandle handle)); +extern lt_ptr_t lt_dlsym LTDL_PARAMS((lt_dlhandle handle, const char *name)); +extern const char *lt_dlerror LTDL_PARAMS((void)); +extern int lt_dladdsearchdir LTDL_PARAMS((const char *search_dir)); +extern int lt_dlsetsearchpath LTDL_PARAMS((const char *search_path)); +extern const char *lt_dlgetsearchpath LTDL_PARAMS((void)); + +extern const lt_dlsymlist lt_preloaded_symbols[]; +#define LTDL_SET_PRELOADED_SYMBOLS() lt_dlpreload_default(lt_preloaded_symbols) + +extern lt_ptr_t (*lt_dlmalloc)LTDL_PARAMS((size_t size)); +extern void (*lt_dlfree)LTDL_PARAMS((lt_ptr_t ptr)); + +__END_DECLS + +#endif /* !_LTDL_H_ */ |