Determine working storage and static storage

In order for CICS® Execution Diagnostic Facility (EDF) to be able to display the program's working storage (DSA stack) and static storage, CICS makes the determine working storage address call to the Language Environment-CICS interface module. Through the program register save area (pgmrsa) argument passed by CICS, Language Environment examines the program entry point (R15 saved in the caller's DSA) to determine if the program is a Language Environment-enabled program. If so, the member ID of the program's language is remembered. Otherwise, the member ID is determined through the lang argument passed by CICS.

In either case (Language Environment-enabled or not), the member-specific interface routine associated with the member ID is called to provide the working storage address (most probably same as the pgmrsa) and the static storage address and their length. This is because the working storage address could potentially be different than the DSA (as in COBOL) and the static storage could potentially be separate from the program load module.

Syntax

Call CEECCICS (60, rsncode, syseib, preasa, ptoken, ttoken, rtoken, lang, pgmrsa, wsa, wsl, ssa, ssl, pgmep) Retcode (rc)

rsncode (output)
A fullword integer that contains one of the following Language Environment reason codes:
16000
Invalid parameter was passed
16030
Language-specific determine working storage address failed
16040
Working storage address and length was not determined
syseib
The system EXEC interface block, as defined by CICS for use by Language Environment and language-specific interface routines. The system EIB address is above 16M.
preasa
A preallocated save area passed to Language Environment by CICS. The size of this save area is 248 bytes.
ptoken
A doubleword value containing the Language Environment partition token established at partition initialization.
ttoken
A doubleword value containing the Language Environment thread token established at thread initialization.
rtoken
A doubleword value containing the Language Environment run unit token established at run unit initialization.
lang
A fullword value identifying the language of the program which issued a CICS command. Bit definitions are shown in Figure 1.
Figure 1. Lang bit definition for CEECICS (60)
  DCL 1 LANG,                           /* Language of program issuing */
                                        /* HANDLE CONDITION or AID cmd */
        2 ASSEMBLER    BIT(1),          /* LANG=ASSEMBLER              */
        2 C370         BIT(1),          /* LANG=C/370                  */
        2 COBOL        BIT(1),          /* LANG=COBOL II               */
        2 PLI          BIT(1),          /* LANG=PL/I                   */
        2 RPG          BIT(1),          /* LANG=RPG                    */
        2 NOTAPPLIC    BIT(1),          /* LANG=NOTAPPLIC or blank     */
        3 *            BIT(26),         /* Reserved                    */
pgmrsa
A fullword value containing the address of the register save area (DSA) of the program which is issuing the CICS command.
wsa (output)
A fullword value to contain the working storage address (DSA) of the program issuing the command.
wsl (output)
A fullword value to contain the length of the working storage of the program issuing the command (DSA length).
ssa (output)
A fullword value to contain the static storage address of the program issuing the command.
ssl (output)
A fullword value to contain the length of the static storage of the program issuing the command.
pgmep
A fullword value to contain the address of the program entry point of the program that is issuing the CICS command.