Reference: Return code user exit routine (FABARCEX)

Fast Path DEDB Pointer Checker supports a return code user exit routine that can be used to change the return codes of FABADA1 and FABADA3.

Overview of the return code user exit routine

This topic describes the overview of the return code user exit routine.

  • This user exit routine must be named FABARCEX, and should be included in STEPLIB or JOBLIB.
  • If FABARCEX is found by DEDB Pointer Checker, it will be called no matter what the return code is.
  • You can change the return codes according to the message and return code table.
  • FABARCEX must be specified with AMODE=31 and RMODE=ANY.
  • Start of changeDEDB Pointer Checker provides a sample JCL (FABARCET) in *.SHFPSAMP. FABARCET is composed of two steps: one to assemble FABARCEX, and another to link-edit FABARCEX.End of change
  • For this release, the interface is available only for FABADA1 and FABADA3.

Interface of the return code user exit routine

The following figure shows the input and output of the return code user exit routine.

Figure 1. Parameter list
This figure shows the parameters used for the interface of the return code user exit routine. The details of the parameters are described in the text that follows this figure.
Input
R1
Parameter list address
R13
Save area address
R14
Return address
R15
Entry point of FABARCEX
A(UTIL_NAME):
Address of the 8-byte utility name; either FABADA1 or FABADA3.
A(DEDB_NAME):
Address of the 8-byte DEDB name. It is blank when the utility is FABADA3.
A(RETURN_CODE):
Address of the full-word return code. Input: The original return code. Output: The changed return code.
A(MSG &RC TABLE):
The address of the message and return code table. Every entry contains the following information: Message ID: 4-byte Message suffix: 1-byte Reserved area: 3-byte Return code: Full-word, currently this field is not used.

The following table shows an example of a message and return code table. If FABA0301I, FABA0330E, FABA0305I, FABA0302E, FABA0315I are issued, the message and return code table would look like:

Table 1. Example of a message and return code table
Message ID Message suffix Reserved area Reserved area
X'00000000' X'00' X'000000' X'00000005'
X'F0F3F0F1' X'C9' X'000000' X'00000000'
X'F0F3F3F0' X'C5' X'000000' X'00000000'
X'F0F3F0F5' X'C9' X'000000' X'00000000'
X'F0F3F0F2' X'C5' X'000000' X'00000000'
X'F0F3F1F5' X'C9' X'000000' X'00000000'

Where X'00000005' is the number of entries in the message and return code table.

Output
The changed return code that is pointed to by address in A(RETURN_CODE).