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 FLAGParameters
- 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.
- 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.