CELQPIPI(init_sub) — initialize for subroutines

The invocation of this routine:
  • Creates and initializes a new common runtime environment (process and enclave) that allows the execution of subroutines multiple times.
  • Sets the environment dormant so that exceptions are percolated out of it.
  • Returns a token identifying the environment to the caller.
  • Returns a code in Register 15 indicating whether an environment was successfully initialized.
  • Ensures that when the environment is dormant, it is immune to other Language Environment® enclaves that are created or terminated.
Read syntax diagramSkip visual syntax diagram CALL CEELQPIPI ( init_sub , ceexptbl_addr , service_rtns , runtime_opts , token )
init_sub (input)
A fullword function code (integer value = 3) containing the init_sub request.
ceexptbl_addr (input)
A doubleword containing the address of the PreInit table to be used during initialization of the new environment. Language Environment does not alter the user-supplied copy of the table. If an entry address is zero and the entry name is nonblank, Language Environment searches for the routine and dynamically loads it. Language Environment then places the entry address in the corresponding slot of Language Environment's copy of the PreInit table.
service_rtns (input)
A 64-bit pointer containing the address of the service routine vector or 0, if there is no service routine vector. See Service routines for more information.
runtime_opts (input)
A fixed-length 255-character string containing runtime options. The runtime options that you specify will apply to all of the subroutines that are called by the (call_sub) function. This includes options such as POSIX. Therefore, all of your subroutines must have the same characteristics and requirements needed for these runtime options.
token (output)
A doubleword containing a unique value used to represent the environment. The token should be used only as input to additional calls to CELQPIPI, and should not be altered or used in any other manner.