#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 i5/OS PASE program. See i5/OS PASE for more information about creating i5/OS PASE 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 QleGetExpLong()--Get Export Long 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 i5/OS exception message that the system converts to an i5/OS PASE signal (not return code and errno values). See i5/OS PASE Signal Handling for information about handling i5/OS exceptions.
At least these errno values can be returned, with other values also possible (such as i5/OS-unique ILE errno EAPAR):
[EACCES] | Not authorized to the actmark activation. |
[ENOENT] | The symbol was not found in the actmark activation. |
Top | i5/OS PASE APIs | APIs by category |