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.
- DEDB 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.
- 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.
- 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:
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).