-- Words for dynmaic loading of code modules
Copyright (C) Tektronix, Inc. 1998 - 2001. All rights reserved.
description: This file exports a set of system words for dynamic loading of code modules.
FORTH
(LOADM)
( .. )();
as:"paren-loadm";
ordinary primitive (LOADM)
an executable word (no special usage info)
or wrapper call around p4_paren_loadm
FORTH
LOADM
( 'filename' -- )();
p4:"loadm";
dlmap the shared object (or share an already mapped object) and run the per-thread initialization code. This is the user-convenient function, otherwise use (LOADM)
simulate:
: LOADM BL WORD
((IS_MODULE_LOADED)) IF EXIT THEN
HERE (LOADM) 0= IF ." -- load failed: " HERE COUNT TYPE CR THEN ;
FORTH
LOCAL-DLSYM
( [symbolname] -- address )exec-only( | ); |
| ; |
lookup the symbol that follows and leave the address (or null)
FORTH
LOCAL-DLCALL
( .. )( | ); |
| ; |
immediate primitive LOCAL-DLCALL
an executable word (no special usage info)
or wrapper call around p4_local_dlcall
FORTH
DLSYM
( .. )();
as:"dlsym";
obsolete immediate DLSYM
is doing the same as LOCAL-DLSYM
This word should be replaced. It will be deleted in the near future. Instead use the (newer) synonym word given above.
FORTH
DLCALL
( .. )();
as:"dlcall";
obsolete immediate DLCALL
is doing the same as LOCAL-DLCALL
This word should be replaced. It will be deleted in the near future. Instead use the (newer) synonym word given above.
EXTENSIONS
CALL-C
( .. )();
as:"call-minus-c";
ordinary primitive CALL-C
an executable word (no special usage info)
or wrapper call around p4_call_c
EXTENSIONS
USELIBRARY
( .. )();
as:"uselibrary";
ordinary primitive USELIBRARY
an executable word (no special usage info)
or wrapper call around p4_uselibrary
EXTENSIONS
lt_dlinit
( -- ior )();
p4:"lt-dlinit";
initialiize library, usually open the program itself so that its handles can be found under "0"
EXTENSIONS
lt_dlopenext
( name-ptr,len -- handle-ptr|0 )( | ); |
| ; |
walk the searchpath for dlopen and try to open a binary module under the given name with the usual file extension for the current system.
EXTENSIONS
lt_dlsym
( name-ptr,len handle -- symbol-addr|0)( | ); |
| ; |
try to find the name in the binary module denoted by its handle .. if handle is null, use the main body of the program
EXTENSIONS
lt_dlclose
( handle -- ior )( | ); |
| ; |
close handle that was returned by lt_dlopenext
EXTENSIONS
lt_dlerror
( -- z-string* )( | ); |
| ; |
returns string describing the last dlerror as for lt_dlopenext and lt_dlsym