z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Tape Libraries
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SAMPLIB member CBRSPUXC

z/OS DFSMS OAM Planning, Installation, and Storage Administration Guide for Tape Libraries
SC23-6867-00

This SAMPLIB member is a sample change use attribute installation exit.

UXCUA    TITLE 'CBRUXCUA - SAMPLE CHANGE USE ATTRIBUTE INST. EXIT'
CBRUXCUA START 0          SAMPLE CHANGE USE ATTRIBUTE INSTALLATION EXIT
         SPACE 2
**** START OF SPECIFICATIONS *****************************************
*                                                                    *
*    MODULE NAME:       CBRUXCUA                                     *
*                                                                    *
*    DESCRIPTIVE NAME:  SAMPLE CHANGE USE ATTRIBUTE INSTALLATION     *
*                       EXIT                                         *
*                                                                    *
*    FUNCTION:                                                       *
*      MODULE CBRUXCUA IS INVOKED EACH TIME A REQUEST IS MADE TO     *
*      CHANGE THE VOLUME USE ATTRIBUTE OF AN SMS-MANAGED TAPE        *
*      VOLUME.  CBRUXCUA MAY REFUSE TO ALLOW THE VOLUME USE          *
*      ATTRIBUTE TO BE CHANGED, OR UPDATE CERTAIN FIELDS IN THE TAPE *
*      VOLUME RECORD, OR APPROVE THE CHANGE USE ATTRIBUTE REQUEST    *
*      WITHOUT CHANGE.                                               *
*                                                                    *
*      CBRUXCUA DEMONSTRATES THE USE OF THE FOLLOWING FUNCTIONS:     *
*      1. SETTING THE "REJECT" RETURN CODE TO PREVENT A CHANGE IN    *
*         THE VOLUME USE ATTRIBUTE.                                  *
*      2. USING THE INFORMATION IN VARIOUS FIELDS IN THE TAPE VOLUME *
*         RECORD.                                                    *
*      3. PASSING INFORMATION TO CBRUXCUA USING THE LIBRARY          *
*         DESCRIPTION FIELD, AS SET BY THE ISMF LIBRARY MANAGEMENT   *
*         APPLICATION.                                               *
*      4. PASSING INFORMATION TO CBRUXCUA USING THE CBRXLCS          *
*         FUNC(CUA) PROGRAMMING INTERFACE.                           *
*                                                                    *
*    NOTES:                                                          *
*                                                                    *
*      DEPENDENCIES:          MVS/SP VERSION 4.3.0                   *
*                             DFSMS/MVS 1.1.0                        *
*                                                                    *
*      CHARACTER CODE:        EBCDIC                                 *
*      RESTRICTIONS:          NONE                                   *
*                                                                    *
*      REGISTER CONVENTIONS:                                         *
*        R0  - WORK REGISTER                                         *
*        R1  - STANDARD LINKAGE REGISTER                             *
*            - PARAMETER LIST ADDRESS                                *
*            - WORK REGISTER                                         *
*        R2  - NOT USED                                              *
*        R3  - NOT USED                                              *
*        R4  - NOT USED                                              *
*        R5  - NOT USED                                              *
*        R6  - NOT USED                                              *
*        R7  - NOT USED                                              *
*        R8  - CBRUXCUA WORKING STORAGE BASE REGISTER                *
*        R9  - RETURN CODE WORK REGISTER                             *
*        R10 - LIBRARY DESCRIPTION BASE REGISTER                     *
*        R11 - UXCPL BASE REGISTER                                   *
*        R12 - CBRUXCUA BASE REGISTER                                *
*        R13 - STANDARD LINKAGE REGISTER                             *
*            - SAVE AREA ADDRESS                                     *
*        R14 - STANDARD LINKAGE REGISTER                             *
*            - RETURN POINT ADDRESS                                  *
*            - WORK REGISTER                                         *
*        R15 - STANDARD LINKAGE REGISTER                             *
*            - ENTRY POINT ADDRESS                                   *
*            - RETURN CODE                                           *
*            - WORK REGISTER                                         *
*                                                                    *
*    MODULE TYPE:             CONTROL SECTION                        *
*                                                                    *
*      PROCESSOR:             ASSEMBLER H                            *
*                                                                    *
*      ATTRIBUTES:                                                   *
*                                                                    *
*        LOCATION:            JOB PACK AREA                          *
*        STATE:               SUPERVISOR                             *
*        AMODE:               31                                     *
*        RMODE:               ANY                                    *
*        KEY:                 CALLER'S                               *
*        MODE:                TASK                                   *
*        SERIALIZATION:       UNLOCKED                               *
*        TYPE:                REUSABLE                               *
*                             REENTRANT                              *
*                             REFRESHABLE                            *
*        AUTHORIZATION:       APF AUTHORIZED                         *
*                                                                    *
*      LINKAGE:               STANDARD LINKAGE CONVENTIONS           *
*                                                                    *
*      CALLING SEQUENCE:                                             *
*        CBRUXCUA IS INVOKED USING THE MVS LINK MACRO.               *
*                                                                    *
*      INPUT:                                                        *
*        AT ENTRY TO CBRUXCUA, REGISTER 1 CONTAINS THE ADDRESS OF    *
*        THE CHANGE USE ATTRIBUTE INSTALLATION EXIT PARAMETER LIST.  *
*                                                                    *
*      OUTPUT:                                                       *
*        A RETURN CODE IS PLACED IN REGISTER 15:                     *
*          CODE  MEANING                                             *
*            0   CHANGE THE VOLUME USE ATTRIBUTE AS REQUESTED.  NO   *
*                CHANGES HAVE BEEN MADE TO THE TAPE VOLUME RECORD.   *
*            4   CHANGE THE VOLUME USE ATTRIBUTE AS REQUESTED.  ONE  *
*                OR MORE FIELDS IN THE TAPE VOLUME RECORD HAVE BEEN  *
*                CHANGED.                                            *
*            8   DO NOT ALLOW THE VOLUME USE ATTRIBUTE TO BE         *
*                CHANGED.                                            *
*           12   NOT USED.                                           *
*           16   DO NOT INVOKE THE CHANGE USE ATTRIBUTE INSTALLATION *
*                EXIT AGAIN.  ALLOW ALL REQUESTS TO CHANGE THE       *
*                VOLUME USE ATTRIBUTE.                               *
*                                                                    *
*      EXIT NORMAL:                                                  *
*        RETURN TO THE CALLER WITH ONE OF THE RETURN CODES DESCRIBED *
*        ABOVE.                                                      *
*                                                                    *
*      EXIT ERROR:  NONE                                             *
*                                                                    *
*    EXTERNAL REFERENCES:                                            *
*                                                                    *
*      ROUTINES:  NONE                                               *
*                                                                    *
*      CONTROL BLOCKS:                                               *
*        CBRUXCPL - CHANGE USE ATTRIBUTE INSTALLATION                *
*                   EXIT PARAMETER LIST                   - R/W      *
*                                                                    *
*    EXECUTABLE MACROS:                                              *
*      FREEMAIN                                                      *
*      GETMAIN                                                       *
*      RETURN                                                        *
*      SAVE                                                          *
*                                                                    *
*    MESSAGES:  NONE                                                 *
*                                                                    *
*    ABEND CODES:  NONE                                              *
*                                                                    *
*** END OF SPECIFICATIONS ********************************************
         TITLE 'CBRUXCPL - CHANGE USE ATTRIBUTE INST EXIT PARAM LIST'
         CBRUXCPL  ,                CHANGE USE ATTR INST EXIT PLIST
         TITLE 'STANDARD REGISTER DEFINITIONS'
*--------------------------------------------------------------------*
*                                                                    *
*        STANDARD REGISTER DEFINITIONS                               *
*                                                                    *
*--------------------------------------------------------------------*
R0       EQU   0                    GENERAL REGISTER 0
R1       EQU   1                    GENERAL REGISTER 1
R2       EQU   2                    GENERAL REGISTER 2
R3       EQU   3                    GENERAL REGISTER 3
R4       EQU   4                    GENERAL REGISTER 4
R5       EQU   5                    GENERAL REGISTER 5
R6       EQU   6                    GENERAL REGISTER 6
R7       EQU   7                    GENERAL REGISTER 7
R8       EQU   8                    GENERAL REGISTER 8
R9       EQU   9                    GENERAL REGISTER 9
R10      EQU   10                   GENERAL REGISTER 10
R11      EQU   11                   GENERAL REGISTER 11
R12      EQU   12                   GENERAL REGISTER 12
R13      EQU   13                   GENERAL REGISTER 13
R14      EQU   14                   GENERAL REGISTER 14
R15      EQU   15                   GENERAL REGISTER 15
         TITLE 'LIBRARY DESCRIPTION FIELD FORMAT'
*--------------------------------------------------------------------*
*                                                                    *
*        LIBRARY DESCRIPTION FIELD FORMAT                            *
*                                                                    *
*        NOTE:  THIS IS INTENDED AS AN EXAMPLE OF THE KIND OF        *
*               INFORMATION THE INSTALLATION CAN PASS TO THE EXIT    *
*               VIA THE LIBRARY DESCRIPTION FIELD, WHICH IS SET      *
*               USING THE ISMF LIBRARY MANAGEMENT APPLICATION.       *
*--------------------------------------------------------------------*
LIBDESC  DSECT ,                    LIBRARY DESCRIPTION FIELD
LIBDDSGN DS    CL8                  DEFAULT STORAGE GROUP NAME
         DS    CL1                  SEPARATOR
LIBDPRIV DS    CL1                  ALLOW PREVIOUSLY UNKNOWN PRIVATE
*                                     VOLUME TO BE ENTERED
*                                     'Y' - ALLOW BOTH PRIVATE AND
*                                           SCRATCH VOLUMES TO BE
*                                           ENTERED
*                                     'N' - ALLOW ONLY SCRATCH
*                                           VOLUMES TO BE ENTERED
         DS    CL1                  SEPARATOR
LIBDRDCM DS    CL1                  SET READ-COMPATIBLE ATTRIBUTE
*                                     FOR PREVIOUSLY UNKNOWN MEDIA1
*                                     PRIVATE VOLUME
*                                     'Y' - SET ATTRIBUTE
*                                     'N' - DO NOT SET ATTRIBUTE
         DS    CL1                  SEPARATOR
LIBDAUTH DS    CL1                  AUTHORIZATION REQUIRED FOR
*                                     CARTRIDGE EJECT
*                                     'Y' - AUTHORIZATION REQUIRED
*                                     'N' - AUTH NOT REQUIRED
         DS    CL106                AVAILABLE
         TITLE 'CBRUXCUA WORKING STORAGE'
*--------------------------------------------------------------------*
*                                                                    *
*        CBRUXCUA WORKING STORAGE                                    *
*                                                                    *
*--------------------------------------------------------------------*
CUAWORK  DSECT ,                    CBRUXCUA WORKING STORAGE
SAVE     DS    18F                  CBRUXCUA SAVE AREA
         SPACE 2
WORKEND  DS    0D                   END OF CBRUXCUA WORKING STORAGE
WORKLEN  EQU   *-CUAWORK            CBRUXCUA WORKING STORAGE LENGTH
         TITLE 'CBRUXCUA - SAMPLE CHANGE USE ATTRIBUTE INST EXIT'
*--------------------------------------------------------------------*
*                                                                    *
*        CBRUXCUA ENTRY POINT                                        *
*                                                                    *
*--------------------------------------------------------------------*
CBRUXCUA CSECT ,                    SAMPLE CHANGE USE ATTR INST EXIT
CBRUXCUA AMODE 31
CBRUXCUA RMODE ANY
         SAVE  (14,12),,            SAVE CALLER'S REGISTERS AND
               'CBRUXCUA&SYSDATE'     MARK ENTRY POINT
         LR    R12,R15              COPY ENTRY POINT ADDRESS
         USING CBRUXCUA,R12         CBRUXCUA BASE REGISTER
         LR    R11,R1               COPY PARAMETER ADDRESS
         USING UXCPL,R11            CHANGE USE ATTR INST EXIT PARM LIST
         GETMAIN  RU,               GETMAIN WORKING STORAGE FROM
               LV=WORKLEN,            SUBPOOL 230 TO GET PSW KEY
               SP=230                 STORAGE
         LR    R8,R1                SAVE WORKING STORAGE ADDRESS
         USING CUAWORK,R8           CBRUXCUA WORKING STORAGE
         LR    R14,R1               START ADDRESS OF TARGET AREA
         LA    R15,WORKLEN          TARGET LENGTH
         LR    R0,R1                START ADDRESS OF SOURCE AREA
         SR    R1,R1                ZERO SOURCE LENGTH AND PAD BYTE
         MVCL  R14,R0               CLEAR WORKING STORAGE
         ST    R13,SAVE+4           BACKWARD CHAIN SAVE AREAS
         LA    R0,SAVE              CBRUXCUA SAVE AREA ADDRESS
         ST    R0,8(,R13)           FORWARD CHAIN SAVE AREAS
         LR    R13,R0               SET CBRUXCUA SAVE AREA ADDRESS
         LA    R10,UXCLDESC         ADDRESS OF LIBRARY DESCRIPTION
         USING LIBDESC,R10          LIBRARY DESCRIPTION FIELD
         EJECT ,
*--------------------------------------------------------------------*
*                                                                    *
*        PRESET RETURN CODE ZERO                                     *
*                                                                    *
*--------------------------------------------------------------------*
         LA    R9,UXCNOCHG          CHANGE USE ATTRIBUTE WITHOUT
*                                     CHANGING TAPE VOLUME RECORD
         SPACE 2
*--------------------------------------------------------------------*
*                                                                    *
*        IF THE VOLUME USE ATTRIBUTE WILL NOT CHANGE, ALLOW THE      *
*        FUNCTION TO CONTINUE.  THE INVOKER OF CUA IS PROBABLY ISMF  *
*        VOLUME ALTER, AND THE PURPOSE IS TO ENSURE THAT THE USE     *
*        ATTRIBUTE AND THE LIBRARY MANAGER CATEGORY MATCH.           *
*                                                                    *
*--------------------------------------------------------------------*
         CLC   UXCCUSEA,UXCUSEA     OLD ATTRIBUTE = NEW ATTRIBUTE?
         BE    EXIT                 YES. RETURN TO CALLER
         SPACE 2
*--------------------------------------------------------------------*
*                                                                    *
*        IF THE VOLUME IS SHELF-RESIDENT, DO NOT ALLOW THE VOLUME    *
*        USE ATTRIBUTE TO BE CHANGED.                                *
*                                                                    *
*        SET THE REJECT RETURN CODE, AND EXIT.                       *
*                                                                    *
*--------------------------------------------------------------------*
         CLC   UXCLIB,=CL8'SHELF'   SHELF-RESIDENT VOLUME?
         BNE   CUA2000              NO. CHECK CHANGE TO SCRATCH
         LA    R9,UXCFAIL           SET CHANGE USE ATTRIBUTE REQUEST
*                                     DENIED RETURN CODE
         B     EXIT                 RETURN TO CALLER
         EJECT ,
*--------------------------------------------------------------------*
*                                                                    *
*        IF THE USE ATTRIBUTE IS TO BE CHANGED TO SCRATCH, AND IF    *
*        THE REQUEST IS FROM THE PROGRAMMED INTERFACE (USING THE     *
*        CBRXLCS MACRO), ALLOW THE REQUEST.                          *
*                                                                    *
*--------------------------------------------------------------------*
CUA2000  DS    0H
         CLI   UXCUSEA,UXCSCRT      CHANGE TO SCRATCH?
         BNE   CUA3000              NO. CHECK STORAGE GROUP NAME
         CLC   UXCEXITI,PASSTHRU    EJECT AUTHORIZED BY PROGRAMMED
*                                     INTERFACE?
         BE    EXIT                 YES. RETURN TO CALLER
         SPACE 2
 *--------------------------------------------------------------------*
*                                                                    *
*        THE REQUEST IS NOT FROM THE PROGRAMMED INTERFACE.  ALLOW    *
*        THE CHANGE TO SCRATCH ONLY WHEN THE VOLUME IS NOT WRITE     *
*        PROTECTED AND IS NOT A SECURE CHECKPOINT VOLUME.            *
*                                                                    *
*--------------------------------------------------------------------*
         CLI   UXCWPROT,UXCYES      WRITE PROTECTED VOLUME?
         BE    CUA2100              YES. REJECT CUA REQUEST
         CLI   UXCCHKPT,UXCYES      SECURE CHECKPOINT VOLUME?
         BNE   EXIT                 NO. RETURN TO CALLER
CUA2100  DS    0H
         LA    R9,UXCFAIL           SET CHANGE USE ATTRIBUTE REQUEST
*                                     DENIED RETURN CODE
         B     EXIT                 RETURN TO CALLER
         EJECT ,
*--------------------------------------------------------------------*
*                                                                    *
*        THE USE ATTRIBUTE IS TO BE CHANGED TO PRIVATE.              *
*                                                                    *
*        IF THE STORAGE GROUP NAME IS BLANK, SET THE DEFAULT STORAGE *
*        GROUP NAME FROM THE LIBRARY DESCRIPTION.                    *
*                                                                    *

*--------------------------------------------------------------------*
CUA3000  DS    0H
         CLC   UXCGROUP,=CL8' '     BLANK STORAGE GROUP NAME?
         BNE   EXIT                 NO. RETURN TO CALLER
         LA    R9,UXCCHG            ALLOW CHANGE USE ATTRIBUTE WITH
*                                     TAPE VOLUME RECORD CHANGED
         MVC   UXCGROUP,LIBDDSGN    SET DEFAULT STORAGE GROUP NAME
         EJECT ,
*--------------------------------------------------------------------*
*                                                                    *
*        RETURN TO THE CALLER                                        *
*                                                                    *
*--------------------------------------------------------------------*
EXIT     DS    0H
         L     R13,SAVE+4           RESTORE CALLER'S SAVE AREA ADDRESS
         FREEMAIN  RU,              RELEASE WORKING STORAGE
               LV=WORKLEN,
               A=(R8),
               SP=230
         LR    R15,R9               SET RETURN CODE
         RETURN  (14,12),           RESTORE CALLER'S REGISTERS, THEN
              RC=(15)                RETURN TO CALLER
         TITLE 'CBRUXCUA CONSTANTS'
*--------------------------------------------------------------------*
*                                                                    *
*        CBRUXCUA CONSTANTS                                          *
*                                                                    *
*--------------------------------------------------------------------*
         LTORG ,                    LITERAL CONSTANTS
         SPACE 2
PASSTHRU DC    CL16'SIMP'           PASSTHRU VALUE TO AUTHORIZE CUA
         SPACE 2
         END   CBRUXCUA

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014