LEPIPI Function

The LEPIPI function can be used to call LE routines from non-LE programs. When it receives the first LEPIPI call from a given application, Com-plete uses LE preinitialization services (CEEPIPI init_sub_dp) to initialize a HLL environment. This environment is then maintained for subsequent calls, until a termination call is received, or the application terminates.

The routines being called must match the requirements defined by the IBM Language Environment. Both main routines and subroutines are supported.

Runtime options for IBM Language Environment modules invoked using this function can be specified with the LEPIPI-RUNTIME-OPTS sysparm.

Format

The format for the LEPIPI function is:

LEPIPI (retcode, module, plist, return_vector)
retcode A fullword where Com-plete places the return code from CEEPIPI call_sub_addr (or term). The value is also returned in R15.
module A character string of length 8, left-justified and padded right with blanks, containing the name of the LE routine to be called. The routine must match the requirements defined by the IBM Language Environment. Both main routines and subroutines are supported.
A NULL pointer in this parameter is treated as a request to terminate the PIPI environment.
plist The (direct) address of a parameter list to be passed to the LE routine.
return_vector The address of 5 consecutive fullwords where LE places:
  • the 4 byte enclave or subroutine return code,

  • the 4 byte enclave or subroutine reason code,

  • the 12 byte enclave feedback code.

Return codes

Com-plete passes back the return code from CEEPIPI call_sub_addr (or term). In addition to those, a return code of 20 (dec) is used to indicate a “module not found” condition.