* %GOTO VCBPLS; /* 00100002 MACRO 00150002 IHAVCB &DSECT=YES 00200002 AGO .VCBBIT DO NOT GENERATE PROLOGUE 00250002 *********************************************************************** 00300002 * * 00350002 * STATUS - * 00400002 * CHANGE LEVEL 0 * 00450002 * FUNCTION - * 00500002 * MAPPING MACRO FOR VCB * 00550002 * ENTRY POINTS - * 00600002 * IHAVCB MACRO CALL * 00650002 * INPUT - * 00700002 * SEE IHAVCB MACRO DEFINITION * 00750002 * OUTPUT - * 00800002 * VCB MAPPING MACRO * 00850002 * EXTERNAL REFERENCES - * 00900002 * N/A * 00950002 * EXITS, NORMAL - * 01000002 * N/A * 01050002 * EXITS, ERROR - * 01100002 * N/A * 01150002 * TABLES/WORK AREAS - * 01200002 * N/A * 01250002 * ATTRIBUTES - * 01300002 * BILINGUAL MACRO * 01350002 * CHARACTER CODE DEPENDENCY - * 01400002 * NONE * 01450002 * NOTES - * 01500002 * NONE * 01550002 * * 01600002 *********************************************************************** 01650002 .VCBBIT ANOP 01700002 IEZBITS , - DEFINE BITS 01750002 *********************************************************************** 01800002 ** VIO CONTROL BLOCK 4/11/75 @Z40WPYD * 01850040 ** * 01900002 ** * 01950002 ** THE VCB IS A PARAMETER LIST USED BY THE VIRTUAL BLOCK * 02000002 ** PROCESSOR WHEN CALLING VIO SERVICES INTERFACE. EACH VCB * 02050040 ** DEFINES WHAT FUNCTIONS ARE TO BE PERFORMED BY RSM FOR A * 02100002 ** SINGLE VIRTUAL ADDRESS PAGE. * 02150002 *********************************************************************** 02200002 AIF ('&DSECT' EQ 'YES').VCB001 DOES USER WANT DSECT 02250002 VCB DS 0F 02300002 AGO .VCB002 BRANCH AROUND DSECT 02350002 .VCB001 ANOP GEN THE DSECT 02400002 VCB DSECT , VCBPTR 02450002 .VCB002 ANOP 02500002 VCBLINK DS AL4 - VIRTUAL ADDR. OF NEXT VCB IN A 02550002 * CHAINED REQUEST 02600002 VCBVSA DS AL4 - VIRTUAL ADDR. OF A PAGE IN THE VIO 02650040 * WINDOW. THIS PAGE IS THE SOURCE PAGE 02700002 * FOR A MOVE-OUT OR THE TARGET ADDRESS 02750002 * FOR AN ASSIGN 02800002 VCBLPID DS CL8 - THE LPID USED TO REQUEST A PAGE-OUT 02900002 VCBOPFLG DS BL1 - OPERATION FLAGS 02950002 VCBMVOUT EQU BIT0 - DENOTES A MOVE-OUT IS TO BE PERFORMED 03000002 VCBRSV1 EQU BIT1 - RESERVED 03050002 VCBASIGN EQU BIT2 - DENOTES AN ASSIGN IS TO BE PERFORMED 03100002 VCBINSTG EQU BIT3 - THE REAL FRAME ASSIGNED TO A DATA SET 03150002 * PAGE REMAINS ASSIGNED TO THAT PAGE 03200002 * AFTER THE PAGE HAS BEEN REMOVED FROM 03250002 * THE VIRTUAL WINDOW AND COPIED TO 03260002 * AUX. STORAGE. THIS FLAG VALID ONLY IF 03300002 * VCBMVOUT=1. 03310002 * THIS FLAG IS VALID ONLY IF VCBMVOUT=1. 03350002 VCBNDISC EQU BIT4 - THE DATA SET PAGE WILL NOT BE REMOVED 03400002 * FROM ITS FRAME WHEN THE PAGE-OUT 03450002 * COMPLETES. VALID ONLY IF VCBMVOUT=1. 03500002 VCBLOAD EQU BIT5 - A PGLOAD WILL BE MADE UPON COMPLETION 03550002 * OF THE ASSIGN FUNCTION. VALID ONLY 03600002 * IF VCBASIGN=1. 03650002 VCBRSV2 EQU BIT6 - RESERVED 03700002 VCBRSV3 EQU BIT7 - RESERVED 03750002 VCBCPFLG DS BL1 - COMPLETION FLAGS 03800002 VCBNOVAC EQU BIT0 - IF VCBASIGN=1 AND THE PGTE FOR VCBVSA 03850002 * IS NOT ZERO, AN ERROR HAS OCCURRED. A 03900002 * MOVE-OUT WAS NOT REQUESTED FOR THE VSA 03950002 * IN ERROR. 04000002 VCBINVSA EQU BIT1 - VCBVSA DOES NOT CONTAIN A VALID VSA 04050002 VCBELPID EQU BIT2 - AN UNEXPECTED LPID WAS RECEIVED BY 04100002 * THE MOVE-OUT PROCESSOR. 04150002 VCBNOAUX EQU BIT3 - FOR A MOVE-OUT, NO AUX. STORAGE 04200002 * EXISTED OR WAS CREATED AND NO REAL 04250002 * STORAGE EXISTED FROM WHICH TO PAGE-OUT. 04300002 VCBEFIX EQU BIT4 - MOVE-OUT REQUESTED FOR A FIXED PAGE. 04350002 VCBRSN DS AL2 - THE RSN TO BE SAVED BY VIO WHEN 04550040 * VCBINSTG=1. 04600002 VCBDSPID DS CL4 - THE DATA SET PAGE ID USED WHEN 04650002 * ATTEMPTING VIO RECLAIM. 04700040 VCBEND DS 0C - END OF VIO CONTROL BLOCK 04730040 VCBLEN EQU VCBEND-VCB - LENGTH OF VIO CONTROL BLOCK 04760040 MEND , */ 04850002 *%VCBPLS : ; 04900002 * /*******************************************************************/ 04910002 * /* VIO CONTROL BLOCK 4/11/75 @Z40WPYD */ 04912040 * /* */ 04914002 * /* */ 04916002 * /* THE VCB IS A PARAMETER LIST USED BY THE VIRTUAL BLOCK */ 04918002 * /* PROCESSOR WHEN CALLING VIO SERVICES INTERFACE. EACH VCB */ 04918440 * /* DEFINES WHAT FUNCTIONS ARE TO BE PERFORMED BY RSM FOR A */ 04918802 * /* SINGLE VIRTUAL ADDRESS PAGE. */ 04919202 * /*******************************************************************/ 04969202 * %IF VCB9999^=',' /* IS BLOCK PART OF STRUCTURE */ 05400002 * %THEN %VCB9999=';'; /* NO, END BLOCK NORMALLY */ 05450002 * %IF VCBLEVEL^='' /* INITIAL LEVEL NUMBER GIVEN */ 05500002 * %THEN %GOTO VCBPLS1; /* YES THEN DO NOT GEN 1 LEVEL */ 05550002 *DECLARE 05600002 * 1 VCB BASED(VCBPTR) 05650002 * %GOTO VCBPLS2; /*SKIP USER-GIVEN LEVEL */ 05700002 *%VCBPLS1: VCBDUM=VCBLEVEL||' VCB'; 05750002 * VCBDUM 05800002 *%VCBPLS2:; 05850002 * BDY (WORD), 05900002 * 4 VCBLINK PTR(31), /* VIRTUAL ADDR OF NEXT VCB IN A 05950002 * CHAINED REQUEST */ 06000002 * 4 VCBVSA PTR(31), /* VIRTUAL ADDR. OF A PAGE IN 06050002 * THE VIO WINDOW. THE PAGE IS 06100040 * THE SOURCE PAGE FOR A MOVE-OUT 06110002 * OR THE TARGET PAGE FOR AN 06120002 * ASSIGN. */ 06150002 * 4 VCBLPID CHAR(8), /* THE LPID USED TO REQUEST A 06160002 * PAGE-OUT. */ 06170002 * 4 VCBOPFLG BIT(8), /* OPERATION FLAGS */ 06200002 * 8 VCBMVOUT BIT(1), /* WHEN 1, A MOVE-OUT IS 06300002 * REQUESTED. */ 06350002 * 8 VCBRSV1 BIT(1), /* RESERVED */ 06400002 * 8 VCBASIGN BIT(1), /* WHEN 1, AN ASSIGN IS REQUESTED*/ 06450002 * 8 VCBINSTG BIT(1), /* WHEN 1, THE REAL FRAME 06500002 * ASSIGNED TO A DATA SET PAGE 06550002 * REMAINS ASSIGNED TO THAT PAGE 06600002 * AFTER THE PAGE HAS BEEN REMOVED 06650002 * FROM THE VIRTUAL WINDOW AND 06660002 * COPIED TO AUX. STORAGE. THIS 06670002 * FLAG IS VALID ONLY IF 06700002 * VCBMVOUT=1. */ 06750002 * 8 VCBNDISC BIT(1), /* THE DATA SET PAGE WILL NOT BE 06800002 * REMOVED FROM ITS FRAME WHEN 06850002 * THE PAGE-OUT COMPLETES. VALID 06900002 * ONLY IF VCBMVOUT=1. */ 06950002 * 8 VCBLOAD BIT(1), /* A PGLOAD WILL BE MADE UPON 06960002 * COMPLETION OF THE ASSIGN 07000002 * FUNCTION. VALID ONLY IF 07010002 * VCBASIGN=1. */ 07050002 * 8 VCBRSV2 BIT(1), /* RESERVED */ 07100002 * 8 VCBRSV3 BIT(1), /* RESERVED */ 07150002 * 4 VCBCPFLG BIT(8), /* COMPLETION FLAGS */ 07200002 * 8 VCBNOVAC BIT(1), /* IF VCBASIGN=1 AND THE PGTE FOR 07250002 * VCBVSA IS NOT ZERO, AN ERROR 07300002 * HAS OCCURRED. A MOVE-OUT WAS 07350002 * NOT REQUESTED FOR THE VSA IN 07400002 * ERROR. */ 07450002 * 8 VCBINVSA BIT(1), /* VCBVSA DOES NOT CONTAIN A 07500002 * VALID VSA. */ 07550002 * 8 VCBELPID BIT(1), /* AN UNEXPECTED LPID WAS RECEIVED 07600002 * BY THE MOVE-OUT PROCESSOR. */ 07650002 * 8 VCBNOAUX BIT(1), /* FOR A MOVE-OUT, NO AUX. 07700002 * STORAGE EXISTED OR WAS CREATED 07750002 * AND NO REAL STORAGE EXISTED 07800002 * FROM WHICH TO PAGE-OUT. */ 07850002 * 8 VCBEFIX BIT(1), /* MOVE-OUT REQUESTED FOR A FIXED 07900002 * PAGE */ 07910002 * 8 * BIT(1), /* RESERVED */ 08000002 * 8 * BIT(1), /* RESERVED */ 08050002 * 8 * BIT(1), /* RESERVED */ 08100002 * 4 VCBRSN FIXED(16), /* THE REAL STORAGE NUMBER TO BE 08150002 * SAVED BY VIO WHEN VCBINSTG=1. */ 08200040 * 4 VCBDSPID CHAR(4) VCB9999 /* THE DATA SET ID USED WHEN 08300002 * ATTEMPTING VIO RECLAIM. */ 08350040 * %VCBLEN='LENGTH(VCB)'; /* LENGTH OF VCB */ 08400002