* %GOTO PCBRPLS; /* 00050002 MACRO 00100002 IHAPCBR &DSECT=YES 00150002 AGO .PCBRRND 00200002 *********************************************************************** 00250002 * * 00300002 * STATUS - * 00350002 * CHANGE LEVEL 0 (OS/VS2 REL 2 VERSION) * 00400002 * FUNCTION - * 00450002 * MAPPING MACRO FOR ROOT PCB * 00500002 * ENTRY POINTS - * 00550002 * IHAPCBR MACRO CALL * 00600002 * INPUT - * 00650002 * SEE IHAPCBR MACRO DEFINITION * 00700002 * OUTPUT - * 00750002 * ROOT PCB MAPPING MACRO * 00800002 * EXTERNAL REFERENCES - * 00850002 * N/A * 00900002 * EXITS, NORMAL - * 00950002 * N/A * 01000002 * EXITS, ERROR - * 01050002 * N/A * 01100002 * TABLES/WORK AREAS - * 01150002 * N/A * 01200002 * ATTRIBUTES - * 01250002 * BILINGUAL MACRO * 01300002 * CHARACTER CODE DEPENDENCY - * 01350002 * NONE * 01400002 * NOTES - * 01450002 * NONE * 01500002 * * 01550002 *********************************************************************** 01600002 .PCBRRND ANOP 01650002 IEZBITS 01700002 *********************************************************************** 01750002 * ROOT PAGE CONTROL BLOCK 4/11/75 * 01800040 * * 01850002 * A ROOT PCB IS USED TO CONTROL POSTING OF A LOGICALLY RELATED * 01900002 * OPERATION CONSISTING OF RSM OPERATIONS FOR 'N' PAGES. THE * 01950002 * POSTING CAN NOT TAKE PLACE UNTIL ALL 'N' PAGE OPERATIONS * 02000002 * HAVE COMPLETED. * 02050002 *********************************************************************** 02100002 AIF ('&DSECT' EQ 'NO').PCBR001 02150002 PCBR DSECT , PCBRPTR 02200002 AGO .PCBR002 02250002 .PCBR001 ANOP 02300002 PCBR DS 0F 02350002 .PCBR002 ANOP 02400002 PCBRTCB DS 0F - FULLWORD REFERENCE FOR TCB POINTER 02450002 PCBRFLAG DS BL1 - FLAG FIELD. THE EXACT MEANING OF EACH 02500002 * BIT MAY VARY SLIGHTLY DEPENDING ON WHICH 02510002 * ROOT EXIT OR COMPLETION ROUTINE IS 02520002 * PROCESSING THE ROOT PCB. 02530002 PCBRINT EQU BIT0 - INTERCEPTED ROOT FLAG . 02550002 * FIX/LOAD ROOT EXIT SHOULD NOT PERFORM 02600002 * NORMAL COMPLETION NOTIFICATION OR A 02650002 * COMPLETION ROUTINE HAS BEEN SCHEDULED. 02700002 PCBRETRY EQU BIT1 - RETRY FLAG. WHEN 1 INDICATES A SWAP-IN 02750002 * HAS FAILED BUT IS RETRYABLE 02770002 PCBRPB EQU BIT2 - VEQRC OR SWAP ROOT SHOULD FREE ROOT PCB 02800002 PCBRFPCB EQU BIT3 - V=R ONLY. VRFREE SHOULD FREE ROOT PCB. 02850002 PCBRFAIL EQU BIT4 - ROOT FAILURE FLAG. 02900002 * WHEN 1 PART OF REQUESTED FUNCTION 02950002 * ASSOCIATED WITH ROOT PCB HAS FAILED 03000002 PCBRLOAD EQU BIT5 - LOAD REQUEST FLAG FOR FIX/LOAD ROOTS. 03050002 * WHEN 1 ROOT PCB IS FOR A PGLOAD REQUEST 03100002 PCBRFECB EQU BIT6 - FREE ECB FLAG FOR FIX/LOAD ROOTS. 03150002 * WHEN 1, PGFREE THE ECB ADDRESSED BY 03200002 * PCBRECB. WHEN 0, DO NOT PGFREE THE ECB. 03250002 PCBRPOF EQU BIT7 - FORCE PAGE OUT FLAG. WHEN 1, V=R FORCE 03300002 * PAGE OUT ROUTINE HAS BEEN SCHEDULED AND 03310002 * HAS NOT COMPLETED. DO NOT FREE THE ROOT 03320002 * PCB. THIS FLAG FOR V=R ROUTINES ONLY. 03330002 PCBRTCBA DS AL3 - TCB POINTER 03350002 * THE VSA OF TCB FOR THE TASK REQUESTING 03400002 * RSM SERVICES REQUIRING A ROOT PCB. 03450002 PCBRGOTO DS A - VSA OF ROOT EXIT ROUTINE 03500002 * THIS ROUTINE IS TO BE GIVEN CONTROL 03550002 * WHEN THE ROOT COUNT (PCBRCNT) IS 03600002 * DECREMENTED TO ZERO. 03650002 PCBRECB DS A - VSA OF REQUESTOR SUPPLIED ECB 03700002 * IF POSTING IS TO BE THE MODE OF 03750002 * COMPLETION NOTIFICATION. 03800002 PCBRASCB DS A - VSA OF ASCB FOR THE ADDRESS SPACE 03850002 * IN WHICH THE REQUESTING TCB RESIDES. 03900002 PCBRCNT DS FL2 - ROOT PCB COMPLETION COUNT 03950002 * THIS IS THE NUMBER OF PAGES ASSOCIATED 04000002 * WITH THE ROOT FOR WHICH PROCESSING HAS 04050002 * NOT YET COMPLETED. 04100002 PCBRRSV1 DS FL2 - RESERVED 04150002 PCBRWRK1 DS F - SCRATCH PAD 04200002 PCBRWRK2 DS F - SCRATCH PAD 04250002 PCBRWRK3 DS F - SCRATCH PAD 04300002 PCBRWRK4 DS F - SCRATCH PAD 04350002 PCBRWRK5 DS F - SCRATCH PAD 04400002 PCBRWRK6 DS F - SCRATCH PAD 04450002 PCBRWRK7 DS F - SCRATCH PAD 04500002 PCBRWRK8 DS F - SCRATCH PAD 04550002 PCBRWRK9 DS F - SCRATCH PAD 04600002 PCBRWRKA DS F - SCRATCH PAD @Z40WPYD 04610040 PCBRWRKB DS F - SCRATCH PAD @Z40WPYD 04620040 PCBRLEN EQU *-PCBR LENGTH OF ROOT PCB 04750002 MEND , */ 04800002 *%PCBRPLS : ; 04850002 * /*******************************************************************/ 04900002 * /* ROOT PAGE CONTROL BLOCK 4/11/75 */ 04950040 * /* A ROOT PCB IS USED TO CONTROL POSTING OF A LOGICALLY RELATED */ 05000002 * /* OPERATION CONSISTING OF RSM OPERATIONS FOR 'N' PAGES. THE */ 05050002 * /* POSTING CAN NOT TAKE PLACE UNTIL ALL 'N' PAGE OPERATIONS HAVE */ 05100002 * /* COMPLETED. */ 05150002 * /*******************************************************************/ 05200002 * %IF PCBR9999 ^= ',' /* IF THIS IS LAST BLOCK */ 05250002 * %THEN %PCBR9999 = ';'; /* THEN CLOSE DCL STATEMENT */ 05300002 * %IF PCBRLEVL ^= '' /* IF THIS IS CONCATENATED */ 05350002 * %THEN %GOTO PCBRPLS1; /* THEN SKIP DCL */ 05400002 *DCL 1 PCBR BASED (PCBRPTR) /* DECLARE PCBR LEVEL 1 */ 05450002 * %GO TO PCBRPLS2; /* AND SKIP LEVEL TWO DCL */ 05500002 *%PCBRPLS1: PCBRDUM=PCBRLEVL ||' PCBR'; /* SET LEVEL FOR MINOR */ 05550002 * PCBRDUM /* MINOR STRUCTURE NAME PARM */ 05600002 *%PCBRPLS2:; 05650002 * BDY(WORD), 05700002 * 4 PCBRTCB FIXED(31), /* FULLWORD REFERENCE FOR 05750002 * TCB POINTER */ 05800002 * 8 PCBRFLAG BIT(8), /* FLAG FIELD. THE EXACT MEANING OF 05850002 * EACH BIT DEPENDS ON WHICH ROOT 05860002 * EXIT OR COMPLETION ROUTINE IS 05860402 * PROCESSING THE ROOT PCB. */ 05862002 * 12 PCBRINT BIT(1), /* INTERCEPTED ROOT FLAG. 05900002 * THE ROOT EXIT SHOULD NOT PERFORM 05950002 * NORMAL COMPLETION NOTIFICATION 06000002 * OR THE ROOT COMPLETION ROUTINE 06050002 * HAS BEEN SCHEDULED. */ 06150002 * 12 PCBRETRY BIT(1), /* RETRY FLAG. WHEN 1 INDICATES A 06200002 * SWAP-IN HAS FAILED BUT IS 06210002 * RETRYABLE */ 06220002 * 12 PCBRPB BIT(1), /* VEQRC OR SWAP ROOT EXITS 06250002 * MUST FREE ROOT PCB. */ 06260002 * 12 PCBRFPCB BIT(1), /* V=R ONLY. VRFREE MUST FREE PCB*/ 06300002 * 12 PCBRFAIL BIT(1), /* ROOT FAILURE FLAG. WHEN 1, 06350002 * PART OF REQUESTED FUNCTION 06400002 * ASSOCIATED WITH THE ROOT PCB 06450002 * HAS FAILED. */ 06500002 * 12 PCBRLOAD BIT(1), /* LOAD REQUEST FLAG 06550002 * WHEN 1 ROOT PCB IS FOR A 06600002 * PGLOAD REQUEST. */ 06650002 * 12 PCBRFECB BIT(1), /* FREE ECB FLAG FOR FIX/LOAD ROOTS 06700002 * WHEN 1, FREE THE ECB. */ 06750002 * 12 PCBRPOF BIT(1), /* FORCE PAGE OUT FLAG. WHEN 1, V=R 06800002 * FORCE PAGE OUT ROUTINE HAS BEEN 06810002 * SCHEDULED AND HAS NOT COMPLETED. 06820002 * DO NOT FREE THE ROOT PCB. THIS 06830002 * FLAG FOR V=R ROUTINES ONLY. */ 06840002 * 8 PCBRTCBA PTR(24), /* TCB POINTER */ 06850002 * 4 PCBRGOTO PTR(31), /* ADDRESS OF ROUTINE TO 06900002 * BRANCH TO WHEN ROOT 06950002 * COUNT REACHES 0. */ 07000002 * 4 PCBRECB PTR(31), /* THE VSA OF THE REQUESTOR 07050002 * SUPPLIED ECB IF POSTING IS TO 07100002 * BE THE MODE OF COMPLETION 07150002 * NOTIFICATION. */ 07200002 * 4 PCBRASCB PTR(31), /* THE VSA OF THE ASCB FOR THE 07250002 * ADDRESS SPACE IN WHICH THE 07300002 * REQUESTING TCB RESIDES. */ 07350002 * 4 PCBRCNT FIXED(15), /* ROOT PCB COMPLETION COUNT. THE 07400002 * NUMBER OF PAGES ASSOCIATED WITH 07450002 * THE ROOT FOR WHICH PROCESSING 07500002 * HAS NOT YET COMPLETED. */ 07550002 * 4 PCBRRSV1 PTR(15), /* RESERVED */ 07600002 * 4 PCBRWRK1 FIXED(31), /* SCRATCH PAD */ 07650002 * 4 PCBRWRK2 FIXED(31), /* SCRATCH PAD */ 07700002 * 4 PCBRWRK3 FIXED(31), /* SCRATCH PAD */ 07750002 * 4 PCBRWRK4 FIXED(31), /* SCRATCH PAD */ 07800002 * 4 PCBRWRK5 FIXED(31), /* SCRATCH PAD */ 07850002 * 4 PCBRWRK6 FIXED(31), /* SCRATCH PAD */ 07900002 * 4 PCBRWRK7 FIXED(31), /* SCRATCH PAD */ 07950002 * 4 PCBRWRK8 FIXED(31), /* SCRATCH PAD */ 08000002 * 4 PCBRWRK9 FIXED(31), /* SCRATCH PAD */ 08050002 * 4 PCBRWRKA FIXED(31), /* SCRATCH PAD @Z40WPYD */ 08060040 * 4 PCBRWRKB FIXED(31) PCBR9999 /* SCRATCH PAD @Z40WPYD */ 08070040 * %PCBRLEN = 'LENGTH(PCBR)'; /* OBTAIN LENGTH OF ROOT PCB */ 08200002