UUSPL0 - USPOOL Command Exit

UUSPL0 is a user-written routine called by USPOOL after the terminal user has issued a valid command. UUSPL0 defines security restrictions pertaining to the use of all USPOOL functions and can also be used to restrict access to specific printers.

The UUSPL0 module is loaded once per invocation of USPOOL. This means that internal switches can be set and subsequently referred to. Note, however, that each new invocation of USPOOL causes a new copy of UUSPL0 to be loaded, thereby causing all switches in UUSPL0 to be reset.

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

Note:
No security exists for USPOOL functions, unless it is established by you or restricted via Com-plete Security System definitions.

This document covers the following topics:


How to Use UUSPL0

Upon entry to UUSPL0, a set of parameters is received in the form of 5 fullword addresses. For the meaning of the words, see the parameters in the description of the UUSEX1 exit.

Upon return from UUSPL0 to USPOOL, the return code area is checked. If the return code is not zero, the requested operation is aborted and an error message is displayed on the main menu screen.

UUSPL0 Conventions

The following table summarizes the UUSPL0 linkage conventions:

Feature Convention
Attributes AMODE 31; reentrant if in a resident area.
Type Thread.
Size Restricted to the USPOOL thread region size
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 of UUSPL0
Registers at Return All registers except R15 must be unchanged.
Parameters
Word 1 Address of a return code halfword
Word 2 Address of a four byte function code
Word 3 Address of the requestors specifications
Word 4 Address of the listqueue entry definitions or address of the printername
Word 5 Optional for listqueue update functions, address of the old listqueue entry definitions
Return Codes
0 Allow the request.
4 Disallow the request.

Function Codes passed via word 2:

PO Printer overview
LQ Listqueue overview
MOx Modify Q-Entry x = U update M move C copy P purge
DP Display printout in screen
OPx Operate printer x = S start R reset H halt

Data Area passed via word 3:

USRXP DSECT , &nbsp
USRXUID DS CL8 User name
USRXACC DS CL12 Account
USRXAUT DS AL2 Authorization code
USRXCTL DS CL2 Control/Noncontrol
USRXPL EQU *-USRXP Length of element

Data Area passed via word 4 (and word 5):

OLQLINE DSECT ,  
OLQNAME DS CL8 List name
OLQNUM DS AL2 Number
OLQFORM DS CL4 Form
OLQSTAT DS C Status
OLQLINS DS AL2 Number of lines
OLQCOPY DS AL2 Number of copies
OLQPRIO DS AL2 Priority
OLQUSER DS CL8 Originator
OLQLDRV DS CL8 Logical output driver
OLQDEST DS CL8 Destination
OLQLINEL EQU *-OLQLINE Length of element