summaryrefslogtreecommitdiffstats
path: root/compat/dlfcn.h
diff options
context:
space:
mode:
Diffstat (limited to 'compat/dlfcn.h')
-rw-r--r--compat/dlfcn.h65
1 files changed, 65 insertions, 0 deletions
diff --git a/compat/dlfcn.h b/compat/dlfcn.h
new file mode 100644
index 0000000..cf02fb9
--- /dev/null
+++ b/compat/dlfcn.h
@@ -0,0 +1,65 @@
+/*
+ * dlfcn.h --
+ *
+ * This file provides a replacement for the header file "dlfcn.h"
+ * on systems where dlfcn.h is missing. It's primary use is for
+ * AIX, where Tcl emulates the dl library.
+ *
+ * This file is subject to the following copyright notice, which is
+ * different from the notice used elsewhere in Tcl but rougly
+ * equivalent in meaning.
+ *
+ * Copyright (c) 1992,1993,1995,1996, Jens-Uwe Mager, Helios Software GmbH
+ * Not derived from licensed software.
+ *
+ * Permission is granted to freely use, copy, modify, and redistribute
+ * this software, provided that the author is not construed to be liable
+ * for any results of using the software, alterations are clearly marked
+ * as such, and this notice is not modified.
+ *
+ * SCCS: @(#) dlfcn.h 1.4 96/09/17 09:05:59
+ */
+
+/*
+ * @(#)dlfcn.h 1.4 revision of 95/04/25 09:36:52
+ * This is an unpublished work copyright (c) 1992 HELIOS Software GmbH
+ * 30159 Hannover, Germany
+ */
+
+#ifndef __dlfcn_h__
+#define __dlfcn_h__
+
+#ifndef _TCL
+#include <tcl.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Mode flags for the dlopen routine.
+ */
+#define RTLD_LAZY 1 /* lazy function call binding */
+#define RTLD_NOW 2 /* immediate function call binding */
+#define RTLD_GLOBAL 0x100 /* allow symbols to be global */
+
+/*
+ * To be able to intialize, a library may provide a dl_info structure
+ * that contains functions to be called to initialize and terminate.
+ */
+struct dl_info {
+ void (*init) _ANSI_ARGS_((void));
+ void (*fini) _ANSI_ARGS_((void));
+};
+
+VOID *dlopen _ANSI_ARGS_((const char *path, int mode));
+VOID *dlsym _ANSI_ARGS_((void *handle, const char *symbol));
+char *dlerror _ANSI_ARGS_((void));
+int dlclose _ANSI_ARGS_((void *handle));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __dlfcn_h__ */