External interfaces

This topic describes the parameter lists and work areas used for the functions provided by the Language Environment® interface.

Language Environment interface parameter lists

The following tables show the layout and contents of the parameter lists for the functions provided by the Language Environment interface module CEECCICS.

Table 11. Language Environment PARTITION_INITIALIZATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"10" (= Partition initialization) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token Yes 8
6 EIBLEN Length of CICS® EIB F’word
7 TWALEN Thread work area length Yes F’word
8 CELLEVEL Language Environment-CICS interface level Yes F’word
9 GETCAA Get-CAA routine address 4
10 SETCAA Set-CAA routine address 4
11 LANGDEF Language modules defined 32
12 LANGBITS Language availability bits Yes F’word
Table 12. Language Environment ESTABLISH_OWNERSHIP_TYPE parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"50" (= Establish ownership type) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 reserved
7 reserved
8 PGMINFO1 CICS-Language Environment program information 48
9 PGMINFO2 Language Environment-CICS program information Yes 20
Table 13. Language Environment THREAD_INITIALIZATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"20" (= Thread initialization) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token Yes 8
7 PREATWA Address of preallocated thread work area 4
8 PGMINFO1 CICS-Language Environment program information 48
9 PGMINFO2 Language Environment-CICS program information 20
Table 14. Language Environment RUNUNIT_INITIALIZATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"30" (= Run-unit initialization) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token Yes 8
8 PGMINFO1 CICS-Language Environment program information 48
9 PGMINFO2 Language Environment-CICS program information 20
Table 15. Language Environment RUNUNIT_BEGIN_INVOCATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"32" (= Run-unit begin invocation) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token 8
8 PGMINFO1 CICS-Language Environment program information 48
9 PGMINFO2 Language Environment-CICS program information 20
10 IOINFO Input/output queue details 18
11 RSA RSA at last EXEC CICS command F’word
Table 16. Language Environment DETERMINE_WORKING_STORAGE parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"60" (= Determine working storage) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token 8
8 LANG Program language bits F’word
9 PGMRSA Register save area address 4
10 WSA Working storage address Yes 4
11 WSL Working storage length Yes F’word
12 SSA Static storage address (reserved) Yes 4
13 SSL Static storage length (reserved) Yes F’word
14 EP Program entry point Yes 4
Table 17. Language Environment PERFORM_GOTO parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"70" (= Perform GOTO) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token 8
8 LANG Program language bits F’word
9 LABEL Label argument at Handle F’word
10 RSA RSA at last EXEC CICS command F’word
11 CALLERR Cross call error flag Yes F’word
12 ABCODE Address of TACB abend code F’word
13 R13 Register 13 value at abend F’word
Table 18. Language Environment RUNUNIT_END_INVOCATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"33" (= Run-unit end invocation) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token 8
8 PGMINFO1 CICS-Language Environment program information 48
9 PGMINFO2 Language Environment-CICS program information 20
10 PTB Program termination block 64
11 RSA RSA at last EXEC CICS command F’word
Table 19. Language Environment RUNUNIT_TERMINATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"31" (= Run-unit termination) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token 8
7 RTOKEN Run-unit token Yes 8
Table 20. Language Environment THREAD_TERMINATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"21" (= Thread termination) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8
6 TTOKEN Thread token Yes 8
Table 21. Language Environment PARTITION_TERMINATION parameter list
No. Parameter name Description Receiver field Data length
1 FUNCTION F"11" (= Partition termination) F’word
2 RSNCODE Reason code Yes F’word
3 SYSEIB Address of system EIB 4
4 PREASA Preallocated save area 240
5 PTOKEN Language Environment partition token 8

Work areas

The following topics describe the work areas required during the lifetime of any task that includes one or more programs that use the Language Environment interface.

IOINFO

The IOINFO area, which is built by DFHAPLI in the CICS-Language Environment work area, is passed to Language Environment on a RUNUNIT_BEGIN_INVOCATION call.

CICS applications cannot use the SYSIN and SYSPRINT data streams because such usage would conflict with the way CICS handles I/O. However, an application may require a general input or output data stream in some situations, for example, where it is necessary to output a message to a program and the program has not been written to expect such output under normal operation.

Three such data streams are architected for this purpose: input, output (normal), and error output. The destinations must be either spools or queues. CICS uses queues, so the file type is always set to "Q". Table 22 shows the transient data queue names that are passed to Language Environment.

Table 22. Transient data queues for use by Language Environment
File type Language Environment queue name
Input CESI
Output CESO
Error output CESE

Each data stream is identified by a 6-byte control block, and the three control blocks are concatenated to form the IOINFO area, which CICS passes to Language Environment.

IOINFO has this format (in assembler-language code):

IOINFO   DS    0CL18    Input/output queue details
 
STD_IN   DS    0CL6     Standard input file
QORS_IN  DS    CL1      ..file type - "Q" = transient data
TDQ_IN   DS    CL4      ..queue name
SPO_IN   DS    CL1      ..spool class - not used
 
STD_OUT  DS    0CL6     Standard output file
QORS_OUT DS    CL1      ..file type - "Q" = transient data
TDQ_OUT  DS    CL4      ..queue name
SPO_OUT  DS    CL1      ..spool class - not used
 
STD_ERR  DS    0CL6     Standard error output file
QORS_ERR DS    CL1      ..file type - "Q" = transient data
TDQ_ERR  DS    CL4      ..queue name
SPO_ERR  DS    CL1      ..spool class - not used

PGMINFO1

The PGMINFO1 area, which is built by DFHAPLI in the CICS-Language Environment work area, is passed to Language Environment during these interface calls:

When both CICS and Language Environment are capable of supporting it, the separate calls to Language Environment for Rununit Initialisation and Rununit Begin Invocation are combined into a single call. This single call is a Rununit Initialisation call with additional parameters indicating

  1. make the combined call
  2. whether CICS believes the RUWA being passed has already been passed to Language Environment, and so need not be completely initialised by LE.

PGMINFO1 has this format (in assembler-language code):

PGMINFO1      DS    0F
P1_LENGTH     DS    F         Length of PGMINFO1
RULANG        DS    XL4       Language as defined by user
ASSEMBLER     EQU   X'80'     ..Assembler
C             EQU   X'40'     ..C
COBOL         EQU   X'20'     ..COBOL
PLI           EQU   X'10'     ..PL/I
LE370         EQU   X'04'     ..Language Environment
 
RULOADMOD     DS    0F
RULOADA       DS    A         Run-unit load module address
RULOADL       DS    F         Run-unit load module length
 
ENTRY_STATIC  DS    0F
RUENTRY       DS    A         Run-unit entry point address
RUSTATIC      DS    A         Modified entry address
RWA_31        DS    A         Address of run-unit storage
                                above 16MB
RWA_24        DS    A         Address of run-unit storage
                                below 16MB
APAL          DS    A         Application argument list
                                address
RTOPTS        DS    A         Run-time options
RTOPTSL       DS    F         Length of run-time options
RUNAMEP       DS    A         Pointer to the program name
PGMINFO1L     EQU   *-PGMINFO1

PGMINFO2

The PGMINFO2 area, which forms part of the PPT entry for the running program, is filled in by Language Environment on successful completion of an ESTABLISH_OWNERSHIP_TYPE call; and is subsequently passed by CICS to Language Environment during these interface calls:

PGMINFO2 has this format (in assembler-language code):

PGMINFO2   DS    0F
PRGINLEN   DS    FL4       Length of PGMINFO2 extension
PLBRWA31   DS    F         Length of 31-bit RUWA
PLBRWAA    EQU   X'80'     ..31-bit storage required (C/370)
PLBRWAL    DS    FL3       ..Length of 31-bit RUWA
PLBRWA24   DS    F         Length of 24-bit RUWA
 
PLBLANG    DS    0CL4      Language availability byte
PLBLANG1   DS    X
PLBCEEEN   EQU   X'80'     ..Language Environment
                               enabled
PLBCEELA   EQU   X'40'     ..Language Environment
                               language known
PLBMIXED   EQU   X'20'     ..Mixed/single language
PLBCOMPT   EQU   X'10'     ..Compatibility
PLBEXECU   EQU   X'08'     ..Language Environment
                               executable
PLBASSEM   EQU   X'04'     ..Assembler-language program
PLBC370    EQU   X'02'     ..C/370 program
PLBCOBL2   EQU   X'01'     ..VS COBOL II program
PLBLANG2   DS    X
PLBOSCOB   EQU   X'80'     ..OS/VS COBOL program
PLBPLI     EQU   X'40'     ..OS PLI program
PLBTYPE3   DS    X         Reserved
PLBTYPE4   DS    X         Reserved
PLBMEMID   DS    FL4       Language member ID
PLBED      EQU   *-PGMINFO2

Program termination block

The program termination block (PTB), which is built by DFHAPLI in the CICS-Language Environment work area, is passed to Language Environment on a RUNUNIT_END_INVOCATION call.

It has this format (in Assembler-language code):

CELINFO    DS    0F
PCHK       DS    0CL32     Abend information
           DS    CL8
PCHK_PSW   DS    CL8       ..PSW
PCHKINTS   DS    0CL8      ..Interrupt data
PCHK_LEN   DS    XL2       ....Instruction length
PCHK_INT   DS    XL2       ....Interrupt code
PCHK_ADR   DS    FL4       ..Exception address
PCHK_GR    DS    AL4       ..A(GP registers at abend)
PCHK_FR    DS    AL4       ..A(FP registers at abend)
PCHK_AR    DS    AL4       ..A(AX registers at abend)
PCHK_EX    DS    AL4       ..A(Registers at the last time
                               a CICS command was issued)
CNTCODE    DS    0CL4      Continuation code
CONT1      EQU   X'40'    ..retry using registers
CONT2      EQU   X'20'    ..retry using PSW
           DS    BL3      Reserved
RTRY       DS    0CL20
RTRY_AD    DS    FL4      ..Retry address
RTRY_PM    DS    AL4      ..A(Program mask)
RTRY_GR    DS    AL4      ..A(GP registers)
RTRY_FR    DS    AL4      ..A(FP registers)
RTRY_AR    DS    AL4      ..A(AX registers)
[[ Contents Previous Page | Next Page Index ]]