(init_main_dp) — initialize for main routines (multiple environment)

The invocation of this routine:
  • Creates and initializes a new common runtime environment (process) that allows the execution of main routines 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 the environment tolerates the existence of multiple Language Environment processes or enclaves.
Note: Multiple main environments can be established by using (init_main_dp), as opposed to using (init_main), which can establish only a single environment.
Read syntax diagramSkip visual syntax diagram
Syntax

>>-CALL--CEEPIPI--(--init_main_dp--,--ceexptbl_addr--,---------->

>--service_rtns--,--token--)-----------------------------------><

init_main_dp (input)
A fullword function code (integer value = 19) containing the (init_main_dp) request.
ceexptbl_addr (input)
A fullword containing the address of the PreInit table to be used during initialization of the new environment. A user-supplied copy of the table is not altered. If an entry address is zero and the entry name is non-blank, a search is performed for the routine (in the LPA, saved segment, or nucleus) and the routine is dynamically loaded. An entry is placed in the corresponding slot of a Language Environment-maintained table.

The high-order bit of the entry address determines what AMODE to use when calling the routine. If the entry address is zero, and the entry name is supplied, the AMODE returned by the system loader is used. If the entry address is supplied, you must provide the AMODE in the high-order bit of the address.

service_rtns (input)
A fullword containing the address of the service routine vector or 0, if there is no service routine vector. See Service routines for more information.
token (output)
A fullword containing a unique value used to represent the environment. The token should be used only as input to additional calls to CEEPIPI, and should not be altered or used in any other manner.