UXEEX1 - UEDIT Initialization Exit

Note:
A familiarity with the functional design of the UEDIT utility program is necessary for a full understanding of this section.

UXEEX1 defines security restrictions on the use of the various UEDIT functions and restricts user ID access to specific libraries or members. UXEEX1 can be used to:

  • Check a user ID for authorization to access the source library being edited;

  • MESGSW a record identifying the access of the library or member;

  • Use the CAPTUR function to provide an audit trail of the edit operation;

  • Exit to an alternative access method routine in order to perform the requested operation;

  • Alter the DSN, library code, VOLSER, and/or the file organization.

The UXEEX1 module is only loaded once per invocation of UEDIT. This means that internal switches can be set and subsequently referenced. Remember, however, that each new invocation of UEDIT will load a new version of UXEEX1, causing the switches to be reset.

A dummy UXEEX1 module is distributed with the Com-plete system as a member of the distribution source and load libraries.

Note:
No security exists for UEDIT functions unless it is established by you.

This document covers the following topics:


How to Use UXEEX1

UXEEX1 is a user-written routine called by the UEDIT initialization routine (UEDIT) in one of three ways:

  • Upon a direct UEDIT entry call request;

  • To set the menu default characteristics;

  • After syntax checking the request, but before calling UEBP to perform the requested operation on the source library.

Upon entry to UXEEX1, a set of parameters is received in the form of fullword addresses in register 1. Word 1 of the parameter list contains the address of a return code area in which the status of the request is to be indicated. Word 2 of the parameter list contains the address of the UEPDCOM data area.

Word 3 of the parameter list contains the address of a one-character code that identifies the origin of the call request being issued for UXEEX1. An X'80' in the high-order byte of the address indicates that this is the last parameter being passed (via register 1) to UXEEX1. The character addressed by the third parameter can be one of the following:

D UXEEX1 is being entered directly with a non-menu invocation of UEDIT and before processing input information "library ID", "option", and "member".
M UXEEX1 is being entered before generating the UEDIT output menu.
E UXEEX1 is being entered before fetching UEBP to perform I/O on the source library. In this situation, the BPCODE field within UEPDCOM is valid, and can be tested or altered. During this call, if the library code passed is spaces, the UEDIT system will not use UEDTB1 but will use the DSN and VOLSER fields in UEPDCOM to access the data set.

To define security, proceed as follows:

  • Examine the third parameter to determine the origin of the call request;

  • Test for the existence of the desired function (via information passed in UEPDCOM);

  • Establish the desired level of authorization;

  • Set the return code to indicate either acceptance or rejection.

Upon return to the UEDIT module from UXEEX1, the return code area is examined. If the return code is not zero, the edit operation is aborted and the menu page is output with an error message.

UXEEX1 Conventions

The following table summarizes the UXEEX1 linkage conventions.

Feature Convention
Attributes Reentrant if in a resident area.
Type Thread.
Size Restricted to the UEDIT thread region
Registers at Entry
Register 1 Address of the parameter list
Register 13 Address of an 18-fullword save area
Register 14 Return address in the calling module
Register 15 Entry address within UXEEX1
Registers at Return All registers must be unchanged.
Parameters
Word 1 Address of a return code halfword
Word 2 Address of the UEPDCOM data area
Word 3 Address of a one-character call code:
D Non-menu invocation of UEDIT
M Menu invocation of UEDIT
E Prior to UEBP I/O functions
Return Codes
0 Allow the request.
4 Security violation.
Considerations
a Is loaded once per call execution of UEDIT.
b Is loaded before invoking UEBP.
c Will be dynamically loaded.