This invocation of CELQPIPI invokes as a subroutine the routine
that you specify. The environment is not reinitialized.
Syntax
>>-CALL--CELQPIPI--(--call_sub--,--ceexptl_index--,--token--,--->
>--parm_ptr--,--sub_return_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 doubleword containing the row number of the entry within the
PreInit table that should be invoked; the index starts at 0.
- token (input)
- A doubleword with the value of the token returned when the common run-time environment
is initialized. This token is initialized by the (init_sub). The token must identify a previously preinitialized environment that is
not active at the time of the call.
- parm_ptr (input)
- A doubleword containing the address of the parameter list or
0 (zero). The parameter list is copied to the appropriate location
in the stack frame and general purpose registers 1, 2 and 3 are loaded
from the parameter list when the routine is executed.
The length
of the parameter list is determined from PPAs of the routine. If the
routine takes a variable length parameter list, the length of the
parameter list will be assumed to be 256 bytes
Floating point
and complex values can only be passed by reference.
- sub_ret_code (output)
- A fullword containing the subroutine return code. When a PreInit
call_sub ends normally, the sub_ret_code is set with the value of
R15 returned from the subroutine. If the enclave is terminated due
to an error or due to the routine explicitly invoking a language-specific
service that causes a stop or exit semantic, this contains the enclave
return code for termination.
- sub_reason_code (output)
- A fullword containing the subroutine reason code. This is 0
for normal subroutine returns. If the enclave is terminated due to
an error or due to the routine explicitly invoking a language-specific
service that causes a stop or exit semantic, this contains the enclave
reason code for termination.
- sub_feedback_code (output)
- A 16-byte field containing the feedback code for enclave termination.
This is the CEE000 feedback code for normal subroutine returns. If
the enclave is terminated due to an error or due to the routine explicitly
invoking a language-specific service that causes a stop or exit semantic,
this contains the enclave feedback code for termination.