DFHUEPAR standard parameters

The DFHUEPAR standard parameters are passed to all global user exit programs.

DFHUEPAR DSECT

 
DFHUEPAR DSECT
*  STANDARD PARAMETERS
UEPEXN   DS    A      ADDRESS OF EXIT NUMBER
UEPGAA   DS    A      ADDRESS OF GLOBAL WORK AREA
*                      (ZERO = NO WORK AREA)
UEPGAL   DS    A      ADDRESS OF GLOBAL WORK AREA LENGTH
UEPCRCA  DS    A      ADDRESS OF CURRENT RETURN-CODE
UEPTCA   DS    A      RESERVED
UEPCSA   DS    A      RESERVED
UEPEPSA  DS    A      ADDRESS OF REGISTER SAVE AREA
*                      FOR USE BY EXIT PROGRAM
UEPHMSA  DS    A      ADDRESS OF SAVE AREA USED FOR
*                      HOST MODULE'S REGISTERS
UEPGIND  DS    A      ADDRESS OF CALLER'S TASK INDICATORS
UEPSTACK DS    A      ADDRESS OF KERNEL STACK ENTRY
UEPXSTOR DS    A      ADDRESS OF STORAGE FOR XPI PARAMETERS
UEPTRACE DS    A      ADDRESS OF TRACE FLAG

Parameters

UEPEXN
Points to a 1-byte binary field, the contents of which identify the global user exit point from which the exit program is called. You require this information if your exit program can be called from more than one exit point.

DFHUEXIT TYPE=EP generates a list of equated values that relate the exit names (exitids) to the exit numbers used internally by CICS® to identify the exits. Always use the exitids, because the exit numbers might change in any future releases of CICS.

UEPGAA
Points to the global work area that was provided for the exit program when it was enabled. This parameter is set to zero if no global work area is provided.
UEPGAL
Points to a halfword that contains the length of the global work area.
UEPCRCA
Points to a halfword that is to contain the return code value from the exit program. When more than one program is called at a user exit, this field contains (on entry to the second and subsequent programs) the return code that was set by the previously called program.

For an example of how an exit program can set a different return code from that returned by a previous exit program at the same exit point, see the code snippet in Invoking more than one exit program at a single exit.

UEPTCA
Points to fetch-protect storage. Use of this field results in an abend ASRD at run time.
UEPCSA
Points to fetch-protect storage. Use of this field results in an abend ASRD at run time.
UEPEPSA
Points to a save area in which the exit program stores its own registers on entry. When the exit program is entered, register 13 also points to this area. The convention is to save registers 14, 15, and 0 - 12 at offset 12 (decimal) onward.
UEPHMSA
Points to the save area containing the registers of the calling module. Values for registers 14, 15, and 0 - 13 are stored in this order from offset 12 (decimal) in this area.

Apart from register 15, which contains the return code value from the exit program, the values in this save area are used by CICS to reload the registers when returning to the calling CICS module. They must not be corrupted.

This address is not passed to global user exit programs called from exit points in CICS domains.

UEPGIND
Points to a 3-byte field containing indicators for use in AP domain user exits. For non-AP domain user exits, the indicators are always zero.
The first indicator byte can take one of two symbolic values, UEPGANY and UEPGCICS. You can test these values to determine whether data locations can be above or below 16 MB, and whether the application storage is in CICS-key or user-key storage:
UEPGANY
The application can accept addresses above 16 MB. If the symbolic value is not UEPGANY, the application can accept an address only below 16 MB.
UEPGCICS
The application working storage and the task-lifetime storage are in CICS-key storage (TASKDATAKEY=CICS). If the symbolic value is not UEPGCICS, the application working storage and the task-lifetime storage are in user-key storage (TASKDATAKEY=USER).

The second and third bytes contain a value indicating the TCB mode of the caller of the global user exit program. This value is represented in DFHUEPAR as both a 2-character code and a symbolic value, as follows:

Table 1. TCB indicators in DFHUEPAR
Symbolic value 2-byte code Description
UEPTQR QR The quasi-reentrant mode TCB
UEPTRO RO The resource-owning mode TCB
UEPTCO CO The concurrent mode TCB
UEPTSZ SZ The FEPI mode TCB
UEPTRP RP The ONC/RPC mode TCB
UEPTFO FO The file-owning mode TCB
UEPTSL SL The sockets listener mode TCB
UEPTSO SO The sockets mode TCB
UEPTS8 S8 The secure sockets layer mode TCB
UEPTD2 D2 The CICS Db2® housekeeping mode TCB
UEPTL8 L8 An L8 open TCB, used for OPENAPI TRUEs, or OPENAPI programs that are in CICS key
UEPTL9 L9 An L9 open TCB, used for OPENAPI programs that are in user key
UEPTEP EP Event processing TCB
UEPTTP TP The TP open TCB, used to own the Language Environment® enclave and THRD TCB pool for a JVM server.
UEPTT8 T8 A T8 TCB, used by a JVM server to process multithreaded processing.
UEPTX8 X8 An X8 open TCB, used for C® and C++ programs, compiled with the XPLINK option, that are in CICS key
UEPTX9 X9 An X9 open TCB, used for C and C++ programs, compiled with the XPLINK option, that are in user key
UEPSTACK
Points to the kernel stack entry. This value must be moved to register 13 of the exit program before calling the XPI. The storage addressed by this field must not be altered. If it is corrupted, your exit program will have unpredictable effects on your CICS system.
UEPXSTOR
Points to a 1024-byte area of DFHUEH-owned LIFO storage that the exit program uses when calling the XPI.
6.3 beta An additional 256 bytes of LIFO storage is available for the parameter lists for XPI services.
UEPTRACE
Points to the trace flag, which indicates whether tracing is on in the calling management module or domain. Use this parameter to control your use of the XPI TRACE_PUT macro in line with the tracing in the CICS module or domain. Use the XPI TRACE_PUT function only when tracing is on. The trace flag is a single byte, with a top bit set on when tracing is switched on. You test this setting using the symbolic value UEPTRON. The rest of the byte addressed by UEPTRACE is reserved, and its contents must not be corrupted.