]> git.ipfire.org Git - thirdparty/libtool.git/commitdiff
* libltdl/lt_dlloader.h: Forgot to cvs add this file earlier.
authorGary V. Vaughan <gary@gnu.org>
Wed, 14 Apr 2004 10:27:11 +0000 (10:27 +0000)
committerGary V. Vaughan <gary@gnu.org>
Wed, 14 Apr 2004 10:27:11 +0000 (10:27 +0000)
libltdl/lt_dlloader.h [new file with mode: 0644]

diff --git a/libltdl/lt_dlloader.h b/libltdl/lt_dlloader.h
new file mode 100644 (file)
index 0000000..8c1dda5
--- /dev/null
@@ -0,0 +1,71 @@
+/* lt_dlloader.h -- dynamic library loader interface
+   Copyright (C) 2004 Free Software Foundation, Inc.
+   Originally by Gary V. Vaughan  <gary@gnu.org>
+
+   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 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
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser 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
+
+*/
+
+#if !defined(LT_DLLOADER_H)
+#define LT_DLLOADER_H 1
+
+#include <libltdl/lt_system.h>
+
+LT_BEGIN_C_DECLS
+
+typedef        struct lt_dlloader      lt_dlloader;
+typedef void *                 lt_user_data;
+typedef void *                 lt_module;
+
+/* Function pointer types for creating user defined module loaders. */
+typedef lt_module   lt_module_open     (lt_user_data loader_data,
+                                        const char *filename);
+typedef int        lt_module_close     (lt_user_data loader_data,
+                                        lt_module handle);
+typedef void *     lt_find_sym         (lt_user_data loader_data,
+                                        lt_module handle, const char *symbol);
+typedef int        lt_dlloader_exit    (lt_user_data loader_data);
+
+struct lt_user_dlloader {
+  const char          *sym_prefix;
+  lt_module_open       *module_open;
+  lt_module_close      *module_close;
+  lt_find_sym         *find_sym;
+  lt_dlloader_exit     *dlloader_exit;
+  lt_user_data         dlloader_data;
+};
+
+LT_SCOPE lt_dlloader    *lt_dlloader_next    (lt_dlloader *place);
+LT_SCOPE lt_dlloader    *lt_dlloader_find    (const char *loader_name);
+LT_SCOPE const char     *lt_dlloader_name    (lt_dlloader *place);
+LT_SCOPE lt_user_data   *lt_dlloader_data    (lt_dlloader *place);
+LT_SCOPE int           lt_dlloader_add     (lt_dlloader *place,
+                               const struct lt_user_dlloader *dlloader,
+                               const char *loader_name);
+LT_SCOPE int           lt_dlloader_remove  (const char *loader_name);
+
+
+LT_END_C_DECLS
+
+#endif /*!defined(LT_DLLOADER_H)*/