Exit XDLIPRE

Exit XDLIPRE is invoked on entry to the DL/I interface program.

Programs running in this exit must be coded to threadsafe standards and defined to CICS® as threadsafe.

Exit-specific parameters
UEPCTYPE
Address of type-of-request byte. Values are:
UEPCEXEC
The original request was an EXEC DLI request.
UEPCCALL
The original request was a CALL-level request.
UEPCSHIP
The request has been function shipped from another region. When this value is set, restrictions apply to the setting and use of the rest of the exit parameters, as described.
UEPAPLIST
Address of application's parameter list. The general format for COBOL and assembler language is:
plist address --> parm1 address --> parm1
                parm2 address --> parm2
                parm3 address --> parm3
                ..............
                up to a maximum of 18 parameters
                excluding the optional parmcount.
              The general format for PL/I is:
plist address --> parm1 address --> parm1 (parmcount)
       parm2 address --> locator descriptor --> parm2
       parm3 address --> locator descriptor --> parm3
       ..............
       up to a maximum of 18 parameters
When UEPCTYPE is not UEPCSHIP, your exit program can change any of the parameters in the application parameter list. For UEPCSHIP requests, your exit program cannot change any of the parameters. Furthermore, for UEPCSHIP requests, UEPAPLIST points to a copy of the parameter list in the above format, but which contains only the first two parameters, parm1 and parm2.
Note: For PL/I applications, parm1 may or may not contain a parameter-count. Your exit program should check this field before using it.
UEPLANG
Address of program language byte. Values are:
UEPPLI
PL/I
UEPCBL
COBOL
UEPASM
Assembler language.

For UEPCSHIP requests, the language is always assembler.

UEPIOAX
Address of I/O area existence flag byte:
UEPIOA1
I/O area exists.

For UEPCSHIP requests, the I/O area existence flag is always off.

UEPIOA
Address of I/O area. This is the application's IOAREA, or DFHEDP's IOAREA in the case of EXEC DLI. The contents of the IOAREA can be overwritten in the exit: the new contents are used when the DL/I request is processed. However, it should be noted that IOAREAs can be in a program's static storage and, in this case, should not be overwritten.

For UEPCSHIP requests, UEPIOA is always zero.

UEPPSBNX
Address of PSB existence flag byte:
UEPPSB1
A PSB exists.
UEPPSBNM
Address of an area containing the 8-character PSB name. The contents of the area can be overwritten by the exit, for all types of request including UEPCSHIP; the new contents are used when the DL/I request is processed.
UEPSYSDX
Address of the SYSID existence flag byte:
UEPSYS1
A SYSID exists.
UEPSYSID
Address of an area containing the 4-character SYSID name. The contents of the area can be overwritten by the exit, for all types of request including UEPCSHIP; the new contents are used when the DL/I request is processed.
Return codes
UERCNORM
Continue processing
UERCBYP
Bypass DL/I request and return
UERCPURG
Task purged during XPI call.
XPI calls
All can be used.