ULSRRJE is a user-written routine used to examine and/or modify the RJE input data submitted for background processing via the RJE function call. This exit is similar in capability and function to the UEDIT RJE exit UUEEX3. ULSRRJE, however, has the advantage of being able to process RJE requests from any source, not just the editor. Possible uses for this exit include:
To syntax-check JCL;
To enforce installation standards;
To insert UQ security statements into the input stream.
ULSRRJE is loaded dynamically at Com-plete initialization. The address of the module is found in COMREG, field AUSRRJE. It is given control via call from TLSRRJE before RJE begins: once before each card image is passed to the operating system, and at the end of the data.
The module is invoked with service-routine status (that is, it is in Com-plete's protect key, and all Com-plete and supervisor calls are valid). Note that if an abend occurs in the exit, Com-plete terminates abnormally. The exit routine must be reentrant to allow for multiple thread access.
Com-plete user program functions (MCALL) are not available to the exit. Any environmental data (user ID, TID, etc.) must be obtained from the standard Com-plete control blocks passed to the exit.
This document covers the following topics:
Upon entry to ULSRRJE, registers are set according to the Com-plete convention (R2=COMREG, R3=UPCB, R4=THCB, R5=TIB, R13=18-fullword save area, R14=return address, R15=entry point).
R1 contains the address of a parameter list. Word 1 of the parameter list contains the address of a return code halfword that has been initialized to zero. Word 2 of the parameter list contains the address of the requesting RJE parameter list. Word 3 of the parameter list contains the address of the call-type flag byte (character). Word 4 of the parameter list contains the address of the statement being submitted.
Note that the last parameter address is not valid if the call-type byte is S.
Upon return from the exit, the return code halfword is examined and processed.
At the end of the job stream, the call-type is set to E and ULSRRJE is called repeatedly until a return code of 0 or 12 is given.
A statement can be modified by ULSRRJE by simply changing it in the data area addressed by the fourth word and returning with return code 0.
Once a return code of 12 or more is returned by ULSRRJE, no further
calls are made to the exit.
The following table summarizes the linkage conventions of ULSRRJE.
Feature | Convention | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Attributes | None required. | ||||||||||||||||
Type | Nucleus. | ||||||||||||||||
Size | No restrictions. | ||||||||||||||||
Registers at Entry |
|
||||||||||||||||
Registers at Return | All registers must be unchanged. | ||||||||||||||||
Parameters |
|
||||||||||||||||
Return Codes |
|
||||||||||||||||
Considerations |
|