z/OS DFSMS Installation Exits
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Example of the IGBDCSX1 Exit Routine

z/OS DFSMS Installation Exits
SC23-6850-01

Figure 1 is a sample of IGBDCSX1. It returns the installation-defined maximum block size for non-VSAM data sets whose first four characters are SYS2 or SYS3. For non-VSAM data sets whose first four characters are SYS4 or SYS5, IGBDCSX1 returns the only block size allowed. For all other data sets, no restrictions apply. The figure is intended to be used as a learning aid for the installation system programmer and is not guaranteed to run on a particular system without some modification.

Figure 1. Sample Listing of IGBDCSX1 Part 1 of 2
 ***********************************************************************
 *                                                                     *
 *  $MOD(IGBDCSX1): DASD CALCULATION SERVICES PRE-CALCULATION EXIT     *
 *                                                                     *
 *  DESCRIPTIVE NAME = DCS PRE-CALCULATION EXIT                        *
 *                                                                     *
 *  COPYRIGHT = NONE                                                   *
 *                                                                     *
 *  FUNCTION = SEE TEXT FOR ENTRY AND EXIT INFORMATION                 *
 *                                                                     *
 *     PROCESSOR = ASSEMBLER                                           *
 *                                                                     *
 *     ATTRIBUTES = CALLER KEY, CALLER STATE, ENABLED,                 *
 *                  AMODE(31),RMODE(ANY)                               *
 ***********************************************************************
           EJECT
 IGBDCSX1  CSECT
 IGBDCSX1  AMODE 31
 IGBDCSX1  RMODE ANY
 *
 *   SET UP ADDRESSABILITY
 *
           STM     REG14,REG12,12(REG13)  SAVE CALLER'S REGS
           LR      REG12,REG15        LOAD IGBDCSX1 ADDR INTO BASE REG
           USING   IGBDCSX1,REG12
           L       REG1,0(,REG1)      SET UP PARM LIST ADDRESSABILITY
           USING   DCSIEPL,REG1
 *
 *   CHECK FOR VSAM DATA SET
 *
           TM      DCSIEDSO+1,DCSIEAM  TEST DATA SET ORGANIZATION
           BO      EXIT               BRANCH IF VSAM DATA SET
 *
 *   CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS2
 *
           CLC     DCSIEDSN(4),SYS2   IS DSN SYS2?
           BNE     SYS3CHK            NO - CHECK FOR SYS3
           L       REG0,MAXSYS2       SET MAX BLOCKSIZE FOR SYS2 DS
           LA      REG15,4            SET RETURN CODE INDICATING A
 *                                    LIMIT WAS SET
 
Figure 2. Sample Listing of IGBDCSX1 Part 2 of 2
           B       EXIT
 *
 *   CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS3
 *
 SYS3CHK   CLC     DCSIEDSN(4),SYS3   IS DSN SYS3?
           BNE     SYS4CHK            NO - CHECK FOR SYS4
           L       REG0,MAXSYS3       SET MAX BLOCKSIZE FOR SYS3 DS
           LA      REG15,4            SET RETURN CODE INDICATING A
 *                                    LIMIT WAS SET
           B       EXIT
 *
 *   CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS4
 *
 SYS4CHK   CLC     DCSIEDSN(4),SYS4   IS DSN SYS4?
           BNE     SYS5CHK            NO - CHECK FOR SYS5
           L       REG0,SYS4BSZ       SET ONLY BLOCKSIZE FOR SYS4 DS
           LA      REG15,8            SET RETURN CODE INDICATING TO
 *                                    BYPASS CALCULATION
           B       EXIT
 *
 *   CHECK FIRST-FOUR CHARACTERS OF DATA SET NAME FOR SYS5
 SYS5CHK   CLC     DCSIEDSN(4),SYS5   IS DSN SYS5?
           BNE     NOLIMIT            NO - NO LIMITS SET
           L       REG0,SYS5BSZ       SET ONLY BLOCKSIZE FOR SYS5 DS
           LA      REG15,8            SET RETURN CODE INDICATING TO
 *                                    BYPASS CALCULATION
           B       EXIT
 *
 *   INDICATE NO LIMITS SET
 *
 NOLIMIT   LA      REG15,0
 *
 *   RETURN TO DCS
 *
 EXIT      EQU     *
           L       REG14,12(,REG13)   RESTORE CALLER'S REG 14
           LM      REG1,REG12,24(REG13)  RESTORE REST OF CALLER'S REGS
           BR      REG14              BRANCH BACK TO CALLER
           EJECT
 * *   DEFINE VARIABLES
 *
 SYS2      DC      C'SYS2'
 SYS3      DC      C'SYS3'
 SYS4      DC      C'SYS4'
 SYS5      DC      C'SYS5'
 *
 REG0      EQU     0
 REG1      EQU     1
 REG12     EQU     12
 REG13     EQU     13
 REG14     EQU     14
 REG15     EQU     15 *
 MAXSYS2   DC      F'5120'
 MAXSYS3   DC      F'10240'
 SYS4BSZ   DC      F'4096'
 SYS5BSZ   DC      F'8192'
 *
 *
           IGBDCSIE
 *
           END     IGBDCSX1

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014