*%; /* 00050002 MACRO 00100002 &NAME IRARMEP &DSECT=YES, USE OTHER OPRNDS IF DSECT=NO SPECD *00150002 &EPN=, ROUTINE (ENTRY POINT) IDENTIFIER *00200002 &ERR=, ROUTINE RECOVERY POINT IDENTIFIER *00210002 &NXT=, NEXT CHAINED RMEP BLOCK IDENTIFIER *00230002 &SCH=, INTERVAL IF ROUTINE IS TIME DRIVEN *00250002 &RCR= RECURSIVE CALL NEEDED TO GET LOCK 00300002 GBLC &IRAEPAD ROUTINE ENTRY POINT ADDRESS NAME 00350002 GBLC &IRAEPER ROUTINE RECOVERY POINT ADDR NAME 00400002 GBLC &IRAEPFL ROUTINE INVOCATION FLAG MASK 00450002 GBLC &IRAEPPV PREV RMEP BLOCK ADDRESS NAME 00500002 GBLC &IRAEPTM PREV SCHED RMEP ADDRESS NAME 00550002 GBLB &IRAEPCM IRARMEP COMMENTARY PRINT CONTROL 00570002 LCLC &RMEPFLG ROUTINE INVOCATION, TYPE FLAGS 00580002 LCLC &RMEPINT SCHEDULED ROUTINE INVOCN INTERVAL 00600002 LCLA &RMEPTYP ROUTINE TYPE HEX ACCUMULATOR 00620002 AIF (&IRAEPCM).RMEPAL1 BYPASS DUPLICATE IRARMEP INTRO 00640002 IEZBITS 00650002 AGO .RMEPAL0 00660002 * */ 00670002 *@ LIST PUSH; /* SAVE LISTING STATUS FOR RMEP */ 00700002 * %IF RMEPSFX = '' /* IS NAMING CHARACTER OMITTED */ 00750002 * %THEN %RMEPSFX = ' '; /* YES, INSERT PLACEHOLDER BLANK */ 00800002 * %IF RMEPSFX ^= ' ' /* IS THIS THE DUPLICATE INCLUDE */ 00850002 * %THEN %RMEPDUM = '@ LIST OFF '; /* BYP INTRO CMT */ 00900002 * %ELSE %RMEPDUM = '@ LIST PUSH'; /* DMY CNTRL CMT */ 00920002 *RMEPDUM; 00940002 * %IF RMEPSFX = ' ' /* IS THIS THE FIRST INCLUDE */ 00960002 * %THEN %RMEPDUM = '@ LIST POP '; /* PRT INTRO CMT */ 00980002 *RMEPDUM; 01000002 *%; /* 01050002 .RMEPAL0 ANOP */ 01070002 * /* MACCOMP Z-4 SC1CX/PKD16 */ 01100040 * /* MACSTAT Z-4 75007/Z40BPSS */ 01130040 * /* *************************************************************** */ 01200002 * /* */ 01250002 * /* MACRO NAME - IRARMEP */ 01300002 * /* */ 01350002 * /* DESCRIPTIVE NAME - SYSTEM RESOURCES MANAGER ENTRY POINT BLOCK */ 01400002 * /* */ 01450002 * /* COPYRIGHT - NONE */ 01500002 * /* */ 01550002 * /* STATUS - OS/VS2 RELEASE 4, 08/01/75, LEVEL=1 */ 01600040 * /* */ 01650002 * /* FUNCTION - THE RMEP DESIGNATES A SYSTEM RESOURCES MANAGER */ 01700002 * /* PROCESSING ROUTINE WHICH MAY BE INVOKED THROUGH THE */ 01750002 * /* CONTROL ALGORITHM. THE RMEP CONTAINS THE ROUTINE */ 01800002 * /* ENTRY POINT ADDRESS, DEFINES A BIT MASK TO BE USED */ 01850002 * /* TO REQUEST THE ROUTINE, AND OPTIONALLY PROVIDES FOR */ 01900002 * /* PERIODIC EXECUTION OF THE ROUTINE. THE RMEP BLOCK */ 01950002 * /* CONTAINS FLAGS INDICATING HOW THE DESCRIBED ROUTINE */ 01980002 * /* MAY BE INVOKED. */ 02010002 * /* */ 02050002 * /* METHOD OF ACCESS - THE ADDRESS OF THE CURRENT RMEP IS IN */ 02100002 * /* THE -RRPAEPA- FIELD OF THE SYSTEM RESOURCES MANAGER */ 02150002 * /* RECOVERY ROUTINE PARAMETER AREA. */ 02200002 * /* */ 02250002 * /* *************************************************************** */ 02300002 *%; /* 02350002 &IRAEPCM SETB 1 IRARMEP COMMENTARY WAS PRINTED 02370002 AGO .RMEPAL1 */ 02400002 *@ LIST OFF; /* BYPASS REMAINING COMMENTARY */ 02450002 * /* *************************************************************** */ 02500002 * /* */ 02550002 * /* CONSTRUCTION METHOD - THE RMEP LOCATIONS FOR ALGORITHMS - */ 02600002 * /* ROUTINES WITH SYSTEM-WIDE PROCESS EFFECTS - ARE SHOWN */ 02650002 * /* IN THE IRAEPAT MAPPING MACRO. THE RMEP LOCATIONS FOR */ 02700002 * /* ACTION ROUTINES, WHICH PERFORM PROCESSING FOR A GIVEN */ 02750002 * /* USER, ARE SHOWN IN THE IRAEPDT MAPPING MACRO. */ 02800002 * /* */ 02850002 * /* INVOCATION PARAMETERS AND/OR KEYWORDS = */ 02900002 * /* */ 02950002 * /* BAL - DSECT=NO IF DSECT IS NOT TO BE PRODUCED. */ 03000002 * /* - OTHERWISE, SEE MACRO INSTRUCTION PROTOTYPE OPERANDS. */ 03050002 * /* */ 03100002 * /* IF DSECT=NO IS NOT CODED, USING ON RMEP WILL GIVE */ 03150002 * /* ADDRESSABILITY TO ALL SYMBOLS. NO OTHER OPERANDS */ 03170002 * /* ARE REQUIRED IN SUCH CASE BY THE IRARMEP MACRO. */ 03190002 * /* */ 03210002 * /* IF DSECT=NO IS CODED, THE IRARMEP MACRO WILL GEN */ 03230002 * /* 'DC' INSTRUCTIONS CONTAINING APPROPRIATE VALUES, */ 03250002 * /* IN ACCORDANCE WITH THE SPECIFIED MACRO OPERANDS. */ 03270002 * /* */ 03300002 * /* PLS - %RMEPSFX='USERCHAR' IF THE INDICATED CHARACTER IS */ 03450002 * /* TO BE APPENDED TO ALL NAMES IN THE MAPPING, THEREBY */ 03500002 * /* PERMITTING MULTIPLE INCLUDES WHICH CREATE DUPLICATE */ 03550002 * /* DEFINITIONS BASED ON DIFFERENT POINTERS. */ 03600002 * /* */ 03650002 * /* NOTE - DUE TO THE MULTIPLE INCLUDE FACILITY FOR THE */ 03700002 * /* IRARMEP MACRO, IT IS NOT POSSIBLE TO CONCATENATE THE */ 03750002 * /* RMEP DECLARATION WITH ANOTHER DECLARATION IN SUCH A */ 03800002 * /* FASHION THAT BOTH ARE BASED ON THE SAME POINTER. */ 03850002 * /* */ 03900002 * /* TO ACCESS AS A STANDALONE STRUCTURE, DCL RMEPPTR PTR. */ 03950002 * /* */ 04000002 * /* CHANGE ACTIVITY = */ 04050002 * /* */ 04100002 * /* A000000-999999 Y02133*/ 04150002 * /* */ 04200002 * /* *************************************************************** */ 04250002 *%; /* 04300002 .RMEPAL1 ANOP 04350002 SPACE 1 04400002 AIF ('&DSECT' EQ 'NO').RMEPAL2 04450002 RMEP DSECT 04550002 RMEPEPB DS CL16 - ENTRY POINT DESCRIPTOR BLOCK 04560002 RMEPEPA DS A - ROUTINE NORMAL ENTRY ADDRESS 04570002 RMEPERA DS A - ROUTINE RECOVERY ENTRY ADDRESS 04580002 RMEPFLG DS 0XL4 - ROUTINE INVOCATION FLAG FIELD 04590002 DS XL3 - ROUTINE INVOCATION FLAG IDENTIFIER 04591002 DS XL1 - ROUTINE INVOCATION TYPE IDENTIFIER 04592002 RMEPRCR EQU BIT5 - RECURSIVE CALL NEEDED TO GET LOCK 04594002 RMEPTMD EQU BIT6 - ROUTINE INVOCATION TIME-DEPENDENT 04595002 RMEPACN EQU BIT7 - ROUTINE PROCESS USER LEVEL ACTION 04596002 RMEPPRV DS A - ADDRESS OF PREV BLOCK IN RMEP CHAIN 04600002 RMEPEND DS 0D - END OF RMEP BASIC ENTRY BLOCK 04610002 RMEPSCH DS CL16 - ENTRY POINT SCHEDULING EXTENSION 04620002 RMEPFWD DS A - TIME DRIVEN CHAIN FORWARD POINTER 04630002 RMEPBCK DS A - TIME DRIVEN CHAIN BACKWRD POINTER 04640002 RMEPTME DS F - TIME WHEN ROUTINE TO BE INVOKED 04650002 RMEPINT DS F - ROUTINE INVOCATION INTERVAL 04660002 RMEPSND DS 0D - END OF RMEP SCHEDULING EXTENSION 04670002 RMEPLEN EQU RMEPEND-RMEP - LENGTH OF RMEP 04740002 AGO .RMEPML4 04750002 .RMEPAL2 ANOP 04940002 &IRAEPAD SETC 'IRARMNOP' REINIT TO DUMMY ENTRY POINT NAME 04960002 &IRAEPER SETC 'IRARMNOP' REINIT TO DUMMY RETRY POINT NAME 04980002 &IRAEPFL SETC '00000000' REINIT TO DUMMY RMEP INVOCN FLAG 05000002 IRAEPNMP EPN=&EPN,ERR=&ERR GET ROUTINE ENTRY DESCRIPTION 05010002 AIF ('&IRAEPAD' EQ 'IRARMNOP').RMEPML4 05020002 &RMEPTYP SETA 1 INIT TO NON-ZERO INDEX 05030002 AIF ('&NXT' EQ '').RMEPYL1 TEST DEFAULT CHAINING USED 05040040 &IRAEPPV SETC 'RMEPB&NXT' SETUP PREVIOUS CHAINED RMEP NAME 05050002 AIF ('&NXT'(1,3) NE '000').RMEPYL1 BYP CLR PRV IF NOT END 05060040 &IRAEPPV SETC '00000000' INIT TO NO PREVIOUS ASSEMBLED RMEP 05070002 .RMEPYL1 AIF ('&RCR' NE 'YES').RMEPYL2 TEST RTNE CRITICAL CALL 05120040 &RMEPTYP SETA &RMEPTYP+4 SETON HEX BIT 1 05140002 .RMEPYL2 AIF ('&SCH' EQ '').RMEPYL3 TEST ROUTINE TIME-DRIVEN 05160002 &RMEPTYP SETA &RMEPTYP+2 SETON HEX BIT 2 05180002 .RMEPYL3 AIF ('&IRAEPFL'(8,1) NE '1').RMEPYL4 TEST USER RTNE 05200002 &RMEPTYP SETA &RMEPTYP+1 SETON HEX BIT 3 05220002 .RMEPYL4 ANOP 05240002 &RMEPFLG SETC '&IRAEPFL'(1,7).'0123456789ABCDEF'(&RMEPTYP,1) 05260002 DS 0D 05300002 RMEPB&EPN EQU * 05330002 AIF ('&NAME' EQ '').RMEPAL3 05360002 &NAME EQU * 05390002 .RMEPAL3 ANOP 05420002 * DS CL16 - ENTRY POINT DESCRIPTOR BLOCK 05450002 DC V(&IRAEPAD) - ROUTINE NORMAL ENTRY ADDRESS 05480002 DC V(&IRAEPER) - ROUTINE RECOVERY ENTRY ADDRESS 05510002 DC X'&RMEPFLG' - ROUTINE INVOCATION FLAG IDENTIFIER 05540002 DC A(&IRAEPPV) - ADDRESS OF PREV BLOCK IN RMEP CHAIN 05570002 &IRAEPPV SETC 'RMEPB&EPN' SAVE AS PREVIOUS ASSEMBLED RMEP 05600002 AIF ('&SCH' EQ '').RMEPML4 BYPASS SCHEDULE IF NOT WANT 05700002 &RMEPINT SETC '0000000'(1,8-K'&SCH).'&SCH' PICK SCHEDULING INTERVAL 05750002 * DS CL16 - ENTRY POINT SCHEDULING EXTENSION 05800002 DC A(0) - TIME DRIVEN CHAIN FORWARD POINTER 05870002 DC A(&IRAEPTM) - TIME DRIVEN CHAIN BACKWRD POINTER 05940002 DC F'0' - TIME WHEN ROUTINE TO BE INVOKED 06010002 DC F'&RMEPINT' - ROUTINE INVOCATION INTERVAL 06080002 &IRAEPTM SETC 'RMEPB&EPN' SAVE AS PREVIOUS SCHEDULED RMEP 06150002 .RMEPML4 ANOP 06650002 MEND 06700002 * */ 06750002 *@ LIST POP; /* RESUME LIST STATUS FOR RMEP */ 06800002 * %RMEPLABL = 'RMEP'; /* INITIALIZE THE LABEL VARIABLE */ 07800002 * %IF RMEPSFX ^= ' ' /* IS THIS THE DUPLICATE INCLUDE */ 08800002 * %THEN %RMEPLABL = 'RMEP'||RMEPSFX; /* RENAME STRUCTURE */ 09800002 * %IF RMEP9999 ^= ',' /* DOES STRUCTURE CONTINUE */ 10800002 * %THEN %RMEP9999 = ';'; /* NO, END DECLARE STATEMENT */ 11800002 * %RMEPDUM = RMEPLABL||'PTR' ; /* QUALIFY BASED POINTER NAME */ 12800002 * DCL 13800002 * 1 RMEPLABL BASED(RMEPDUM) BDY(DWORD), 14800002 * %RMEPLABL = 'RMEPEPB'||RMEPSFX ; 15800002 * 10 RMEPLABL CHAR(16) BDY(DWORD), /* ENTRY POINT BLOCK */ 16800002 * %RMEPLABL = 'RMEPEPA'||RMEPSFX ; 17800002 * 12 RMEPLABL PTR(31), /* ENTRY POINT ADDRESS */ 18800002 * %RMEPLABL = 'RMEPERA'||RMEPSFX ; 19800002 * 12 RMEPLABL PTR(31), /* ERROR RETRY POINT ADDRESS */ 20800002 * %RMEPLABL = 'RMEPFLG'||RMEPSFX ; 21800002 * 12 RMEPLABL BIT(32) BDY(WORD), /* INVOCATION FLAG MASK */ 22800002 * %RMEPLABL = 'RMEPVFL'||RMEPSFX ; 22890002 * 14 RMEPLABL BIT(29), /* RTNE INVOC FLAG FIELD @Z40BPCH*/ 22980040 * %RMEPLABL = 'RMEPRCR'||RMEPSFX ; 23250002 * 14 RMEPLABL BIT(01), /* CRITICAL ALGORITHM INDICATOR */ 23340040 * %RMEPLABL = 'RMEPTMD'||RMEPSFX ; 23430002 * 14 RMEPLABL BIT(01), /* RTNE INVOKE TIME-DEPENDENT */ 23520002 * %RMEPLABL = 'RMEPACN'||RMEPSFX ; 23610002 * 14 RMEPLABL BIT(01), /* RTNE PERFORMS USER LEVL ACTN */ 23700002 * %RMEPLABL = 'RMEPPRV'||RMEPSFX ; 23800002 * 12 RMEPLABL PTR(31), /* ADDRESS OF PREV RMEP BLOCK */ 24800002 * %RMEPLABL = 'RMEPEND'||RMEPSFX ; 25800002 * 10 RMEPLABL CHAR(0) BDY(DWORD), /* END OF BASE RMEP */ 26800002 * %RMEPLABL = 'RMEPSCH'||RMEPSFX ; 27800002 * 10 RMEPLABL CHAR(16) BDY(DWORD), /* SCHEDULING EXTENSN */ 28800002 * %RMEPLABL = 'RMEPFWD'||RMEPSFX ; 29800002 * 12 RMEPLABL PTR(31), /* TIME DRIVEN CHAIN FORWRD PTR */ 30800002 * %RMEPLABL = 'RMEPBCK'||RMEPSFX ; 31800002 * 12 RMEPLABL PTR(31), /* TIME DRIVEN CHAIN BCKWRD PTR */ 32800002 * %RMEPLABL = 'RMEPTME'||RMEPSFX ; 33800002 * 12 RMEPLABL FIXED(32) UNSIGNED, /* TIME WHEN ENTRY SCHED */ 34800002 * %RMEPLABL = 'RMEPINT'||RMEPSFX ; 35800002 * 12 RMEPLABL FIXED(32) UNSIGNED, /* INVOCATION INTERVAL */ 36800002 * %RMEPLABL = 'RMEPSND'||RMEPSFX ; 37800002 * 10 RMEPLABL CHAR(0) BDY(DWORD) /* END OF SCHD RMEP */ 50800002 * RMEP9999 51800002 * %RMEPLEN = 'LENGTH(RMEPEPB)' ; 52800002