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.