What the enclave returns from CEE3PRM

CEE3PRM returns to the calling routine the user parameter string that was specified at program invocation. Only program arguments are returned.

See Table 1 to determine whether a user parameter string was passed to your routine, and where the user parameter string is found. This depends on the method you used to create the child enclave, the language of the routine in the child enclave, and the PLIST, TARGET, or SYSTEM setting of the main routine in the child enclave. If a user parameter string was passed to your routine, the user parameter string is extracted from the command-line equivalent for your routine (shown in Table 2) and returned to you.

Note: Under CICS®, CEE3PRM always returns a blank string.
Table 1. Determining the command-line equivalent
Language Option Suboption system() on MVS™ SVC LINK on MVS Fetch/call of a PL/I main
C #pragma runopts(PLIST) HOST, CMS, MVS PARM =, or the parameter string from the command string passed to system() Halfword length-prefixed string pointed to by R1 Not allowed
CICS,IMS,OS, or TSO Not available Not available Not allowed
C++ PLIST and TARGET compiler options Default PARM =, or the parameter string from the command string passed to system() Halfword length-prefixed string pointed to by R1 Not allowed
PLIST(OS) and/or TARGET(IMS™) Not available Not available Not allowed
COBOL   Null Null Not allowed
Fortran   PARM =, or the parameter string from the command string passed to system() Halfword length-prefixed string pointed to by R1 Not allowed
PL/I SYSTEM compiler option MVS PARM = or the parameter string from the command string passed to system() Halfword length-prefixed string pointed to by R1 User parameters passed through CALL
CMS Abend 4093-16 Abend 4093-16 User parameters passed through CALL
CICS, CMSTPL, IMS, TSO Not available Not available SYSTEM(CICS) not supported. Others not available.
Language Environment- conforming assembler CEENTRY PLIST= HOST, CMS, MVS PARM = or the parameter string from the command string passed to system() Halfword length-prefixed string pointed to by R1 Not allowed
CICS, IMS, OS, or TSO Not available Not available Not allowed

If Table 1 indicates that a parameter string was passed to your routine at invocation, the string is extracted from the command-line equivalent listed in the right-hand column of Table 77. The command-line equivalent depends on the language of your routine and the runtime options specified for it.

Table 2. Determining the order of runtime options and program arguments
Language of routine Runtime options in effect? Order of runtime options and program arguments
C #pragma runopts(EXECOPS) runtime options / user parms
#pragma runopts(NOEXECOPS) entire string is user parms
C++ Compiled with EXECOPS (default) runtime options / user parms
Compiled with NOEXECOPS entire string is user parms
COBOL CBLOPTS(ON) runtime options / user parms
CBLOPTS(OFF) user parms / runtime options
Fortran   runtime options / user parms
PL/I Neither PROC OPTIONS(NOEXECOPS) nor SYSTEM(CICS | IMS | TSO) is specified. runtime options / user parms
Either PROC OPTIONS(NOEXECOPS) is specified, or NOEXECOPS is not specified but SYSTEM (CICS | IMS | TSO) is. entire string is user parms
Language Environment-conforming assembler CEENTRY EXECOPS=ON runtime options / user parms
CEENTRY EXECOPS=OFF entire string is user parms