* START OF SPECIFICATIONS ********************************************* 00050003
*                                                                     * 00100003
* $MAC(RACSTAT) COMP(SC1BN) PROD(RACF):                               * 00150003
*                                                                     * 00200003
* DESCRIPTIVE NAME = RACF STATUS EXTRACTION INTERFACE                 * 00250003
*                                                                     * 00400003
* STATUS = OS/VS2 EBB1102                                             * 00450003
*                                                                     * 00500003
* FUNCTIONAL DESCRIPTION = THIS MACRO PROVIDES THE INTERFACE TO THE   * 00550003
*            RACF STATUS EXTRACTION ROUTINE.                          * 00600003
*                                                                     * 00650003
*            INPUT TO THE STATUS ROUTINE PROVIDED BY THIS MACRO       * 00700003
*            CONSISTS OF THE ADDRESS OF A PARAMETER LIST IN REGISTER  * 00750003
*            ONE. OUTPUT CONSISTS OF A RETURN CODE IN REGISTER 15.    * 00800003
*                                                                     * 00850003
* MACROS = IHBINNRA                                                   * 00900003
*                                                                     * 00950003
* CHANGE ACTIVITY =                                                   * 00970000
*                      UZ90283                                @ZA90283* 00990000
*                      UZ90284                                @ZA90284* 01010000
*                      UZ90285                                @ZA90285* 01030000
*                                                                     * 01050003
* END OF SPECIFICATIONS *********************************************** 01100003
* A-000000-999999                                            @PC0039T   01150003
         MACRO                                                        * 01200003
&LABEL   RACSTAT &CLASS=,&ENTRY=,&MF=S                                  01250003
         LCLB  &MFLIST              1 => LIST FORM                      01300003
         LCLB  &MFEXEC              1 => EXECUTE FORM                   01350003
         LCLB  &MFSTAND             1 => STANDARD FORM                  01400003
         LCLB  &NOENT               1 => IGNORE ENTRY PARAMETER         01450003
.*                                                                      01500003
.* PERFORM PARAMETER ANALYSIS AND DIAGNOSIS                             01550003
.*                                                                      01600003
.* VALIDATE MF PARAMETER                                                01650003
.*                                                                      01700003
         AIF   ('&MF' EQ 'S').STAT030                                   01750003
         AIF   ('&MF(1)' EQ 'E').STAT020                                01800003
         AIF   ('&MF' EQ 'L').STAT010                                   01850003
         MNOTE 8,'*** INVALID MACRO FORM PARAMETER ***'                 01900003
         AGO   .STAT030                                                 01950003
.STAT010 ANOP                                                           02000003
&MFLIST  SETB  1                                                        02050003
         AGO   .STAT040                                                 02100003
.STAT020 ANOP                                                           02150003
&MFEXEC  SETB  1                                                        02200003
         AGO   .STAT040                                                 02250003
.STAT030 ANOP                                                           02300003
&MFSTAND SETB  1                                                        02350003
.STAT040 ANOP                                                           02400003
.*                                                                      02450003
.* VALIDATE ENTRY PARAMETER                                             02500003
.*                                                                      02550003
         AIF   (NOT &MFSTAND OR                                        +02600003
               '&ENTRY' EQ '' OR                                       +02650003
               '&CLASS' NE '').STAT050                                  02700003
         MNOTE 4,'*** CLASS PARAMETER OMITTED, ENTRY PARAMETER IGNORED +02750003
               ***'                                                     02800003
&NOENT   SETB  1                                                        02850003
.STAT050 ANOP                                                           02900003
.*                                                                      02950003
.* VALIDATE USAGE OF REGISTERS FOR ADDRESSES                            03000003
.*                                                                      03050003
.* REGISTERS NOT ALLOWED FOR LIST FORM                                  03100003
.*                                                                      03150003
         AIF   (NOT &MFLIST).STAT070                                    03200003
         AIF   ('&CLASS' EQ '').STAT060                                 03250003
         AIF   ('&CLASS'(1,1) NE '(').STAT060                           03300003
         MNOTE 8,'*** REGISTER FORM OF ADDRESS PARAMETER NOT VALID WITH+03350003
                LIST FORM ***'                                          03400003
         AGO   .STAT070                                                 03450003
.STAT060 ANOP                                                           03500003
         AIF   ('&ENTRY' EQ '').STAT070                                 03550003
         AIF   ('&ENTRY'(1,1) NE '(').STAT070                           03600003
         MNOTE 8,'*** REGISTER FORM OF ADDRESS PARAMETER NOT VALID WITH+03650003
                LIST FORM ***'                                          03700003
.STAT070 ANOP                                                           03750003
.*                                                                      03800003
.* REGISTERS USED AS ADDRESSES MUST BE REGISTERS 2-12                   03850003
.*                                                                      03900003
         AIF   ('&CLASS' EQ '').STAT080                                 03950003
         AIF   (T'&CLASS(1) NE 'N').STAT080                             04000003
         AIF   ('&CLASS'(1,1) NE '(' OR                                +04050003
               ('&CLASS(1)' GT '1' AND                                 +04100003
               '&CLASS(1)' LT '13')).STAT080                            04150003
         MNOTE 8,'*** ONLY REGISTERS 2-12 VALID FOR ADDRESSES ***'      04200003
         AGO   .STAT090                                                 04250003
.STAT080 ANOP                                                           04300003
         AIF   ('&ENTRY' EQ '').STAT090                                 04350003
         AIF   (T'&ENTRY(1) NE 'N').STAT090                             04400003
         AIF   ('&ENTRY'(1,1) NE '(' OR                                +04450003
               ('&ENTRY(1)' GT '1' AND                                 +04500003
               '&ENTRY(1)' LT '13')).STAT090                            04550003
         MNOTE 8,'*** ONLY REGISTERS 2-12 VALID FOR ADDRESSES ***'      04600003
.STAT090 ANOP                                                           04650003
.*                                                                      04700003
.* GENERATE CODE                                                        04750003
.*                                                                      04800003
         AIF   (&MFEXEC).STAT170                                        04850003
         AIF   (&MFLIST).STAT100                                        04900003
         AIF   ('&CLASS' EQ '').STAT160                                 04950003
&LABEL   CNOP  0,4                                                      05000003
         AIF   ('&CLASS'(1,1) EQ '''').STAT095                          05050003
         BAL   1,*+12                                                   05100003
         AGO   .STAT110                                                 05150003
.STAT095 ANOP                                                           05200003
         BAL   1,*+20                                                   05250003
         AGO   .STAT110                                                 05300003
.STAT100 ANOP                                                           05350003
&LABEL   DS    0F                                                       05400003
.STAT110 ANOP                                                           05450003
         AIF   ('&CLASS' EQ '' ).STAT120                                05500003
         AIF   ('&CLASS'(1,1) EQ '(').STAT120                           05550003
         AIF   ('&CLASS'(1,1) EQ '''').STAT115                          05600003
         DC    A(&CLASS)            ADDRESS OF CLASS PARAMETER          05650003
         AGO   .STAT130                                                 05700003
.STAT115 ANOP                                                           05750003
         DC    A(ICH0&SYSNDX)          ADDRESS OF CLASS PARAMETER       05800003
         AGO   .STAT130                                                 05850003
.STAT120 ANOP                                                           05900003
         DC    A(0)                 ADDRESS OF CLASS PARAMETER          05950003
.STAT130 ANOP                                                           06000003
         AIF   ('&ENTRY' EQ '' ).STAT140                                06050003
         AIF   ('&ENTRY'(1,1) EQ '(' OR                                +06100003
               &NOENT).STAT140                                          06150003
         DC    A(&ENTRY)            ADDRESS OF ENTRY PARAMETER          06200003
         AGO   .STAT150                                                 06250003
.STAT140 ANOP                                                           06300003
         DC    A(0)                 ADDRESS OF ENTRY PARAMETER          06350003
.STAT150 ANOP                                                           06400003
         AIF   ('&CLASS' EQ '').STAT155                                 06450003
         AIF   ('&CLASS'(1,1) NE '''').STAT155                          06500003
ICH0&SYSNDX DC    CL8&CLASS         CLASS NAME                          06550003
.STAT155 ANOP                                                           06600003
         AIF   (&MFSTAND).STAT180                                       06650003
         MEXIT                                                          06700003
.STAT160 ANOP                                                           06750003
         AIF   ('&LABEL' EQ '').STAT220                                 06800003
&LABEL   DS    0H                                                       06850003
         AGO   .STAT220                                                 06900003
.STAT170 ANOP                                                           06950003
&LABEL   IHBINNRA &MF(2)                                                07000003
.STAT180 ANOP                                                           07050003
         AIF   ('&CLASS' EQ '').STAT200                                 07100003
         AIF   ('&CLASS'(1,1) EQ '(').STAT190                           07150003
         AIF   (&MFSTAND).STAT200                                       07200003
         LA    0,&CLASS                                                 07250003
         ST    0,0(1)               SET CLASS PARAMETER ADDRESS         07300003
         AGO   .STAT200                                                 07350003
.STAT190 ANOP                                                           07400003
         ST    &CLASS(1),0(1)       SET CLASS PARAMETER ADDRESS         07450003
.STAT200 ANOP                                                           07500003
         AIF   ('&ENTRY' EQ '' OR                                      +07550003
               &NOENT).STAT220                                          07600003
         AIF   ('&ENTRY'(1,1) EQ '(').STAT210                           07650003
         AIF   (&MFSTAND).STAT220                                       07700003
         LA    0,&ENTRY                                                 07750003
         ST    0,4(1)               SET ENTRY PARAMETER ADDRESS         07800003
         AGO   .STAT220                                                 07850003
.STAT210 ANOP                                                           07900003
         ST    &ENTRY(1),4(1)       SET ENTRY PARAMETER ADDRESS         07950003
.STAT220 ANOP                                                           08000003
         L     15,16(0,0)           ADDRESS OF CVT                      08050003
         L     15,X'03E0'(0,15)     ADDRESS OF RCVT                     08100003
         LTR   15,15                DOES RACF CVT EXIST                 08150003
         BZ    *+12                 NO, GO TO NON-EXISTENT R. C.        08200003
         CLI   X'AC'(15),X'02'      IS VERSION OF RACF CORRECT          08250003
         BNL   *+12                 YES, CONTINUE STATUS CHECK          08300003
         LA    15,24(0,0)           RACF CVT NON-EXISTENT RETURN CODE   08350003
         AIF   (&MFSTAND AND                                           +08400003
               '&CLASS' EQ '').STAT230                                  08450003
         B     *+10                 END STATUS CHECK                    08500003
         L     15,X'C0'(0,15)       ADDRESS OF STATUS ROUTINE           08550003
         BALR  14,15                CALL STATUS ROUTINE                 08600003
         AGO   .STAT240                                                 08650003
.STAT230 ANOP                                                           08700003
         B     *+32                 END STATUS CHECK                    08750003
         TM    X'35'(15),X'80'      WAS RACF IPLED ACTIVE               08800003
         BO    *+12                 NO, GO TO INACTIVE RETURN CODE      08850003
         TM    X'99'(15),X'80'      IS RACF CURRENTLY ACTIVE            08900003
         BNO   *+12                 YES, GO TO ACTIVE RETURN CODE       08950003
         LA    15,12(0,0)           RACF INACTIVE                       09000003
         B     *+8                  SKIP ACTIVE RETURN CODE             09050003
         LA    15,0(0,0)            RACF ACTIVE                         09100003
.STAT240 ANOP                                                           09150003
         MEXIT                                                          09200003
         MEND                                                           09250003
