ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/pase__ilesym.htm

193 lines
5.7 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>_ILESYMX()--Find an Exported ILE Symbol for i5/OS PASE</title>
<!-- Begin Header Records -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--Edited by Kersten Jan 2002 -->
<!-- Created by V2DCIJB on 23 Nov 1999 -->
<!-- End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<!-- Java sync-link -->
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
</script>
<a name="Top_Of_Page"></a>
<h2>_ILESYMX()--Find an Exported ILE Symbol for i5/OS PASE</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;Syntax
<pre>
#include &lt;as400_protos.h&gt;
int _ILESYMX(ILEpointer *export,
unsigned long long actmark,
const char *symbol);
int _ILESYM(ILEpointer *export,
int actmark,
const char *symbol);
</pre>
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Library: Standard C Library (libc.a)<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: Yes<br>
<!-- iddvc RMBR -->
<br>
</div>
<p><strong>Note:</strong> These functions can only be used in an i5/OS PASE
program. See <a href="../rzalf/rzalfintro.htm">i5/OS PASE</a> for more
information about creating i5/OS PASE programs.</p>
<p>The <strong>_ILESYMX()</strong> and <strong>_ILESYM()</strong> 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.</p>
<br>
<h3>Parameters</h3>
<dl>
<dt><strong>export</strong></dt>
<dd>(Output) Pointer to a 16-byte aligned buffer for the tagged pointer return
value. The export buffer used to store a tagged pointer to the data or
procedure for the exported symbol.<br><br></dd>
<dt><strong>actmark</strong></dt>
<dd>(Input) Specifies an activation mark that identifies the activation (in the
current i5/OS job) to search for the symbol. A value of zero causes the system
to search all activations in the activation group that started i5/OS PASE
(either the activation group that called the <strong>Qp2RunPase</strong> API,
or the default activation group for a job running program
<strong>QP2FORK</strong>). The <strong>_ILELOADX</strong> and <strong>_ILELOAD</strong>
functions return an
activation mark when they load a bound program.
64-bit activation mark values can only be handled by <strong>_ILESYMX</strong>
and <strong>_ILELOADX</strong>.<br>
<br>
</dd>
<dt><strong>symbol</strong></dt>
<dd>(Input) Pointer to the symbol name to find. symbol is the address of a
null-terminated character string in the i5/OS PASE CCSID that specifies the
name of a symbol exported by the actmark activation.</dd>
</dl>
<br>
<h3>Authorities</h3>
<p><strong>_ILESYMX</strong> and <strong>_ILESYM</strong> call the ILE <strong>QleGetExpLong</strong> API to
find the exported symbol. See <a href="qlegetexpl.htm">QleGetExpLong()--Get
Export Long</a> for information about authorities required to use _ILESYMX and _ILESYM.</p>
<br>
<h3>Return Value</h3>
<p>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:</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<td align="left" valign="top" nowrap><em>ILESYM_PROCEDURE (1)</em> </td>
<td align="left" valign="top">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.</td>
</tr>
<tr>
<td align="left" valign="top"><em>ILESYM_DATA(2)</em> </td>
<td align="left" valign="top">The export return value is a tagged space pointer to a data
item in the ILE activation.</td>
</tr>
</table>
<br>
<br>
<h3>Error Conditions</h3>
<p>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 <a href=
"pase_signals.htm">i5/OS PASE Signal Handling</a> for information about
handling i5/OS exceptions.</p>
<p>At least these errno values can be returned, with other values also possible
(such as i5/OS-unique ILE errno EAPAR):</p>
<table cellpadding="5">
<!-- cols="25 75" -->
<tr>
<td align="left" valign="top"><em>[EACCES]</em></td>
<td align="left" valign="top">Not authorized to the actmark activation.</td>
</tr>
<tr>
<td align="left" valign="top"><em>[ENOENT]</em></td>
<td align="left" valign="top">The symbol was not found in the actmark
activation.</td>
</tr>
</table>
<br>
<br>
<h3>Related Information</h3>
<ul>
<li><a href="pase__ileload.htm">_ILELOADX()--Load an ILE Bound Program for
i5/OS PASE</a></li>
<li><a href="pase__ilecall.htm">_ILECALLX()--Call an ILE Procedure for i5/OS
PASE</a></li>
</ul>
<hr>
API introduced: V4R5
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
"pase1.htm">i5/OS PASE APIs</a> | <a href="aplist.htm">APIs by category</a>
</td>
</tr>
</table>
</center>
</body>
</html>