summaryrefslogtreecommitdiffstats
path: root/unix/tclLoadDld.c
diff options
context:
space:
mode:
Diffstat (limited to 'unix/tclLoadDld.c')
-rw-r--r--unix/tclLoadDld.c34
1 files changed, 23 insertions, 11 deletions
diff --git a/unix/tclLoadDld.c b/unix/tclLoadDld.c
index 99fee26..de0ab6d 100644
--- a/unix/tclLoadDld.c
+++ b/unix/tclLoadDld.c
@@ -12,7 +12,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclLoadDld.c,v 1.9 2002/07/17 20:00:46 vincentdarley Exp $
+ * RCS: @(#) $Id: tclLoadDld.c,v 1.10 2002/07/18 15:04:53 vincentdarley Exp $
*/
#include "tclInt.h"
@@ -30,17 +30,14 @@
/*
*----------------------------------------------------------------------
*
- * TclpLoadFile --
+ * TclpDlopen --
*
* Dynamically loads a binary code file into memory and returns
- * the addresses of two procedures within that file, if they
- * are defined.
+ * a handle to the new code.
*
* Results:
* A standard Tcl completion code. If an error occurs, an error
- * message is left in the interp's result. *proc1Ptr and *proc2Ptr
- * are filled in with the addresses of the symbols given by
- * *sym1 and *sym2, or NULL if those symbols can't be found.
+ * message is left in the interp's result.
*
* Side effects:
* New code suddenly appears in memory.
@@ -99,6 +96,21 @@ TclpDlopen(interp, pathPtr, loadHandle, unloadProcPtr)
return TCL_OK;
}
+/*
+ *----------------------------------------------------------------------
+ *
+ * TclpFindSymbol --
+ *
+ * Looks up a symbol, by name, through a handle associated with
+ * a previously loaded piece of code (shared library).
+ *
+ * Results:
+ * Returns a pointer to the function associated with 'symbol' if
+ * it is found. Otherwise returns NULL and may leave an error
+ * message in the interp's result.
+ *
+ *----------------------------------------------------------------------
+ */
Tcl_PackageInitProc*
TclpFindSymbol(interp, loadHandle, symbol)
Tcl_Interp *interp;
@@ -127,15 +139,15 @@ TclpFindSymbol(interp, loadHandle, symbol)
*/
void
-TclpUnloadFile(clientData)
- ClientData clientData; /* ClientData returned by a previous call
- * to TclpLoadFile(). The clientData is
+TclpUnloadFile(loadHandle)
+ TclLoadHandle loadHandle; /* loadHandle returned by a previous call
+ * to TclpDlopen(). The loadHandle is
* a token that represents the loaded
* file. */
{
char *fileName;
- handle = (char *) clientData;
+ handle = (char *) loadHandle;
dld_unlink_by_file(handle, 0);
ckfree(handle);
}