autotool-ized the project
This commit is contained in:
58
stix/libltdl/libltdl/lt__alloc.h
Normal file
58
stix/libltdl/libltdl/lt__alloc.h
Normal file
@ -0,0 +1,58 @@
|
||||
/* lt__alloc.h -- internal memory management interface
|
||||
|
||||
Copyright (C) 2004 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined(LT__ALLOC_H)
|
||||
#define LT__ALLOC_H 1
|
||||
|
||||
#include "lt_system.h"
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
#define MALLOC(tp, n) (tp*) lt__malloc((n) * sizeof(tp))
|
||||
#define REALLOC(tp, mem, n) (tp*) lt__realloc((mem), (n) * sizeof(tp))
|
||||
#define FREE(mem) LT_STMT_START { \
|
||||
if (mem) { free ((void *)mem); mem = NULL; } } LT_STMT_END
|
||||
#define MEMREASSIGN(p, q) LT_STMT_START { \
|
||||
if ((p) != (q)) { if (p) free (p); (p) = (q); (q) = 0; } \
|
||||
} LT_STMT_END
|
||||
|
||||
/* If set, this function is called when memory allocation has failed. */
|
||||
LT_SCOPE void (*lt__alloc_die) (void);
|
||||
|
||||
LT_SCOPE void *lt__malloc (size_t n);
|
||||
LT_SCOPE void *lt__zalloc (size_t n);
|
||||
LT_SCOPE void *lt__realloc (void *mem, size_t n);
|
||||
LT_SCOPE void *lt__memdup (void const *mem, size_t n);
|
||||
|
||||
LT_SCOPE char *lt__strdup (const char *string);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined(LT__ALLOC_H)*/
|
87
stix/libltdl/libltdl/lt__dirent.h
Normal file
87
stix/libltdl/libltdl/lt__dirent.h
Normal file
@ -0,0 +1,87 @@
|
||||
/* lt__dirent.h -- internal directory entry scanning interface
|
||||
|
||||
Copyright (C) 2001, 2004, 2006 Free Software Foundation, Inc.
|
||||
Written by Bob Friesenhahn, 2001
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined(LT__DIRENT_H)
|
||||
#define LT__DIRENT_H 1
|
||||
|
||||
#if defined(LT_CONFIG_H)
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include "lt_system.h"
|
||||
|
||||
#ifdef HAVE_DIRENT_H
|
||||
/* We have a fully operational dirent subsystem. */
|
||||
# include <dirent.h>
|
||||
# define D_NAMLEN(dirent) (strlen((dirent)->d_name))
|
||||
|
||||
#elif defined __WINDOWS__
|
||||
/* Use some wrapper code to emulate dirent on windows.. */
|
||||
# define WINDOWS_DIRENT_EMULATION 1
|
||||
|
||||
# include <windows.h>
|
||||
|
||||
# define D_NAMLEN(dirent) (strlen((dirent)->d_name))
|
||||
# define dirent lt__dirent
|
||||
# define DIR lt__DIR
|
||||
# define opendir lt__opendir
|
||||
# define readdir lt__readdir
|
||||
# define closedir lt__closedir
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
struct dirent
|
||||
{
|
||||
char d_name[LT_FILENAME_MAX];
|
||||
int d_namlen;
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
HANDLE hSearch;
|
||||
WIN32_FIND_DATA Win32FindData;
|
||||
BOOL firsttime;
|
||||
struct dirent file_info;
|
||||
} DIR;
|
||||
|
||||
|
||||
LT_SCOPE DIR * opendir (const char *path);
|
||||
LT_SCOPE struct dirent *readdir (DIR *entry);
|
||||
LT_SCOPE void closedir (DIR *entry);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#else /* !defined(__WINDOWS__)*/
|
||||
ERROR - cannot find dirent
|
||||
#endif /*!defined(__WINDOWS__)*/
|
||||
|
||||
#endif /*!defined(LT__DIRENT_H)*/
|
83
stix/libltdl/libltdl/lt__glibc.h
Normal file
83
stix/libltdl/libltdl/lt__glibc.h
Normal file
@ -0,0 +1,83 @@
|
||||
/* lt__glibc.h -- support for non glibc environments
|
||||
|
||||
Copyright (C) 2004, 2006, 2007 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined(LT__GLIBC_H)
|
||||
#define LT__GLIBC_H 1
|
||||
|
||||
#if defined(LT_CONFIG_H)
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_ARGZ_H) || !defined(HAVE_WORKING_ARGZ)
|
||||
/* Redefine any glibc symbols we reimplement to import the
|
||||
implementations into our lt__ namespace so we don't ever
|
||||
clash with the system library if our clients use argz_*
|
||||
from there in addition to libltdl. */
|
||||
# undef argz_append
|
||||
# define argz_append lt__argz_append
|
||||
# undef argz_create_sep
|
||||
# define argz_create_sep lt__argz_create_sep
|
||||
# undef argz_insert
|
||||
# define argz_insert lt__argz_insert
|
||||
# undef argz_next
|
||||
# define argz_next lt__argz_next
|
||||
# undef argz_stringify
|
||||
# define argz_stringify lt__argz_stringify
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <argz.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
# define slist_concat lt__slist_concat
|
||||
# define slist_cons lt__slist_cons
|
||||
# define slist_delete lt__slist_delete
|
||||
# define slist_remove lt__slist_remove
|
||||
# define slist_reverse lt__slist_reverse
|
||||
# define slist_sort lt__slist_sort
|
||||
# define slist_tail lt__slist_tail
|
||||
# define slist_nth lt__slist_nth
|
||||
# define slist_find lt__slist_find
|
||||
# define slist_length lt__slist_length
|
||||
# define slist_foreach lt__slist_foreach
|
||||
# define slist_box lt__slist_box
|
||||
# define slist_unbox lt__slist_unbox
|
||||
|
||||
#include <slist.h>
|
||||
|
||||
#endif /*!defined(LT__GLIBC_H)*/
|
149
stix/libltdl/libltdl/lt__private.h
Normal file
149
stix/libltdl/libltdl/lt__private.h
Normal file
@ -0,0 +1,149 @@
|
||||
/* lt__private.h -- internal apis for libltdl
|
||||
|
||||
Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy con be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#if !defined(LT__PRIVATE_H)
|
||||
#define LT__PRIVATE_H 1
|
||||
|
||||
#if defined(LT_CONFIG_H)
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#if defined(HAVE_UNISTD_H)
|
||||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
/* Import internal interfaces... */
|
||||
#include "lt__alloc.h"
|
||||
#include "lt__dirent.h"
|
||||
#include "lt__strl.h"
|
||||
#include "lt__glibc.h"
|
||||
|
||||
/* ...and all exported interfaces. */
|
||||
#include "ltdl.h"
|
||||
|
||||
#if defined(WITH_DMALLOC)
|
||||
# include <dmalloc.h>
|
||||
#endif
|
||||
|
||||
/* DLL building support on win32 hosts; mostly to workaround their
|
||||
ridiculous implementation of data symbol exporting. */
|
||||
#ifndef LT_GLOBAL_DATA
|
||||
# if defined(__WINDOWS__) || defined(__CYGWIN__)
|
||||
# if defined(DLL_EXPORT) /* defined by libtool (if required) */
|
||||
# define LT_GLOBAL_DATA __declspec(dllexport)
|
||||
# endif
|
||||
# endif
|
||||
# ifndef LT_GLOBAL_DATA
|
||||
# define LT_GLOBAL_DATA /* static linking or !__WINDOWS__ */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef __attribute__
|
||||
# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
|
||||
# define __attribute__(x)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef LT__UNUSED
|
||||
# define LT__UNUSED __attribute__ ((__unused__))
|
||||
#endif
|
||||
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
#if !defined(errno)
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
LT_SCOPE void lt__alloc_die_callback (void);
|
||||
|
||||
|
||||
/* For readability: */
|
||||
#define strneq(s1, s2) (strcmp((s1), (s2)) != 0)
|
||||
#define streq(s1, s2) (!strcmp((s1), (s2)))
|
||||
|
||||
|
||||
|
||||
/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */
|
||||
|
||||
/* This type is used for the array of interface data sets in each handler. */
|
||||
typedef struct {
|
||||
lt_dlinterface_id key;
|
||||
void * data;
|
||||
} lt_interface_data;
|
||||
|
||||
struct lt__handle {
|
||||
lt_dlhandle next;
|
||||
const lt_dlvtable * vtable; /* dlopening interface */
|
||||
lt_dlinfo info; /* user visible fields */
|
||||
int depcount; /* number of dependencies */
|
||||
lt_dlhandle * deplibs; /* dependencies */
|
||||
lt_module module; /* system module handle */
|
||||
void * system; /* system specific data */
|
||||
lt_interface_data * interface_data; /* per caller associated data */
|
||||
int flags; /* various boolean stats */
|
||||
};
|
||||
|
||||
struct lt__advise {
|
||||
unsigned int try_ext:1; /* try system library extensions. */
|
||||
unsigned int is_resident:1; /* module can't be unloaded. */
|
||||
unsigned int is_symglobal:1; /* module symbols can satisfy
|
||||
subsequently loaded modules. */
|
||||
unsigned int is_symlocal:1; /* module symbols are only available
|
||||
locally. */
|
||||
unsigned int try_preload_only:1;/* only preloaded modules will be tried. */
|
||||
};
|
||||
|
||||
/* --- ERROR HANDLING --- */
|
||||
|
||||
/* Extract the diagnostic strings from the error table macro in the same
|
||||
order as the enumerated indices in lt_error.h. */
|
||||
|
||||
#define LT__STRERROR(name) lt__error_string(LT_CONC(LT_ERROR_,name))
|
||||
|
||||
#define LT__GETERROR(lvalue) (lvalue) = lt__get_last_error()
|
||||
#define LT__SETERRORSTR(errormsg) lt__set_last_error(errormsg)
|
||||
#define LT__SETERROR(errorcode) LT__SETERRORSTR(LT__STRERROR(errorcode))
|
||||
|
||||
LT_SCOPE const char *lt__error_string (int errorcode);
|
||||
LT_SCOPE const char *lt__get_last_error (void);
|
||||
LT_SCOPE const char *lt__set_last_error (const char *errormsg);
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined(LT__PRIVATE_H)*/
|
53
stix/libltdl/libltdl/lt__strl.h
Normal file
53
stix/libltdl/libltdl/lt__strl.h
Normal file
@ -0,0 +1,53 @@
|
||||
/* lt__strl.h -- size-bounded string copying and concatenation
|
||||
|
||||
Copyright (C) 2004, 2006 Free Software Foundation, Inc.
|
||||
Written by Bob Friesenhahn, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined(LT__STRL_H)
|
||||
#define LT__STRL_H 1
|
||||
|
||||
#if defined(LT_CONFIG_H)
|
||||
# include LT_CONFIG_H
|
||||
#else
|
||||
# include <config.h>
|
||||
#endif
|
||||
|
||||
#include <string.h>
|
||||
#include "lt_system.h"
|
||||
|
||||
#if !defined(HAVE_STRLCAT)
|
||||
# define strlcat(dst,src,dstsize) lt_strlcat(dst,src,dstsize)
|
||||
LT_SCOPE size_t lt_strlcat(char *dst, const char *src, const size_t dstsize);
|
||||
#endif /* !defined(HAVE_STRLCAT) */
|
||||
|
||||
#if !defined(HAVE_STRLCPY)
|
||||
# define strlcpy(dst,src,dstsize) lt_strlcpy(dst,src,dstsize)
|
||||
LT_SCOPE size_t lt_strlcpy(char *dst, const char *src, const size_t dstsize);
|
||||
#endif /* !defined(HAVE_STRLCPY) */
|
||||
|
||||
#endif /*!defined(LT__STRL_H)*/
|
90
stix/libltdl/libltdl/lt_dlloader.h
Normal file
90
stix/libltdl/libltdl/lt_dlloader.h
Normal file
@ -0,0 +1,90 @@
|
||||
/* lt_dlloader.h -- dynamic library loader interface
|
||||
|
||||
Copyright (C) 2004, 2007, 2008 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined(LT_DLLOADER_H)
|
||||
#define LT_DLLOADER_H 1
|
||||
|
||||
#include <libltdl/lt_system.h>
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
typedef void * lt_dlloader;
|
||||
typedef void * lt_module;
|
||||
typedef void * lt_user_data;
|
||||
typedef struct lt__advise * lt_dladvise;
|
||||
|
||||
/* Function pointer types for module loader vtable entries: */
|
||||
typedef lt_module lt_module_open (lt_user_data data,
|
||||
const char *filename,
|
||||
lt_dladvise advise);
|
||||
typedef int lt_module_close (lt_user_data data,
|
||||
lt_module module);
|
||||
typedef void * lt_find_sym (lt_user_data data, lt_module module,
|
||||
const char *symbolname);
|
||||
typedef int lt_dlloader_init (lt_user_data data);
|
||||
typedef int lt_dlloader_exit (lt_user_data data);
|
||||
|
||||
/* Default priority is LT_DLLOADER_PREPEND if none is explicitly given. */
|
||||
typedef enum {
|
||||
LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND
|
||||
} lt_dlloader_priority;
|
||||
|
||||
/* This structure defines a module loader, as populated by the get_vtable
|
||||
entry point of each loader. */
|
||||
typedef struct {
|
||||
const char * name;
|
||||
const char * sym_prefix;
|
||||
lt_module_open * module_open;
|
||||
lt_module_close * module_close;
|
||||
lt_find_sym * find_sym;
|
||||
lt_dlloader_init * dlloader_init;
|
||||
lt_dlloader_exit * dlloader_exit;
|
||||
lt_user_data dlloader_data;
|
||||
lt_dlloader_priority priority;
|
||||
} lt_dlvtable;
|
||||
|
||||
LT_SCOPE int lt_dlloader_add (const lt_dlvtable *vtable);
|
||||
LT_SCOPE lt_dlloader lt_dlloader_next (const lt_dlloader loader);
|
||||
|
||||
LT_SCOPE lt_dlvtable * lt_dlloader_remove (const char *name);
|
||||
LT_SCOPE const lt_dlvtable *lt_dlloader_find (const char *name);
|
||||
LT_SCOPE const lt_dlvtable *lt_dlloader_get (lt_dlloader loader);
|
||||
|
||||
|
||||
/* Type of a function to get a loader's vtable: */
|
||||
typedef const lt_dlvtable *lt_get_vtable (lt_user_data data);
|
||||
|
||||
#ifdef LT_DEBUG_LOADERS
|
||||
LT_SCOPE void lt_dlloader_dump (void);
|
||||
#endif
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined(LT_DLLOADER_H)*/
|
85
stix/libltdl/libltdl/lt_error.h
Normal file
85
stix/libltdl/libltdl/lt_error.h
Normal file
@ -0,0 +1,85 @@
|
||||
/* lt_error.h -- error propogation interface
|
||||
|
||||
Copyright (C) 1999, 2000, 2001, 2004, 2007 Free Software Foundation, Inc.
|
||||
Written by Thomas Tanner, 1999
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* Only include this header file once. */
|
||||
#if !defined(LT_ERROR_H)
|
||||
#define LT_ERROR_H 1
|
||||
|
||||
#include <libltdl/lt_system.h>
|
||||
|
||||
LT_BEGIN_C_DECLS
|
||||
|
||||
/* Defining error strings alongside their symbolic names in a macro in
|
||||
this way allows us to expand the macro in different contexts with
|
||||
confidence that the enumeration of symbolic names will map correctly
|
||||
onto the table of error strings. \0 is appended to the strings to
|
||||
expilicitely initialize the string terminator. */
|
||||
#define lt_dlerror_table \
|
||||
LT_ERROR(UNKNOWN, "unknown error\0") \
|
||||
LT_ERROR(DLOPEN_NOT_SUPPORTED, "dlopen support not available\0") \
|
||||
LT_ERROR(INVALID_LOADER, "invalid loader\0") \
|
||||
LT_ERROR(INIT_LOADER, "loader initialization failed\0") \
|
||||
LT_ERROR(REMOVE_LOADER, "loader removal failed\0") \
|
||||
LT_ERROR(FILE_NOT_FOUND, "file not found\0") \
|
||||
LT_ERROR(DEPLIB_NOT_FOUND, "dependency library not found\0") \
|
||||
LT_ERROR(NO_SYMBOLS, "no symbols defined\0") \
|
||||
LT_ERROR(CANNOT_OPEN, "can't open the module\0") \
|
||||
LT_ERROR(CANNOT_CLOSE, "can't close the module\0") \
|
||||
LT_ERROR(SYMBOL_NOT_FOUND, "symbol not found\0") \
|
||||
LT_ERROR(NO_MEMORY, "not enough memory\0") \
|
||||
LT_ERROR(INVALID_HANDLE, "invalid module handle\0") \
|
||||
LT_ERROR(BUFFER_OVERFLOW, "internal buffer overflow\0") \
|
||||
LT_ERROR(INVALID_ERRORCODE, "invalid errorcode\0") \
|
||||
LT_ERROR(SHUTDOWN, "library already shutdown\0") \
|
||||
LT_ERROR(CLOSE_RESIDENT_MODULE, "can't close resident module\0") \
|
||||
LT_ERROR(INVALID_MUTEX_ARGS, "internal error (code withdrawn)\0")\
|
||||
LT_ERROR(INVALID_POSITION, "invalid search path insert position\0")\
|
||||
LT_ERROR(CONFLICTING_FLAGS, "symbol visibility can be global or local\0")
|
||||
|
||||
/* Enumerate the symbolic error names. */
|
||||
enum {
|
||||
#define LT_ERROR(name, diagnostic) LT_CONC(LT_ERROR_, name),
|
||||
lt_dlerror_table
|
||||
#undef LT_ERROR
|
||||
|
||||
LT_ERROR_MAX
|
||||
};
|
||||
|
||||
/* Should be max of the error string lengths above (plus one for C++) */
|
||||
#define LT_ERROR_LEN_MAX (41)
|
||||
|
||||
/* These functions are only useful from inside custom module loaders. */
|
||||
LT_SCOPE int lt_dladderror (const char *diagnostic);
|
||||
LT_SCOPE int lt_dlseterror (int errorcode);
|
||||
|
||||
|
||||
LT_END_C_DECLS
|
||||
|
||||
#endif /*!defined(LT_ERROR_H)*/
|
166
stix/libltdl/libltdl/lt_system.h
Normal file
166
stix/libltdl/libltdl/lt_system.h
Normal file
@ -0,0 +1,166 @@
|
||||
/* lt_system.h -- system portability abstraction layer
|
||||
|
||||
Copyright (C) 2004, 2007, 2010 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2004
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#if !defined(LT_SYSTEM_H)
|
||||
#define LT_SYSTEM_H 1
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
/* Some systems do not define EXIT_*, even with STDC_HEADERS. */
|
||||
#if !defined(EXIT_SUCCESS)
|
||||
# define EXIT_SUCCESS 0
|
||||
#endif
|
||||
#if !defined(EXIT_FAILURE)
|
||||
# define EXIT_FAILURE 1
|
||||
#endif
|
||||
|
||||
/* Just pick a big number... */
|
||||
#define LT_FILENAME_MAX 2048
|
||||
|
||||
|
||||
/* Saves on those hard to debug '\0' typos.... */
|
||||
#define LT_EOS_CHAR '\0'
|
||||
|
||||
/* LTDL_BEGIN_C_DECLS should be used at the beginning of your declarations,
|
||||
so that C++ compilers don't mangle their names. Use LTDL_END_C_DECLS at
|
||||
the end of C declarations. */
|
||||
#if defined(__cplusplus)
|
||||
# define LT_BEGIN_C_DECLS extern "C" {
|
||||
# define LT_END_C_DECLS }
|
||||
#else
|
||||
# define LT_BEGIN_C_DECLS /* empty */
|
||||
# define LT_END_C_DECLS /* empty */
|
||||
#endif
|
||||
|
||||
/* LT_STMT_START/END are used to create macros which expand to a
|
||||
a single compound statement in a portable way. */
|
||||
#if defined (__GNUC__) && !defined (__STRICT_ANSI__) && !defined (__cplusplus)
|
||||
# define LT_STMT_START (void)(
|
||||
# define LT_STMT_END )
|
||||
#else
|
||||
# if (defined (sun) || defined (__sun__))
|
||||
# define LT_STMT_START if (1)
|
||||
# define LT_STMT_END else (void)0
|
||||
# else
|
||||
# define LT_STMT_START do
|
||||
# define LT_STMT_END while (0)
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
|
||||
#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
|
||||
/* DATA imports from DLLs on WIN32 con't be const, because runtime
|
||||
relocations are performed -- see ld's documentation on pseudo-relocs. */
|
||||
# define LT_DLSYM_CONST
|
||||
#elif defined(__osf__)
|
||||
/* This system does not cope well with relocations in const data. */
|
||||
# define LT_DLSYM_CONST
|
||||
#else
|
||||
# define LT_DLSYM_CONST const
|
||||
#endif
|
||||
|
||||
/* Canonicalise Windows and Cygwin recognition macros.
|
||||
To match the values set by recent Cygwin compilers, make sure that if
|
||||
__CYGWIN__ is defined (after canonicalisation), __WINDOWS__ is NOT! */
|
||||
#if defined(__CYGWIN32__) && !defined(__CYGWIN__)
|
||||
# define __CYGWIN__ __CYGWIN32__
|
||||
#endif
|
||||
#if defined(__CYGWIN__)
|
||||
# if defined(__WINDOWS__)
|
||||
# undef __WINDOWS__
|
||||
# endif
|
||||
#elif defined(_WIN32)
|
||||
# define __WINDOWS__ _WIN32
|
||||
#elif defined(WIN32)
|
||||
# define __WINDOWS__ WIN32
|
||||
#endif
|
||||
#if defined(__CYGWIN__) && defined(__WINDOWS__)
|
||||
# undef __WINDOWS__
|
||||
#endif
|
||||
|
||||
|
||||
/* DLL building support on win32 hosts; mostly to workaround their
|
||||
ridiculous implementation of data symbol exporting. */
|
||||
#if !defined(LT_SCOPE)
|
||||
# if defined(__WINDOWS__) || defined(__CYGWIN__)
|
||||
# if defined(DLL_EXPORT) /* defined by libtool (if required) */
|
||||
# define LT_SCOPE extern __declspec(dllexport)
|
||||
# endif
|
||||
# if defined(LIBLTDL_DLL_IMPORT) /* define if linking with this dll */
|
||||
/* note: cygwin/mingw compilers can rely instead on auto-import */
|
||||
# define LT_SCOPE extern __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
# if !defined(LT_SCOPE) /* static linking or !__WINDOWS__ */
|
||||
# define LT_SCOPE extern
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
/* LT_DIRSEP_CHAR is accepted *in addition* to '/' as a directory
|
||||
separator when it is set. */
|
||||
# define LT_DIRSEP_CHAR '\\'
|
||||
# define LT_PATHSEP_CHAR ';'
|
||||
#else
|
||||
# define LT_PATHSEP_CHAR ':'
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) /* Visual Studio */
|
||||
# define R_OK 4
|
||||
#endif
|
||||
|
||||
/* fopen() mode flags for reading a text file */
|
||||
#undef LT_READTEXT_MODE
|
||||
#if defined(__WINDOWS__) || defined(__CYGWIN__)
|
||||
# define LT_READTEXT_MODE "rt"
|
||||
#else
|
||||
# define LT_READTEXT_MODE "r"
|
||||
#endif
|
||||
|
||||
/* The extra indirection to the LT__STR and LT__CONC macros is required so
|
||||
that if the arguments to LT_STR() (or LT_CONC()) are themselves macros,
|
||||
they will be expanded before being quoted. */
|
||||
#ifndef LT_STR
|
||||
# define LT__STR(arg) #arg
|
||||
# define LT_STR(arg) LT__STR(arg)
|
||||
#endif
|
||||
|
||||
#ifndef LT_CONC
|
||||
# define LT__CONC(a, b) a##b
|
||||
# define LT_CONC(a, b) LT__CONC(a, b)
|
||||
#endif
|
||||
#ifndef LT_CONC3
|
||||
# define LT__CONC3(a, b, c) a##b##c
|
||||
# define LT_CONC3(a, b, c) LT__CONC3(a, b, c)
|
||||
#endif
|
||||
|
||||
#endif /*!defined(LT_SYSTEM_H)*/
|
96
stix/libltdl/libltdl/slist.h
Normal file
96
stix/libltdl/libltdl/slist.h
Normal file
@ -0,0 +1,96 @@
|
||||
/* slist.h -- generalised singly linked lists
|
||||
|
||||
Copyright (C) 2000, 2004, 2009 Free Software Foundation, Inc.
|
||||
Written by Gary V. Vaughan, 2000
|
||||
|
||||
NOTE: The canonical source of this file is maintained with the
|
||||
GNU Libtool package. Report bugs to bug-libtool@gnu.org.
|
||||
|
||||
GNU Libltdl is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser 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 Lesser General Public License,
|
||||
if you distribute this file as part of a program or library that
|
||||
is built using GNU Libtool, you may include this file under the
|
||||
same distribution terms that you use for the rest of that program.
|
||||
|
||||
GNU Libltdl 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 Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with GNU Libltdl; see the file COPYING.LIB. If not, a
|
||||
copy can be downloaded from http://www.gnu.org/licenses/lgpl.html,
|
||||
or obtained by writing to the Free Software Foundation, Inc.,
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
/* A generalised list. This is deliberately transparent so that you
|
||||
can make the NEXT field of all your chained data structures first,
|
||||
and then cast them to `(SList *)' so that they can be manipulated
|
||||
by this API.
|
||||
|
||||
Alternatively, you can generate raw SList elements using slist_new(),
|
||||
and put the element data in the USERDATA field. Either way you
|
||||
get to manage the memory involved by yourself.
|
||||
*/
|
||||
|
||||
#if !defined(SLIST_H)
|
||||
#define SLIST_H 1
|
||||
|
||||
#if defined(LTDL)
|
||||
# include <libltdl/lt__glibc.h>
|
||||
# include <libltdl/lt_system.h>
|
||||
#else
|
||||
# define LT_SCOPE
|
||||
#endif
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct slist {
|
||||
struct slist *next; /* chain forward pointer*/
|
||||
const void *userdata; /* for boxed `SList' item */
|
||||
} SList;
|
||||
|
||||
typedef void * SListCallback (SList *item, void *userdata);
|
||||
typedef int SListCompare (const SList *item1, const SList *item2,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_concat (SList *head, SList *tail);
|
||||
LT_SCOPE SList *slist_cons (SList *item, SList *slist);
|
||||
|
||||
LT_SCOPE SList *slist_delete (SList *slist, void (*delete_fct) (void *item));
|
||||
LT_SCOPE SList *slist_remove (SList **phead, SListCallback *find,
|
||||
void *matchdata);
|
||||
LT_SCOPE SList *slist_reverse (SList *slist);
|
||||
LT_SCOPE SList *slist_sort (SList *slist, SListCompare *compare,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_tail (SList *slist);
|
||||
LT_SCOPE SList *slist_nth (SList *slist, size_t n);
|
||||
LT_SCOPE void * slist_find (SList *slist, SListCallback *find,
|
||||
void *matchdata);
|
||||
LT_SCOPE size_t slist_length (SList *slist);
|
||||
|
||||
LT_SCOPE void * slist_foreach (SList *slist, SListCallback *foreach,
|
||||
void *userdata);
|
||||
|
||||
LT_SCOPE SList *slist_box (const void *userdata);
|
||||
LT_SCOPE void * slist_unbox (SList *item);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(LTDL)
|
||||
# undef LT_SCOPE
|
||||
#endif
|
||||
|
||||
#endif /*!defined(SLIST_H)*/
|
Reference in New Issue
Block a user