This invocation of CEEPIPI invokes as a subroutine the routine
that you specify. The common run-time environment identified by token is activated
before the called routine is invoked, and after the called routine
returns, the environment is dormant.
The enclave is terminated when an unhandled condition is encountered
or a STOP statement is executed. (See Stop semantics for more
information.) However, the process level
is maintained. The next call to (call_sub) initializes a new enclave.
Syntax
>>-CALL--CEEPIPI--(--call_sub--,--ceexptl_index--,--token--,---->
>--parm_ptr--,--sub_ret_code--,--sub_reason_code--,------------->
>--sub_feedback_code--)----------------------------------------><
- call_sub (input)
- A fullword function code (integer value = 4) containing the
call_sub request for a subroutine.
- ceexptbl_index (input)
- A fullword containing the row number of the entry within the
PreInit table that should be invoked; the
index starts at 0.
Note: If the token pointing to the previously
preinitialized environment is a non-XPLINK environment and the subprogram
to be invoked is XPLINK, then a Return Code of 40 will be returned
because this is not valid.
- token (input)
- A fullword with the value of the token returned when the common run-time environment is
initialized. This token is initialized by the (init_sub) or (init_sub_dp).
The token must identify a previously preinitialized environment
that is not active at the time of the call. You must not alter the
value of the token.
Note: If
the token pointing to the previously preinitialized environment is
a non-XPLINK environment and the subprogram to be invoked is XPLINK a
Return Code of 40 will be returned because this is not valid.
- parm_ptr (input)
- A parameter list pointer or 0 (zero) that is placed in register
1 when the routine is executed.
C and C++ users need to follow
the subroutine linkage convention for C/C++ — assembler ILC
applications, as described in z/OS XL C/C++ Programming Guide.
- sub_ret_code (output)
- The subroutine return code. If the enclave
is terminated due to an unhandled condition, a STOP statement, or
EXIT statement (or an exit() function), this contains the enclave
return code for termination.
- sub_reason_code (output)
- The subroutine reason code. This is 0 for normal subroutine
returns. If the enclave is terminated due to an unhandled condition,
a STOP statement, or EXIT statement (or an exit() function), this
contains the enclave reason code for termination.
- sub_feedback_code (output)
- The feedback code for enclave termination. This is the CEE000
feedback code for normal subroutine returns. If the enclave is terminated
due to an unhandled condition, a STOP statement, or EXIT statement
(or an exit() function), this contains
the enclave feedback code for termination.