#include <as400_protos.h> int _ILESYMX(ILEpointer *export, unsigned long long actmark, const char *symbol); int _ILESYM(ILEpointer *export, int actmark, const char *symbol);
Note: These functions can only be used in an IBM® i PASE program. See the IBM PASE for i topic collection for more information about creating IBM PASE for i programs.
The _ILESYMX() and _ILESYM() functions find an exported symbol in the activation of an ILE bound program and return a 16-byte tagged pointer to the data or procedure for the symbol.
_ILESYMX and _ILESYM call the ILE QleGetExpLong API to find the exported symbol. See Get Export Long (QleGetExpLong) API for information about authorities required to use _ILESYMX and _ILESYM.
A function result of -1 indicates an error that is further qualified by an errno value. If the symbol was successfully found, the export pointer is set to the address of the function or data for the symbol, and the function result is set to one of these values:
ILESYM_PROCEDURE (1) | The export return value is a tagged pointer to an ILE procedure. An ILE procedure pointer can be used with the _ILECALLX function to call the ILE procedure. |
ILESYM_DATA(2) | The export return value is a tagged space pointer to a data item in the ILE activation. |
Memory errors and errors during ILE symbol resolution processing may be reported with an IBM i exception message that the system converts to an IBM PASE for i signal (not return code and errno values). See IBM PASE for i Signal Handling for information about handling IBM i exceptions.
At least these errno values can be returned, with other values also possible (such as IBM i-unique ILE errno EAPAR):
[EACCES] | Not authorized to the actmark activation. |
[ENOENT] | The symbol was not found in the actmark activation. |