What the enclave returns from CEE3PRM and CEE3PR2
CEE3PRM and CEE3PR2 return 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.
Language | Option | Suboption | system() | SVC LINK | FETCH/CALL of a PL/I main |
---|---|---|---|---|---|
C | #pragma runopts(PLIST) | HOST, 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) or TARGET(IMS) | Not available | Not available | Not allowed | ||
COBOL | N/A | N/A | Null | Not allowed | |
Fortran | N/A | Not available | 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 |
CICS, IMS, TSO | Not available | Not available | SYSTEM(CICS) not supported; others not available. | ||
Language Environment-conforming assembler | CEENTRY PLIST= | HOST, 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 2. The command-line equivalent depends on the language of your routine and the runtime options specified for it.
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) | user parms / runtime options |
CBLOPTS(OFF) | runtime options / user parms | |
Fortran | runtime options / user parms | |
PL/I | PROC OPTIONS(NOEXECOPS) or SYSTEM(CICS | IMS | TSO) is not specified. | runtime options / user parms |
PROC OPTIONS(NOEXECOPS) is specified, or NOEXECOPS is not specified but SYSTEM (CICS | IMS | TSO) is. See PL/I main procedure parameter passing considerations for more information on the SYSTEM compile option. | entire string is user parms | |
Language Environment-conforming assembler | CEENTRY EXECOPS=ON | runtime options / user parms |
CEENTRY EXECOPS=OFF | entire string is user parms |