*/********************************************************************/ 00100003 * /* */ 00150000 * /* IDAVCRT (VSAM CHECKPOINT RESTART TABLE) DECLARATION */ 00200000 * /* */ 00250000 * /* MACRO NAME : IDAVCRT */ 00300000 * /* */ 00350000 * /* DESCRIPTIVE NAME : VSAM CHECKPOINT RESTART TABLE */ 00400000 * /* */ 00450000 * /* FUNCTION : THE VSAM CHECKPOINT RESTART TABLE (VCRT) IS USED BY */ 00500000 * /* VSAM CHECKPOINT RESTART AS A MEANS OF PROCESSING THE */ 00550000 * /* ALTERNATE INDEX ENVIRONMENT OF VSAM RELEASE TWO. THE VCRT */ 00600000 * /* IS SUBALLOCATED FROM VCRCORE, ALSO DESCRIBED BY THIS */ 00610003 * /* MACRO, AND CONTAINS A COUNT, BY ENTRY TYPE, OF EACH ENTRY */ 00650003 * /* APPENDED TO THE VCRT. THERE ARE THREE TYPES OF ENTRIES: */ 00700003 * /* */ 00750000 * /* 1. THE FIRST ENTRY TYPE IS THE VCRT OPEN ENTRY USED BY */ 00800003 * /* VSAM RESTART TO REBUILD THE CONTROL BLOCKS REQUIRED FOR A */ 00850003 * /* VALID RESTART. THIS ENTRY IS EIGHT BYTES IN LENGTH AND */ 00900003 * /* CONTAINS POINTERS TO THE USER AMBL, AND A SAVE AREA FOR */ 00950003 * /* THE HEADER ELEMENT BLOCKS FOR THE CLUSTER. THE SAVE AREA */ 01000003 * /* POINTER WILL BE ZERO IF THE CLUSTER IS PART OF THE */ 01050003 * /* IMMEDIATE UPGRADE SET. */ 01060003 * /* */ 01100000 * /* 2. THE SECOND ENTRY TYPE IS THE VCRT UPGRADE ENTRY, WHICH */ 01150000 * /* POINTS TO THE UPGRADE AMBLS AND THE HEB SAVE AREAS TO BE */ 01200003 * /* PROCESSED BY VSAM RESTART. THIS ENTRY IS EIGHT BYTES LONG */ 01250003 * /* AND WILL EXIST ONLY IF THE IMMEDIATE UPGRADE SET FOR THIS */ 01300000 * /* DATA SET WAS OPEN AT CHECKPOINT TIME. */ 01350000 * /* */ 01400000 * /* 3. THE THIRD ENTRY TYPE IS THE VCRT INDEX ENTRY. EIGHT */ 01800003 * /* BYTES IN LENGTH, THIS ENTRY EXISTS ONLY IF THE BASE DATA */ 01850000 * /* SET IS A KSDS OPEN FOR CREATE MODE PROCESSING. THERE WILL */ 01900000 * /* BE ONE INDEX ENTRY FOR EACH INDEX LEVEL THAT EXISTS AT */ 01950000 * /* CHECKPOINT TIME. THE INDEX ENTRY CONTAINS ICWA AND BUFFER */ 02000000 * /* POINTERS FOR THE INDEX LEVEL IT REPRESENTS. */ 02050000 * /* */ 02100000 * /* CONTROL BLOCK STRUCTURE : THE VCRT IS POINTED TO BY THE BIB */ 02150000 * /* */ 02200000 * /* INCLUDED MACROS : NONE */ 02250000 * /* */ 02300000 * /* METHOD OF ACCESS : DECLARE VCRTPTR AS PTR, AND */ 02350003 * /* RESPECIFY VCRCORE AND VCRHEBSA BASED */ 02360003 * /* */ 02400000 * /* CREATED BY : VCRCORE IS CREATED BY VSAM CHECKPOINT AND FREED */ 02450003 * /* BY THE VSAM C/R CLEANUP ROUTINE IN IGC0I96C FOR ALL */ 02500003 * /* SITUATIONS, INCLUDING ERRORS IN VS CHECKPOINT. */ 02550003 * /* */ 02600000 * /* STATUS : VS2 RELEASE 3 - LEVEL = 0 */ 02650003 * /* */ 02700000 * /* DATE OF LAST CHANGE : 28 AUGUST 74 */ 02750003 * /* */ 02800000 */********************************************************************/ 02850003 *@EJECT; 02860003 *%GOTO VCRT1; 02900000 * /* */ 02950000 * /* VCRT DIAGRAM */ 03000000 * /* */ 03050000 * /* 0 *-----------------------------------------* */ 03100003 * /* | VCRID | VCRFLAG1 | */ 03200000 * /* 4 |-----------------------------------------| */ 03250000 * /* | | */ 03350000 * /* | VCRIDNM | */ 03400000 * /* | | */ 03500000 * /* 12 |-----------------------------------------| */ 03550000 * /* | VCRCOREH | */ 03800003 * /* 16 |-----------------------------------------| */ 03850003 * /* | VCROPNCT | VCRUPGCT | */ 03950000 * /* 20 |-----------------------------------------| */ 04000003 * /* | VCRIDXCT | RESERVED | */ 04100003 * /* 24 |-----------------------------------------| */ 04150003 * /* | VCRCISIZ | */ 04200003 * /* 28 |-----------------------------------------| */ 04250003 * /* | VCRRBUF | */ 04260003 * /* 32 |-----------------------------------------| */ 04270003 * /* | VCROPN | */ 04300003 * /* 36 |-----------------------------------------| */ 04350003 * /* | VCRUPG | */ 04400003 * /* 40 |-----------------------------------------| */ 04450003 * /* | VCRIDX | */ 04500003 * /* 44 *-----------------------------------------* */ 04550003 * /* */ 05250000 * /* VCRT OPEN ENTRY */ 05300000 * /* */ 05350000 * /* *-----------------------------------------* */ 05400003 * /* | VCRHEBS | */ 05450003 * /* | POINTER TO HEB SAVE AREA | */ 05500003 * /* |-----------------------------------------| */ 05550000 * /* | VCRAMBL | */ 05600003 * /* | POINTER TO USER AMBL | */ 05650003 * /* *-----------------------------------------* */ 05850003 * /* */ 06050000 * /* THE VCRT UPGRADE ENTRY IS THE SAME AS THE OPEN ENTRY */ 06100003 * /* */ 06200000 * /* THE VCRT INDEX ENTRY */ 06650000 * /* */ 06700000 * /* *-----------------------------------------* */ 06750003 * /* | VCRICWA | */ 06800000 * /* | POINTER TO INDEX ICWA | */ 06850003 * /* |-----------------------------------------| */ 06900000 * /* | VCRBUFPT | */ 06950000 * /* | POINTER TO ASSOCIATED BUFFER | */ 07000003 * /* *-----------------------------------------* */ 07050003 * /* */ 07100000 * /* */ 07150000 *%VCRT1: ; 07250000 * DCL 1 IDAVCRT BASED(VCRTPTR), /* IDAVCRT */ 07350003 * 2 VCRID BIT(8), /* VCRT CONTROL BLOCK ID */ 07400000 * 2 VCRFLAG1 BIT(24), /* VCRT FLAGS */ 07450000 * 3 VCRUPGSW BIT(1), /* VCRT ENTRY TYPE */ 07500000 * /* 1=PROCESS VCRT UPGRADE*/ 07550000 * /* 0 = PROCESS VCRT OPEN */ 07600000 * 3 VCRLSR BIT(1), /* LSR SPECIFIED */ 07650000 * 3 VCROUT BIT(1), /* OUTPUT ACB IS OPEN */ 07700000 * 3 * BIT(21), /* RESERVED */ 07750000 * 2 VCRIDNM CHAR(8), /* VCRT CONTROL BLK NAME */ 07800000 * 2 VCRCOREH PTR(31), /* PTR TO HEAD OF VCRCORE*/ 07900003 * 2 VCROPNCT FIXED(15), /* OPEN ENTRY COUNT */ 07950000 * 2 VCRUPGCT FIXED(15), /* UPGRADE ENTRY COUNT */ 08000000 * 2 VCRIDXCT FIXED(15), /* INDEX ENTRY COUNT */ 08050003 * 2 * FIXED(15), /* RESERVED */ 08100003 * 2 VCRCISIZ FIXED(31), /* HIGH SPHERE CI SIZE */ 08150003 * 2 VCRSPHPT PTR(31), /* PTR TO SPHERE HEB SAVE*/ 08160003 * 2 VCRRBUF PTR(31), /* PTR TO RESTART BUFFER */ 08200003 * 2 VCROPN PTR(31), /* PTR VCRT OPEN ENTRIES */ 08250003 * 2 VCRUPG PTR(31), /* PTR VCRT UPGRADE ENTRY*/ 08300003 * 2 VCRIDX PTR(31); /* PTR VCRT INDEX ENTRIES*/ 08400003 */********************************************************************/ 08450003 */* */ 08500003 */* VCRT OPEN ENTRY */ 08550003 */* */ 08600003 */********************************************************************/ 08610003 * DCL 1 VCRENTRY(*) BASED(VCROPN), 08650003 * 2 VCRHEBS PTR(31), /* POINTER TO HEB SAVE */ 08700003 * 2 VCRAMBL PTR(31); /* POINTER TO USER AMBL */ 08750003 */********************************************************************/ 08950003 */* */ 09000003 */* VCRT UPGRADE ENTRY */ 09050003 */* */ 09100003 */********************************************************************/ 09150003 * DCL 1 VCRUPGRD(*) BASED(VCRUPG), 09200003 * 2 VCRUHEBS PTR(31), /* POINTER TO HEB SAVE */ 09250003 * 2 VCRUAMBL PTR(31); /* PTR TO UPGRADE AMBL */ 09300003 */********************************************************************/ 09350003 */* */ 09400003 */* VCRT INDEX ENTRY */ 09450003 */* */ 09500003 */********************************************************************/ 09550003 * DCL 1 VCRINDEX(*) BASED(VCRIDX), 09600003 * 2 VCRICWA PTR(31), /* POINTER TO ICWA */ 09650003 * 2 VCRBUFPT PTR(31); /* PTR TO ASSOCIATED BUF */ 09700003 *@EJECT; 09710003 */********************************************************************/ 09750003 */* */ 09800003 */* VCR CORE DESCRIPTION */ 09850003 */* */ 09900003 */********************************************************************/ 09950003 * DCL 1 VCRCORE BASED, 10000003 * 2 VCRCHDR, /* VCR CORE HEADER */ 10050003 * 3 VCRCNM CHAR(8), /* VCR CORE NAME FOR ID */ 10100003 * 3 VCRCNEXT PTR(31), /* PTR TO NEXT CORE BLK */ 10150003 * 3 VCRCDESC FIXED(31), /* CLEANUP INFORMATION */ 10200003 * 4 VCRCSP FIXED(8), /* SUBPOOL */ 10250003 * 4 VCRCLEN FIXED(24), /* LENGTH */ 10300003 * 3 VCRCPTRA PTR(31), /* PTR TO 1ST AVAIL BYTE */ 10350003 * 3 VCRCLENA FIXED(31), /* LENGTH OF AVAIL CORE */ 10400003 * 2 VCRCDATA CHAR(*); /* CORE FOR DATA */ 10450003 *@SPACE; 10460003 */********************************************************************/ 10500003 */* */ 10550003 */* VCR HEB SAVE DESCRIPTION */ 10600003 */* */ 10650003 */********************************************************************/ 10700003 * DCL 1 VCRHEBSA BASED, 10750003 * 2 VCRHHDR, /* HEADER PER CMB ENTRY */ 10800003 * 3 VCRHNENT FIXED(15), /* NUMBER OF ENTRIES */ 10850003 * 3 VCRHFLG BIT(8), /* HEADER FLAGS */ 10900003 * 4 VCRHFCON BIT(1), /* CONTINUATION HEADER */ 10950003 * 4 VCRHFREL BIT(1), /* FREEMAIN AT RESTART */ 11050003 * 3 VCRHCID FIXED(8), /* RELATIVE CMB ENTRY NO.*/ 11100003 * 3 VCRHNEXT PTR(31), /* POINTER TO NEXT HEADER*/ 11150003 * 2 VCRHENT(*) CHAR(LENGTH(HEBHDREL)) BDY(WORD),/* HEADER 11200003 * ELEMENT SAVED AT CHECKPOINT*/ 11210003 * 3 VCRHEFMN, /* FREEMAIN INFORMATION */ 11250003 * 4 VCRHESP FIXED(8), /* SUBPOOL OF STORAGE */ 11300003 * 4 VCRHELN FIXED(24), /* LENGTH OF GOTTEN CORE */ 11350003 * 4 VCRHESPT PTR(31); /* STORAGE ADDRESS */ 11400003 *@SPACE; 11600003 * DCL VCRNAME CHAR(8) CONSTANT('IDAVCRT ');/* VCRT ID NAME */ 11700003 * DCL VCRCNAME CHAR(8) CONSTANT('VCRCORE ');/* VCR CORE NAME */ 11750003