ibm:vm370-lib:cp:dmkats.assemble_src
Table of Contents
DMKATS Source
References
- Fixes Applied : 7
- This Source Date : Thursday, December 14, 1978
- Last Fix ID : [HRC106DK]
Source Listing
- DMKATS.ASSEMBLE.txt
- ATS TITLE 'DMKATS (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 VALIDATE SEQUENCING OF INPUT 00002000
- *. 00003000
- * MODULE NAME - 00004000
- * 00005000
- * DMKATS 00006000
- * 00007000
- * FUNCTION - 00008000
- * 00009000
- * 00010000
- * ATTRIBUTES - 00011000
- * REENTRANT, PAGEABLE, CALLED VIA SVC 00012000
- * 00013000
- * ENTRY POINTS - 00014000
- * 00015000
- * DMKATSCF - CALLED VIA SVC IF A SHARED PAGE IS GOING TO BE 00016000
- * CHANGED. 00017000
- * CALLED BY DMKTRC FOR (TRACE) COMMAND. 00018000
- * CALLED BY DMKCDS FOR VIRTUAL (STORE) COMMAND. 00019000
- * CALLED BY DMKCDS FOR (STCP) COMMAND. 00020000
- * CALLED BY DMKCFD FOR (ADSTOP) COMMAND. 00021000
- * 00022000
- * ENTRY CONDITIONS - 00023000
- * 00024000
- * DMKATSCF 00025000
- * GPR 2 = VITURAL PAGE ADDRESS @VA12533 00026500
- * GPR 11 = ADDRESS OF USER'S VMBLOK 00027000
- * GPR 12 = ENTRY POINT 00028000
- * GPR 13 = ADDRESS OF STANDARD SAVE AREA 00029000
- * 00030000
- * EXIT CONDITIONS - 00031000
- * NORMAL - 00032000
- * CONDITION CODE IT SET TO ZERO 00033000
- * ERROR - 00034000
- * CONDITION CODE IS SET TO NON-ZERO. 00035000
- * 00036000
- * THE CURRENT RUNUSER 00037000
- * IS SENT AN ERROR MESSAGE AND THE SHARED NAMED SYSTEM 00038000
- * THAT HE CHANGED IS RELEASE FOR RUNUSER. ALL OTHER 00039000
- * USER'S ARE UNAFFECTED BY THE ALTERATION OF THE SHARED 00040000
- * SYSTEM. 00041000
- * 00042000
- * CALLS TO OTHER ROUTINES - 00043000
- * DMKERMSG - TO SEND ERROR MESSAGES TO THE TERMINAL. 00044000
- * DMKFREE - TO OBTAIN FREE STORAGE 00045000
- * DMKFRET - TO RETURN STORAGE GOTTEN BY CALL TO DMKFREE 00046000
- * DMKPTRAN - TO BRING IN A USERS VIRTUAL PAGE 00047000
- * DMKSTKCP - STACK A CPEXBLOK 00048000
- * DMKCVTBH - CONVERT BINARY TO HEX 00049000
- * DMKCFMBK - TO PUT USER IN CONSOLE FUNCTION MODE 00050000
- * DMKDSPCH - DISPATCHER 00051000
- * DMKPTRLK - TO LOCK A PAGE IN STORAGE 00052000
- * DMKPTRUL - TO UNLOCK A PAGE IN STORAGE 00053000
- * DMKPTRFT - RELEASE A REAL STORAGE FRAME 00054000
- * DMKSCNVS - LOCATE A RDEVBLOK FOR VOLSER 00055000
- * DMKCVTAB - ABEND SYSTEM AFTER CLOCK FAILURE 00056000
- * DMKPGTPR - RELEASE A DASDI SLOT 00057000
- * DMKPTRPW - WAIT FOR PAGING ACTIVITY TO END 00058000
- * DMKVMASH - CHECK FOR CHANGED SHARED PAGES 00059000
- * 00060000
- * TABLES/WORKAREAS - 00061000
- * CORTABLE 00062000
- * VMABLOK 00063000
- * SHRTABLE 00064000
- * VMBLOK 00065000
- * PAGTABLE 00066000
- * SEGTABLE 00067000
- * SWPTABLE 00068000
- * DMKSYSOW 00069000
- * DMKPTRUC 00070000
- * DMKSNTBL 00071000
- * DMKPTRSC 00072000
- * DMKPTRRC 00073000
- * DMKDSPNP 00074000
- * 00075000
- * REGISTER USAGE - 00076000
- * GPR0 - PREFIX STORAGE AREA 00077000
- * GPR5 - ADDRESS OF SWPTABLE 00078000
- * GPR6 - ADDRESS OF PAGCORE 00079000
- * GPR7 - ADDRESS OF CORTABLE 00080000
- * GPR8 - ADDRESS OF SEGTABLE 00081000
- * GPR9 - ADDRESS OF VMABLOK 00082000
- * GPR10- ADDRESS OF SHRTABLE 00083000
- * GPR11- ADDRESS OF VMBLOK 00084000
- * GPR12- BASE REGISTER FOR THIS MODULE 00085000
- * GPR13- ADDRESS OF STANDARD SAVE AREA 00086000
- * GPR14- LINKAGE REGISTER 00087000
- * GPR15- LINKAGE REGISTER 00088000
- * 00089000
- * NOTES - 00090000
- * NONE 00091000
- * 00092000
- * OPERATION - 00093000
- * 00094000
- * DMKATSCF IS CALLED BY THE COMMAND PROCESSORS WHEN IT IS 00095000
- * DETERMINED THAT THE EXECUTION OF THE COMMAND IS GOING TO 00096000
- * CHANGE A SHARED PAGE. THE VIRTUAL MACHINE ISSUING THE COMMAND 00097000
- * IS NOTIFIED THAT THE COMMAND HAS CAUSED THE RELEASE OF THE 00098000
- * SHARED SYSTEM. THE USER WILL CONTINUE TO RUN WITHOUT A SHARED 00099000
- * COPY OF THE NAMED SYSTEM. 00100000
- * 00101000
- *. 00102000
- EJECT 00103000
- COPY OPTIONS @V60BC11 00104000
- COPY LOCAL @V60BC11 00105000
- DMKATS CSECT @V60BC11 00106000
- EXTRN DMKPTRSC @V60BC11 00107000
- EXTRN DMKPTRRC @V60BC11 00108000
- EXTRN DMKDSPNP @V60BC11 00109000
- EXTRN DMKCVTAB @V60BC11 00110000
- EXTRN DMKCVTBH @V60BC11 00111000
- EXTRN DMKCFMBK @V60BC11 00112000
- EXTRN DMKSTKCP @V60BC11 00113000
- EXTRN DMKERMSG @V60BC11 00114000
- EXTRN DMKSCHDL @V60BC11 00115000
- EXTRN DMKSYSOW @V60BC11 00116000
- EXTRN DMKSNTBL,DMKSCNVS,DMKPTRUL,DMKPGTPR,DMKPTRFT @V60BC11 00117000
- EXTRN DMKPTRPW @V60BC11 00118000
- EXTRN DMKPTRAN @V60BC11 00119000
- EXTRN DMKPTRUC @V60BC11 00120000
- EXTRN DMKVMASH @V60BC11 00121000
- EXTRN DMKSYSAP @VMI0016 00122000
- SPACE 00123000
- USING PSA,R0 @V60BC11 00124000
- USING SWPTABLE,R5 @V60BC11 00125000
- USING PAGCORE,R6 @V60BC11 00126000
- USING CORTABLE,R7 @V60BC11 00127000
- USING SEGTABLE,R8 @V60BC11 00128000
- USING VMABLOK,R9 @V60BC11 00129000
- USING SHRTABLE,R10 @V60BC11 00130000
- USING VMBLOK,R11 @V60BC11 00131000
- USING DMKATS,R12 @V60BC11 00132000
- USING SAVEAREA,R13 @V60BC11 00133000
- EJECT 00134000
- DC C'DMKATS ' MODULE IDENTIFIER 00135000
- DMKATSCF RELOC HANDLE (TRACE,STORE,ADSTOP) COMMAND @V60BC11 00136000
- XC SAVEWRK1,SAVEWRK1 CLEAR FLAG BYTE & WORKAREA @V60BC11 00137000
- XC SAVEWRK2(SAVEWRK9-SAVEWRK2+4),SAVEWRK2 CLEAR @V60BC11 00138000
- CL R11,LASTUSER IS LASTUSER THE SAME AS THIS USER@V60BC11 00139000
- BNE NOCHG NO, OK TO UNSHARE THIS USER @V60BC11 00140000
- CALL DMKVMASH YES, CHECK FOR CHANGED PAGES @V60BC11 00141000
- BZ NOCHG NO CHANGES, OK TO UNSHARE @V60BC11 00142000
- MVI SAVEWRK1,HEXFF SET FIELD FOR NON-ZERO CC @V60BC11 00143000
- CFEXIT DS 0H @V60BC11 00144000
- SLR R0,R0 ZIP REG @V60BC11 00145000
- C R0,SAVEWRK6 WAS DMKSNT BROUGHT IN @V60BC11 00146000
- BE CFEXIT1 NO, SKIP RELEASING FRAME @V60BC11 00147000
- L R2,SAVEWRK6 GET ADDRESS OF FRAME @V60BC11 00148000
- CALL DMKPTRUL UNLOCK THE FRAME @V60BC11 00149000
- CFEXIT1 DS 0H @V60BC11 00150000
- TM SAVEWRK1,HEX00 SET THE CONDITION CODE @V60BC11 00151000
- EXIT RETURN TO CALLER @V60BC11 00152000
- SPACE 2 00153000
- NOCHG DS 0H @V60BC11 00154000
- CALL DMKPTRPW,AFFINITY WAIT FOR PAGING TO COMPLETE @V60BC11 00155000
- LR R1,R2 SET R1 FOR TRANS @VA12533 00155500
- TRANS 2,1,OPT=(BRING,DEFER) @VA12533 00155600
- BAL R3,GETSHRNM GET PTRS TO (SHRTABLE/VMABLOK) @V60BC11 00156000
- MVC SAVEWRK2(L'SHRNAME),SHRNAME SAVE THE NAME OF @V60BC11 00157000
- * THE SHARED SYSTEM 00158000
- LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @VA12771 00159500
- CALL DMKFREE GET A CPEXBLOK @VA12771 00160000
- USING CPEXBLOK,R1 @VA12771 00160500
- LM R2,R3,SAVEWRK2 SAVE THE SHARED SYS NAME @VA12771 00161000
- STM R0,R15,CPEXREGS SAVE ALL THE REGISTERS @VA12771 00161500
- LA R15,ERR181 GET ADDRESS OF MESSAGE ROUTINE @VA12771 00162000
- ST R15,CPEXADD STORE RETURN ADDRESS @VA12771 00162500
- CALL DMKSTKCP STACK THE CPEXBLOK @VA12771 00163000
- DROP R1 @VA12771 00163500
- XC SAVEWRK2(SAVEWRK3-SAVEWRK2+4),SAVEWRK2 ZERO NAME@V60BC11 00165000
- BAL R14,UNSHARE UNSHARE USER FROM THIS SYSTEM @V60BC11 00166000
- OI APSTAT2,CPPTLBR INDICATE PTLB NEEDED @V60BC11 00167000
- CFSETCC DS 0H @V60BC11 00168000
- MVI SAVEWRK1,HEX00 SET FIELD FOR ZERO CC @V60BC11 00169000
- B CFEXIT RETURN @V60BC11 00170000
- ERR181 DS 0H @VA12771 00170050
- USING EMSGBLOK,R1 @VA12771 00170100
- LA R0,EMSGSIZE GET SIZE OF AREA FOR MESSAGE @VA12771 00170150
- CALL DMKFREE GET ADDRESS OF AREA FOR MESSAGE @VA12771 00170200
- XC EMSGAREA,EMSGAREA CLEAR MESSAGE AREA @VA12771 00170250
- STM R2,R3,EMSGNAME MOVE IN SHARED SYS NAME @VA12771 00170300
- DROP R1 @VA12771 00170350
- LA R0,L'SHRNAME LENGTH OF THE NAME FOR MESSAGE @VA12771 00170400
- ICM R0,B'1110',=C'ATS' MODULE IDENT. @VA12771 00170450
- LA R2,EMSG181 LOAD ERROR CODE @VA12771 00170500
- ICM R2,B'1000',=X'80' FLAGS TO RETURN TO CALLER @VA12771 00170550
- CALL DMKERMSG CALL THE MESSAGE WRITTER @VA12771 00170600
- LA R0,EMSGSIZE SIZE OF EMSGBLOK IN DW'S @VA12771 00170650
- CALL DMKFRET FRET THE EMSGBLOK @VA12771 00170700
- GOTO DMKDSPCH GO TO THE DISPATCHER @VA12771 00170750
- EJECT 00171000
- * 00172000
- * THIS SECTION OF CODE WILL UNSHARE THE USER FROM THE NAMED 00173000
- * SYSTEM. INPUT TO THIS ROUTINE IS THE ADDRESS 00174000
- * OF THE VMABLOK IN R10. 00175000
- * 00176000
- UNSHARE DS 0H @V60BC11 00177000
- ST R14,SAVEWRK8 SAVE RETURN ADDRESS @V60BC11 00178000
- CLC SHRUSECT,F1+2 IS THIS THE LAST USER? @V60BC11 00179000
- BE LSTSUSER YES, GO USE SHARED PAGTABLES @V60BC11 00180000
- L R2,SHRSEGCT LOAD NUMBER OF SHARED SEGMENTS @V60BC11 00181000
- BCTR R2,0 DECREMENT FOR INDEXING @V60BC11 00182000
- NAMELOOP DS 0H @V60BC11 00183000
- SLR R8,R8 ZERO REG @V60BC11 00184000
- IC R8,SHRSEGNM(R2) GET SHARED SEGMENT NUMBER @V60BC11 00185000
- SLL R8,2 TIMES FOUR FOR INDEXING @V60BC11 00186000
- AL R8,VMSEG LOAD ADDRESS OF SEGTABLE ENTRY @V60BC11 00187000
- L R6,SEGPAGE LOAD ADDRESS OF PTO @V60BC11 00188000
- TM SEGPAGE+3,SEGINV SEGMENT VALID @V60BC11 00189000
- BZ B1 YES, SKIP SETTING OF FLAG @V60BC11 00190000
- OI SAVEWRK1,INVLSEG SET FLAG FOR UPDATING COUNTERS @V60BC11 00191000
- B1 N R6,CLCNTINV CLEAR UNWANTED BITS @V60BC11 00192000
- LR R0,R6 LOAD R0 WITH ADDRESS OF PTO @V60BC11 00193000
- SL R0,F16 BACKUP TO PAGTABLE @V60BC11 00194000
- ST R0,SAVEWRK2 SAVE FOR LATER USE @V60BC11 00195000
- L R3,SEGPAGE LOAD R3 WITH STE @V60BC11 00196000
- SRL R3,28 SHIFT TO OBTAIN NUMBER OF PTES @V60BC11 00197000
- LA R3,1(R3) PLUS ONE FOR LOOP CONTROL @V60BC11 00198000
- B OBTABLES GO GET NEW PAGTABLE @V60BC11 00199000
- DECOUNT DS 0H @V60BC11 00200000
- NI SAVEWRK1,X'FF'-(INVLSEG+PTOBTAIN) RESET INVALID @V60BC11 00201000
- * SEGMENT & PAGTABLE OBTAINED FLAGS@V60BC11 00202000
- S R2,F1 ANYMORE SEGMENTS @V60BC11 00203000
- BNM NAMELOOP YES, GO PROCESS THEM @V60BC11 00204000
- ICM R4,7,SAVEWRK1+1 LOAD ADDR PREVIOUS VMABLOK @V60BC11 00205000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00206000
- BO SKRST2 YES, SKIP VMABLOK FRET'ING @V60BC11 00207000
- LR R1,R9 LOAD ADDR VMABLOK FOR FRET @V60BC11 00208000
- L R9,VMAFPNT LOAD ADDR NEXT VMABLOK @V60BC11 00209000
- ST R9,VMAFPNT-VMABLOK(,R4) DEQUEUE CURRENT VMABLOK @V60BC11 00210000
- LA R0,VMASIZE GET NUMBER DOUBLEWORDS @V60BC11 00211000
- CALL DMKFRET RETURN THE VMABLOK @V60BC11 00212000
- SKRST2 DS 0H @V60BC11 00213000
- LH R1,VMSHRSYS LOAD USERS SHARED SYSTEM COUNT @V60BC11 00214000
- BCT R1,SKRST1 DECREMENT FOR ONE UNSHARED @V60BC11 00215000
- NI VMOSTAT,X'FF'-VMSHR GONE TO ZERO,RESET SHARE BIT@V60BC11 00216000
- SKRST1 DS 0H @V60BC11 00217000
- STH R1,VMSHRSYS STORE UPDATED COUNT @V60BC11 00218000
- LH R1,SHRUSECT LOAD SHARED SYSTEM USER COUNT @V60BC11 00219000
- BCTR R1,0 DECREMENT FOR USER UNSHARED @V60BC11 00220000
- STH R1,SHRUSECT STORE UPDATED COUNT @V60BC11 00221000
- MVC SAVEWRK2(L'SHRNAME),SHRNAME SAVE NAME OF SYSTEM @V60BC11 00222000
- * ACROSS TRANS @V60BC11 00223000
- EJECT 00224000
- * 00225000
- * THIS SECTION OF CODE WILL RECONSTRUCT THE SWAP 00226000
- * TABLE ENTRIES. IT WILL BRING IN DMKSNTBL AND FILL IN ALL THE 00227000
- * SWPTABLE ENTRIES FOR THE UNSHARED SEGMENTS WITH THE ORIGINAL 00228000
- * CCPD OF THE SYSOWNED VOLUME CONTAINING THE SHARED SYSTEM. 00229000
- * 00230000
- SLR R0,R0 ZERO REG @V60BC11 00231000
- C R0,SAVEWRK6 NAME TABLE ALREADY IN @V60BC11 00232000
- BNE SKIPTRAN YES, SKIP TRANS @V60BC11 00233000
- L R1,=A(DMKSNTBL) LOAD ADDRESS OF NAME TABLE @V60BC11 00234000
- TRANS 2,1,OPT=(BRING,DEFER,LOCK,SYSTEM),AFFINITY @V60BC11 00235000
- ST R2,SAVEWRK6 SAVE ADDRESS FOR FUTURE USE @V60BC11 00236000
- SKIPTRAN L R4,SAVEWRK6 LOAD ADDR OF DMKSNTBL @V60BC11 00237000
- CKNAME DS 0H @V60BC11 00238000
- USING SYSTBL,R4 @V60BC11 00239000
- CLC SYSNAME,SAVEWRK2 COMPARE NAMES @V60BC11 00240000
- BE FOUNDNAM BRANCH WHEN FOUND @V60BC11 00241000
- L R3,SYSPNT LOAD DISPLACEMENT TO NEXT ENTRY @V60BC11 00242000
- AR R4,R3 BUMP TO NEXT ENTRY @V60BC11 00243000
- LTR R3,R3 REACHED END OF TABLE @V60BC11 00244000
- BNZ CKNAME NO, CONTINUE SEARCHING @V60BC11 00245000
- B ERROR3 YES, SOMTHINGS REALLY WRONG @V60BC11 00246000
- FOUNDNAM DS 0H @V60BC11 00247000
- LA R1,SYSVOL LOAD ADDR OF VOLSER FOR SYSVOL @V60BC11 00248000
- LA R0,L'SYSVOL SERIAL LENGTH @V60BC11 00249000
- CALL DMKSCNVS LOCATE RDEVBLOK FOR SYSVOL @V60BC11 00250000
- BNZ ERROR4 COUDN'T FIND SYSVOL @V60BC11 00251000
- L R5,SYSSTART GET STARTING CCPD @V60BC11 00252000
- USING RDEVBLOK,R1 @V60BC11 00253000
- IC R5,RDEVCODE+1 INSERT INDEX INTO OWNED LIST @V60BC11 00254000
- LA R0,PAGE3330 MAXIMUM PAGES/CYL ON 3330 @V60BC11 00255000
- TM RDEVTYPE,TYP3330 IS THIS A 3330 @V60BC11 00256000
- BO SAVMAXPG YES ----- @V60BC11 00257000
- LA R0,PAGE2314 MAXIMUM PAGES/CYL ON 2314 @V60BC11 00258000
- TM RDEVTYPE,TYP2314 IS THIS A 2314 @V60BC11 00259000
- BO SAVMAXPG YES ----- @V60BC11 00260000
- LA R0,PAGE3350 MAXIMUM PAGES/CYL ON 3350 @V60BC11 00261000
- TM RDEVTYPE,TYP3350 IS THIS A 3350 @V60BC11 00262000
- BO SAVMAXPG YES ----- @V60BC11 00263000
- LA R0,PAGE3375 Maximum pages/cyl on 3375 HRC106DK 00263100
- TM RDEVTYPE,TYP3375 Is this a 3375 HRC106DK 00263200
- BO SAVMAXPG Yes ----- HRC106DK 00263300
- LA R0,PAGE3380 Maximum pages/cyl on 3380 HRC106DK 00263400
- TM RDEVTYPE,TYP3380 Is this a 3380 HRC106DK 00263500
- BO SAVMAXPG Yes ----- HRC106DK 00263600
- LA R0,PAGE2305 PAGES/CYL FOR 2305 AND 3340 @V60BC11 00264000
- DROP R1 @V60BC11 00265000
- SAVMAXPG DS 0H @V60BC11 00266000
- SLL R0,8 SETUP FOR LATER COMPARE @V60BC11 00267000
- ST R0,SAVEWRK2 STORE IT AWAY FOR LATER USE @V60BC11 00268000
- SLR R3,R3 ZERO REG FOR INDEXING @V60BC11 00269000
- L R6,F256 INCREMENT CONSTANT FOR CCPD'S @V60BC11 00270000
- LH R7,SYSPAGLN NUMBER OF ENTRIES IN SYSPAGNM @V60BC11 00271000
- ST R9,SAVEWRK3 SAVE ADDR VMABLOK @V60BC11 00272000
- NXTRANGE DS 0H @V60BC11 00273000
- L R8,SYSPAGNM(R3) LOAD RANGE OF PAGES @V60BC11 00274000
- SRDL R8,16 START PAGE TO LOW ORDER OF R8 @V60BC11 00275000
- SRL R9,16 END PAGE TO LOW ORDER OF R9 @V60BC11 00276000
- SLL R8,12 FORM START PAGE ADDRESS @V60BC11 00277000
- SLL R9,12 FORM END PAGE ADDRESS @V60BC11 00278000
- NXTSLOT DS 0H @V60BC11 00279000
- AR R5,R6 BUMP TO NEXT CCPD @V60BC11 00280000
- LR R1,R5 CCPD TO R1 @V60BC11 00281000
- N R1,CLRSEGNM SAVE ONLY PAGE NUMBER @V60BC11 00282000
- CL R1,SAVEWRK2 NEED TO BUMP TO NEXT CYLINDER @V60BC11 00283000
- BNH SWAPCONT NOT YET @V60BC11 00284000
- A R5,BUMPLOW ADD ONE TO CYLINDER NUMBER @V60BC11 00285000
- ICM R5,B'0010',F1+3 RESET PAGE NUMBER TO ONE @V60BC11 00286000
- SWAPCONT DS 0H @V60BC11 00287000
- LR R2,R8 START ADDRESS TO R2 @V60BC11 00288000
- SRL R2,16 SEGMENT NO. ONLY @V60BC11 00289000
- SLL R2,2 SEGMENT NO. * 4 FOR INDEX @V60BC11 00290000
- AL R2,VMSEG LOAD ADDR OF SEGTABLE ENTRY @V60BC11 00291000
- L R2,0(R2) LOAD ADDR OF PTO @V60BC11 00292000
- N R2,CLCNTINV CLEAR UNWANTED BITS @V60BC11 00293000
- S R2,F16 BACKUP TO HEADER @V60BC11 00294000
- LA R2,PAGTSWP+8(,R2) LOAD ADDR 1ST SWPTABLE ENTRY @V60BC11 00295000
- LR R1,R8 VIRTUAL ADDRESS @V60BC11 00296000
- SRL R1,12 PAGE NUMBER @V60BC11 00297000
- N R1,F15 PAGE NO. WITHIN SEGMENT @V60BC11 00298000
- SLL R1,3 PAGE NO. *8 FOR SWPTABLE @V60BC11 00299000
- * ENTRY INDEX @V60BC11 00300000
- AR R2,R1 GET ADDR SWPTABLE ENTRY @V60BC11 00301000
- USING SWPFLAG,R2 @V60BC11 00302000
- TM SWPFLAG,SWPALLOC UNCHANGED PAGE @VMI0064 00303000
- BZ NXTRPAGE NO, SKIP RESETTING CCPD @VMI0064 00304000
- ST R5,SWPCYL STORE ORIGINAL CCPD @V60BC11 00305000
- NI SWPFLAG,X'FF'-SWPALLOC RESET ALLOCATE BIT @VMI0064 00306000
- NXTRPAGE A R8,F4096 BUMP TO NEXT VIRTUAL PAGE ADDR @V60BC11 00307000
- CR R8,R9 REACHED END OF RANGE @V60BC11 00308000
- BNH NXTSLOT NO, CONTINUE UPDATES @V60BC11 00309000
- A R3,F4 BUMP SYSPAGNM INDEX @V60BC11 00310000
- BCT R7,NXTRANGE IF MORE ENTRIES, KEEP LOOPING @V60BC11 00311000
- * THIS NEXT SECTION WILL LOOP THROUGH THE RANGES AGAIN TO ENSURE 00312000
- * WE RESET ALL THE PAGES WITHIN THE SEGMENT(S). THIS WILL RESET 00313000
- * THE ENTRIES SKIPPED BY THE RANGE OF PAGE NUMBERS IN DMKSNT. 00314000
- * 00315000
- SLR R3,R3 ZIP REGISTER @VMI0064 00316000
- ST R3,TEMPR0 INITIALIZE RANGE FIELD @VMI0064 00317000
- LH R7,SYSPAGLN GET NUMBER ENTRIES IN SYSPAGNM @VMI0064 00318000
- REBRANGE DS 0H @VMI0064 00319000
- L R8,SYSPAGNM(R3) LOAD RANGE OF PAGES @VMI0064 00320000
- SRDL R8,16 START PAGE TO LOW ORDER OF R8 @VMI0064 00321000
- SRL R9,16 END PAGE TO LOW ORDER OF R9 @VMI0064 00322000
- SLL R8,12 FORM START PAGE ADDRESS @VMI0064 00323000
- SLL R9,12 FORM END PAGE ADDRESS @VMI0064 00324000
- CL R8,TEMPR0 START WITH RANGE ALREADY DONE @VMI0064 00325000
- BH REBPAGE NO, PROCESS RANGE @VMI0064 00326000
- CL R9,TEMPR0 END WITHIN RANGE ALREADY DONE @VMI0064 00327000
- BL REBTEST YES, GET NEXT RANGE @VMI0064 00328000
- REBPAGE DS 0H @VMI0064 00329000
- N R8,FORCEPG0 FORCE START TO PAGE 0 OF SEGMENT @VMI0064 00330000
- O R9,FORCEPGF FORCE END TO END OF SEGMENT @VMI0064 00331000
- ST R9,TEMPR0 SAVE END ADDRESS IN RANGE @VMI0064 00332000
- REBSWAP DS 0H @VMI0064 00333000
- LR R2,R8 START ADDRESS TO R2 @VMI0064 00334000
- SRL R2,16 SEGMENT NUMBER ONLY @VMI0064 00335000
- SLL R2,2 SEGMENT NO. * 4 FOR INDEXING @VMI0064 00336000
- AL R2,VMSEG LOAD ADDR OF SEGMENT ENTRY @VMI0064 00337000
- L R2,0(,R2) LOAD ADDR OF PTO @VMI0064 00338000
- N R2,CLCNTINV CLEAR UNWANTED BITS @VMI0064 00339000
- S R2,F16 BACKUP TO HEADER @VMI0064 00340000
- LA R2,PAGTSWP+8(,R2) LOAD ADDR 1ST SWPTABLE ENTRY @VMI0064 00341000
- LR R1,R8 VIRTUAL ADDRESS TO R1 @VMI0064 00342000
- N R1,FORCEPGF GET PAGE NUMBER @VMI0064 00343000
- SRL R1,9 PAGE NUMBER * 8 @VMI0064 00344000
- AR R2,R1 GET ADDR SWPTABLE ENTRY @VMI0064 00345000
- TM SWPFLAG,SWPALLOC UNCHANGED PAGE @VMI0064 00346000
- BZ REBTEST NO, SKIP RESETTING @VMI0064 00347000
- NI SWPFLAG,X'FF'-SWPALLOC YES, RESET ALLOCATE BIT @VMI0064 00348000
- REBTEST DS 0H @VMI0064 00349000
- A R8,F4096 BUMP TO NEXT VIRTUAL PAGE ADDR @VMI0064 00350000
- CR R8,R9 REACHED END OF RANGE @VMI0064 00351000
- BNH REBSWAP NO, KEEP PROCESSING @VMI0064 00352000
- A R3,F4 YES, BUMP TO NEXT SYSPAGNM ENTRY @VMI0064 00353000
- BCT R7,REBRANGE BRANCH IF MORE ENTRIES TO PROCESS@VMI0064 00354000
- UNSHEXIT DS 0H @V60BC11 00355000
- L R14,SAVEWRK8 RESTORE RETURN ADDRESS @V60BC11 00356000
- BR R14 RETURN TO CALLER @V60BC11 00357000
- DROP R2 @V60BC11 00358000
- EJECT 00359000
- * 00360000
- * THIS SECTION OF CODE WILL OBTAIN THE NEW PAGE AND SWAP TABLES. 00361000
- * 00362000
- OBTABLES DS 0H @V60BC11 00363000
- L R6,SAVEWRK2 LOAD ADDRESS PAGTABLE HEADER @V60BC11 00364000
- BAL R14,BLPAGSWP BUILD PAGE AND SWAP TABLES @V60BC11 00365000
- ST R5,SAVEWRK3 SAVE ADDR OF NEW PAGTABLE @V60BC11 00366000
- OI SAVEWRK1,PTOBTAIN INDICATE PAGTABLE BUILT @V60BC11 00367000
- USING PAGTABLE,R6 00368000
- SPACE 2 00369000
- L R6,SAVEWRK2 LOAD PAGTABLE HEADER ADDRESS @V60BC11 00370000
- TM SAVEWRK1,INVLSEG WAS THE SEGMENT INVALID @V60BC11 00371000
- BZ UPDTBTH2 NO, UPDATE BOTH PAGACT + PAGTOT @V60BC11 00372000
- LH R0,PAGTOT LOAD TOTAL USER COUNT @V60BC11 00373000
- BCTR R0,0 DECREMENT FOR THIS USER @V60BC11 00374000
- STH R0,PAGTOT STORE UPDATED COUNTER @V60BC11 00375000
- TM APSTAT1,APUOPER RUNNING IN ATTACHED MODE @V60BC11 00376000
- BZ BLUNCHNG NO,CONTINUE PROCESSING @V60BC11 00377000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00378000
- BO BLUNCHNG YES, ONLY SINGLE COPY @V60BC11 00379000
- TM APSTAT1,PROCIPL RUNNING ON MAIN (IPL) PROC? @V60B7AA 00380100
- BZ B2 NO, ADJUST FOR ATTACHED PAGTABLE @V60BC11 00381000
- STH R0,PAGBMP+PAGTOT UPDATE THE ATTACHED TOTAL COUNT@V60BC11 00382000
- B BLUNCHNG GO BUILD PAGTABLE @V60BC11 00383000
- B2 LA R14,PAGBMP LOAD INCREMENT VALUE @V60BC11 00384000
- SLR R6,R14 BACKUP TO MAIN PAGTABLE @V60BC11 00385000
- STH R0,PAGTOT UPDATE THE MAIN TOTAL COUNT @V60BC11 00386000
- ALR R6,R14 RESET PAGTABLE POINTER @V60BC11 00387000
- B BLUNCHNG BUILD PAGTABLE BECAUSE PREVCHNG @V60BC11 00388000
- UPDTBTH2 DS 0H @V60BC11 00389000
- L R0,PAGACT LOAD PAGACT + PAGTOT COUNTERS @V60BC11 00390000
- TM APSTAT1,APUOPER RUNNING IN ATTACHED MODE @V60BC11 00391000
- BO CSLOOP2 YES, USE COMPARE & SWAP LOGIC @V60BC11 00392000
- S R0,ACTTOT DECREMENT BOTH COUNTERS @V60BC11 00393000
- ST R0,PAGACT STORE UPDATED COUNTERS @V60BC11 00394000
- B BLUNCHNG BRANCH AROUND ATTACHED CODE @V60BC11 00395000
- CSLOOP2 DS 0H @V60BC11 00396000
- LR R14,R0 COUNTERS TO REG 14 @V60BC11 00397000
- SL R14,ACTTOT DECREMENT BOTH COUNTERS @V60BC11 00398000
- CS R0,R14,PAGACT UPDATE COUNTERS @V60BC11 00399000
- BNZ CSLOOP2 TRY AGAIN, SOMEBODY CHANGED ONE @V60BC11 00400000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00401000
- BO BLUNCHNG YES, ONLY SINGLE SET @V60BC11 00402000
- TM APSTAT1,PROCIPL RUNNING ON MAIN (IPL) PROC? @V60B7AA 00403100
- BZ B2A NO, ADJUST TO MAIN PAGTABLE @V60BC11 00404000
- L R0,PAGBMP+PAGACT LOAD ATTACHED ACTIVE COUNT @V60BC11 00405000
- LA R6,PAGBMP(,R6) BUMP TO ATTACHED PAGTABLE @V60BC11 00406000
- B CSLOOP3 GO UPDATE ATTACHED ACTIVE COUNT @V60BC11 00407000
- B2A LA R14,PAGBMP LOAD INCREMENT VALUE @V60BC11 00408000
- SLR R6,R14 BACKUP TO MAIN PAGTABLE @V60BC11 00409000
- L R0,PAGACT LOAD MAIN ACTIVE COUNT @V60BC11 00410000
- CSLOOP3 DS 0H @V60BC11 00411000
- LR R14,R0 LOAD REG FOR COMPARE @V60BC11 00412000
- SL R14,ACTTOT DECREMENT COUNTERS BY ONE @V60BC11 00413000
- CS R0,R14,PAGACT UPDATED ACTIVE & TOTAL COUNTERS @V60BC11 00414000
- BNZ CSLOOP3 TRY AGAIN @V60BC11 00415000
- LA R14,PAGBMP LOAD INCREMENT VALUE @V60BC11 00416000
- TM APSTAT1,PROCIPL RUNNING ON MAIN (IPL) PROC? @V60B7AA 00417100
- BZ B2B NO, RESET FOR ATTACHED PROCESSOR @V60BC11 00418000
- SLR R6,R14 RESET TO MAIN PROCESSOR @V60BC11 00419000
- B BLUNCHNG GO BUILD PAGTABLE @V60BC11 00420000
- B2B ALR R6,R14 RESET TO ATTACHED PROCESSOR @V60BC11 00421000
- BLUNCHNG DS 0H @V60BC11 00422000
- TM SAVEWRK1,PTOBTAIN PAGTABLE ALREADY OBTAINED @V60BC11 00423000
- BZ B2C NO, GO OBTAIN TABLES @V60BC11 00424000
- NI SAVEWRK1,X'FF'-PTOBTAIN RESET OBTAINED FLAG @V60BC11 00425000
- B DECOUNT GO DECREMENT SEGMENT COUNT @V60BC11 00426000
- B2C DS 0H @V60BC11 00427000
- BAL R14,BLPAGSWP BUILD PAG-&SWPTABLE FOR CHG SYS @V60BC11 00428000
- B DECOUNT GO DECREMENT SEG COUNT @V60BC11 00429000
- DROP R6 @V60BC11 00430000
- USING PAGCORE,R6 @V60BC11 00431000
- EJECT 00432000
- * 00433000
- * THIS SECTION OF CODE PROCESSES THE USER WHEN HE IS THE LAST 00434000
- * USER OF A SHARED SYSTEM. IT WILL RESET THE CORSHARE BIT IN ALL 00435000
- * CORTABLE ENTRIES AND IF WE ARE RUNNING IN ATTACHED PROCESSOR 00436000
- * MODE, RELEASE ALL BACKING STORAGE SLOTS, CORTABLE ENTRIES AND 00437000
- * FREE STORAGE ASSOCIATED WITH THE PAGE AND SWAP TABLES OF THE 00438000
- * OTHER PROCESSOR. 00439000
- * 00440000
- LSTSUSER DS 0H @V60BC11 00441000
- L R15,=A(DMKSYSAP) @VMI0016 00442000
- CLI 0(R15),YES SYSTEM GENERATED FOR AP? @VMI0016 00443000
- BNE LSTAPU NO, ONLY ONE SET OF PAGTABLES @VMI0016 00444000
- TM APSTAT1,MPFEAT SYSTEM HAS MP FEATURE? @VMI0016 00445000
- BZ LSTAPU NO, ONLY ONE SET OF PAGTABLES @V60BC11 00446000
- CLC VMSHRPRC,LPUADDR+1 LAST SERVICED ON THIS PROC @V60BC11 00447000
- BNE LSTOTHER NO, UNSHARING FOR OTHER PROCESSOR@V60BC11 00448000
- TM APSTAT1,PROCIPL IS THIS THE MAIN (IPL) PROC? @V60B7AA 00449100
- BO LSTCPU YES, SETUP FOR CPU @V60BC11 00450000
- LA R4,0 NO, LOAD CPU FRET INDEX @V60BC11 00451000
- B SAVEVMA JOIN COMMON CODE @V60BC11 00452000
- LSTCPU DS 0H @V60BC11 00453000
- LA R4,PAGBMP LOAD APU FRET INDEX @V60BC11 00454000
- B SAVEVMA JOIN COMMON CODE @V60BC11 00455000
- LSTOTHER DS 0H @V60BC11 00456000
- TM APSTAT1,PROCIPL IS THIS THE MAIN (IPL) PROC? @V60B7AA 00457100
- BO LSTAPU YES, SET UP FOR CPU @VMI0016 00458000
- LA R4,PAGBMP YES, LOAD APU FRET INDEX @V60BC11 00459000
- B SAVEVMA JOIN COMMON CODE @V60BC11 00460000
- LSTAPU DS 0H @V60BC11 00461000
- LA R4,0 LOAD CPU FRET INDEX @V60BC11 00462000
- SAVEVMA DS 0H @V60BC11 00463000
- ST R4,SAVEWRK4 SAVE INDEX FOR FRETSHR @V60BC11 00464000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00465000
- BO SAVEVMA1 YES, NO VMABLOK TO FRET @V60BC11 00466000
- ICM R15,B'0111',SAVEWRK1+1 LOAD ADDR PREV VMABLOK @V60BC11 00467000
- LR R1,R9 LOAD ADDR VMABLOK FOR FRET @V60BC11 00468000
- L R9,VMAFPNT LOAD ADDR NEXT VMABLOK @V60BC11 00469000
- ST R9,VMAFPNT-VMABLOK(,R15) DEQUEUE CURRENT VMABLOK@V60BC11 00470000
- LA R0,VMASIZE LOAD NUMBER DOUBLEWORDS @V60BC11 00471000
- CALL DMKFRET RETURN THE VMABLOK @V60BC11 00472000
- SAVEVMA1 DS 0H @V60BC11 00473000
- LH R0,VMSHRSYS LOAD SHARED SYSTEM COUNT @V60BC11 00474000
- BCT R0,SAVEVMA2 DECREMENT COUNTER @V60BC11 00475000
- NI VMOSTAT,X'FF'-VMSHR GONE TO ZERO,RESET SHARE BIT@V60BC11 00476000
- SAVEVMA2 DS 0H @V60BC11 00477000
- STH R0,VMSHRSYS STORE UPDATED COUNTER @V60BC11 00478000
- LM R1,R2,SHRFPNT UNCHAIN THE SHRTABLE@V60BC11 00479000
- STCM R1,B'0111',SHRFPNT+1-SHRTABLE(R2) FROM SHARED @VMI0085 00480000
- ST R2,SHRBPNT-SHRTABLE(,R1) SYSTEM QUEUE @V60BC11 00481000
- L R15,=A(DMKSYSAP) @VMI0016 00482000
- CLI 0(R15),YES SYSTEM GENERATED FOR AP? @VMI0016 00483000
- BNE MAKEPRVT NO, JUST MAKE TABLES PRIVATE @VMI0016 00484000
- TM APSTAT1,MPFEAT SYSTEM HAS MP FEATURE? @VMI0016 00485000
- BZ MAKEPRVT NO, JUST MAKE TABLES PRIVATE @V60BC11 00486000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00487000
- BO MAKEPRVT YES, ONLY SINGLE SET @V60BC11 00488000
- BAL R14,FRETSHR YES, RETURN OTHER PAGTABLE @V60BC11 00489000
- MAKEPRVT DS 0H @V60BC11 00490000
- L R2,SHRSEGCT LOAD SHARED SEGMENT COUNT @V60BC11 00491000
- BCTR R2,0 DECREMENT FOR INDEXING @V60BC11 00492000
- LASTLOOP DS 0H @V60BC11 00493000
- SLR R8,R8 ZIP REG @V60BC11 00494000
- IC R8,SHRSEGNM(R2) INSERT SEGMENT NUMBER @V60BC11 00495000
- SLL R8,2 TIMES 4 FOR INDEXING @V60BC11 00496000
- AL R8,VMSEG LOAD ADDR SEGTABLE ENTRY @V60BC11 00497000
- L R6,SEGPAGE LOAD ADDR PTO @V60BC11 00498000
- N R6,CLCNTINV CLEAR UNWANTED BITS @V60BC11 00499000
- S R6,F16 BACKUP TO HEADER @V60BC11 00500000
- LA R5,PAGTSWP(,R6) LOAD ADDR SWPTABLE HEADER @V60BC11 00501000
- L R15,SWPVM-SWPTABLE(,R5) SAVE OLD OWNER @V60BC11 00502000
- ST R11,SWPVM-SWPTABLE(,R5) REASSIGN SLOT OWNER @V60BC11 00503000
- NI SWPFLAG2-SWPTABLE(R5),X'FF'-SWPAPP SET FOR MAIN @V60BC11 00504000
- LA R5,SWPFLAG-SWPTABLE(,R5) LOAD ADDR 1ST SWAP @V60BC11 00505000
- * TABLE ENTRY @V60BC11 00506000
- SLR R0,R0 ZIP REG @V60BC11 00507000
- ST R0,PAGSHR-PAGTABLE(,R6) ZERO POINTER TO SHRTABLE@V60BC11 00508000
- USING SWPFLAG,R5 @V60BC11 00509000
- A R6,F16 RESET TO PTO @V60BC11 00510000
- L R3,SEGPAGE LOAD STE @V60BC11 00511000
- SRL R3,28 SHIFT FOR NUMBER OF PTES @V60BC11 00512000
- LA R3,1(R3) PLUS ONE FOR LOOP CONTROL @V60BC11 00513000
- LSTCKPTE DS 0H @V60BC11 00514000
- LH R1,PAGCORE USE CORTABLE ENTRY FOR TEST @VA13426 00515000
- N R1,REFMASK FORCE OFF REFERENCE BIT @VA13426 00515300
- CH R1,INVLPTE FRAME BEEN ASSIGNED @VA13426 00515600
- BE LSTNXPTE NO, SKIP TO NEXT PTE @V60BC11 00516000
- LH R7,PAGCORE LOAD CORTABLE INDEX @V60BC11 00517000
- N R7,RESMASK CLEAR UNWANTED BITS @V60BC11 00518000
- A R7,ACORETBL LOAD ADDR CORTABLE ENTRY @V60BC11 00519000
- TM PAGCORE+1,PAGINVAL CHANGED PAGE @V60BC11 00520000
- BZ RSTSHARE NO, JUST RESET FROM SHARE @V60BC11 00521000
- TM CORFLAG,CORFREE+CORFLUSH FREE/FLUSH LIST PAGE @V60BC11 00522000
- BNZ LSTNXPTE YES, CHECK NEXT PTE @V60BC11 00523000
- RSTSHARE DS 0H @V60BC11 00524000
- NI CORFLAG,X'FF'-CORSHARE RESET SHARED FRAME BIT @V60BC11 00525000
- L R14,=A(DMKPTRSC) LOAD ADDR OF SHARED FRAME CTR @V60BC11 00526000
- L R1,0(R14) LOAD SHARED FRAME COUNT @V60BC11 00527000
- BCTR R1,0 DECREMENT COUNT @V60BC11 00528000
- ST R1,0(R14) STORE UPDATED COUNT @V60BC11 00529000
- TM CORFLAG,CORCFLCK FRAME LOCKED ?? @V60BC11 00530000
- BO RSTSHAR1 YES, SKIP UPDATE OF FRAME COUNT @V60BC11 00531000
- L R14,CORVM ADDR OWNER'S VMBLOK @V60BC11 00532000
- LH R1,VMPAGES-VMBLOK(,R14) LOAD OWNER'S FRAME COUNT@V60BC11 00533000
- BCTR R1,0 DECREMENT FOR THIS FRAME @V60BC11 00534000
- LTR R1,R1 WILL COUNT GO NEGATIVE ? @V60BC11 00535000
- BM ERROR6 YES - ABEND @V60BC11 00536000
- STH R1,VMPAGES-VMBLOK(,R14) STORE UPDATED COUNTER @V60BC11 00537000
- RSTSHAR1 DS 0H @V60BC11 00538000
- LH R1,VMPAGES LOAD USER'S FRAME COUNT @V60BC11 00539000
- LA R1,1(R1) INCREMENT FOR THIS FRAME @V60BC11 00540000
- STH R1,VMPAGES STORE UPDATED COUTNER @V60BC11 00541000
- ST R11,CORVM UPDATE FRAME OWNERSHIP @V60BC11 00542000
- LSTNXPTE DS 0H @V60BC11 00543000
- TM SWPFLAG,SWPRECMP BACKING STORE ALLOCATED? @V60BC11 00544000
- BO NOTALLO NO, SKIP UPDATING COUNTERS @V60BC11 00545000
- SR R1,R1 CLEAR @V60BC11 00546000
- IC R1,SWPCODE GET VOLUME INDEX CODE @V60BC11 00547000
- SLL R1,3 CALCULATE OWNED ENTRY DISP @V60BC11 00548000
- AL R1,=A(DMKSYSOW) OWNED LIST ENTRY @V60BC11 00549000
- LH R1,OWNDRDEV-OWNDLIST(,R1) RDEVBLOK INDEX @V60BC11 00550000
- SLL R1,3 RDEVBLOK DISPLACEMENT @V60BC11 00551000
- AL R1,ARIODV RDEVBLOK POINTER @V60BC11 00552000
- LA R14,VMPDRUM-VMBLOK ASSUME DRUM ALLOCATION @V60BC11 00553000
- USING RDEVBLOK,R1 @V60BC11 00554000
- CLI RDEVTYPE,TYP2305 IS IT A DRUM? @V60BC11 00555000
- BE *+8 YES @V60BC11 00556000
- DROP R1 @V60BC11 00557000
- LA R14,VMPDISK-VMBLOK NO, RESET TO DISK COUNTER @V60BC11 00558000
- LH R1,0(R14,R15) GET OLD OWNERS COUNT @V60BC11 00559000
- BCTR R1,0 DECREMENT COUNT BY ONE @V60BC11 00560000
- STH R1,0(R14,R15) STORE UPDATED COUNTER @V60BC11 00561000
- LH R1,0(R14,R11) GET NEW OWNERS COUNT @V60BC11 00562000
- LA R1,1(,R1) INCREMENT COUNT BY ONE @V60BC11 00563000
- STH R1,0(R14,R11) STORE UPDATED COUNTER @V60BC11 00564000
- NOTALLO DS 0H @V60BC11 00565000
- LA R6,PAGCORE+2 BUMP TO NEXT PTE @V60BC11 00566000
- NI SWPFLAG,X'FF'-SWPSHR RESET SHARED BIT @V60BC11 00567000
- LA R5,8(R5) BUMP TO NEXT SWPTABLE ENTRY @V60BC11 00568000
- BCT R3,LSTCKPTE IF MORE ENTRIES PROCESS THEM @V60BC11 00569000
- S R2,F1 DECREMENT SEGMENT COUNT @V60BC11 00570000
- BNM LASTLOOP MORE SEGMENT TO PROCESS @V60BC11 00571000
- LH R0,SHRTSIZE LOAD NUMBER DOUBLEWORDS @V60BC11 00572000
- LR R1,R10 LOAD ADDR SHARED SHRTABLE @V60BC11 00573000
- CALL DMKFRET RETURN SHARED SEGMENT SHRTABLE @V60BC11 00574000
- NI SAVEWRK1,X'FF'-INVLSEG RESET INVALID SEGMENT BIT@V60BC11 00575000
- B UNSHEXIT EXIT @V60BC11 00576000
- DROP R5 @V60BC11 00577000
- USING SWPTABLE,R5 @V60BC11 00578000
- EJECT @V60BC11 00579000
- * 00580000
- * THIS SUBROUTINE WILL OBTAIN A SINGLE SET OF PAGE AND SWAP TABLES 00581000
- * FROM FREE STORAGE. INITIALIZE THEIR HEADERS, FLAG ALL PTES 00582000
- * AS INVALID AND TURN ON THE SWPCHG1 AND SWPRECMP BITS 00583000
- * IN EACH SWPTABLE ENTRY. IT WILL ALSO UPDATE THE USERS SEGMENT 00584000
- * TABLE ENTRY TO POINT TO THIS NEW PAGE TABLE ORIGIN. THIS ROUTINE 00585000
- * WILL ALSO SEARCH THE OLD PAGE TABLE(S) FOR ALL FRAMES 00586000
- * ASSIGNED TO THIS USER, AND REASSIGN THEM TO ASYSVM. 00587000
- * 00588000
- BLPAGSWP DS 0H BUILD PAGE + SWAP TABLES @V60BC11 00589000
- ST R14,SAVEWRK9 SAVE THE RETURN ADDRESS @V60BC11 00590000
- LA R0,FULLPAGE LOAD NUMBER DOUBLEWORDS @V60BC11 00591000
- L R15,=A(DMKSYSAP) -> DMKSYS AP setting HRC066DK 00591100
- CLI 0(R15),C'Y' Is AP enabled? HRC066DK 00591200
- BNE *+6 No HRC066DK 00591300
- AR R0,R0 Double table size for APHRC066DK 00591400
- CALL DMKFREE OBTAIN NEW PAGE + SWAP TABLES @V60BC11 00592000
- XC 0(FULLPAGE*8,R1),0(R1) ZERO THE TABLES @V60BC11 00593000
- LR R5,R1 SAVE ADDR IN REG @V60BC11 00594000
- DROP R6 @V60BC11 00595000
- USING PAGTABLE,R1 @V60BC11 00596000
- STCK PAGSTMP TIMESTAMP NEW PAGTABLE @V60BC11 00597000
- BC 12,CLOCKOK IS CLOCK FUNCTIONING @V60BC11 00598000
- DOWNWEGO DS 0H CLOCK DAMAGED ABEND CVT001 @V60BC11 00599000
- GOTO DMKCVTAB @V60BC11 00600000
- CLOCKOK DS 0H @V60BC11 00601000
- LA R0,1 @V60BC11 00602000
- ST R0,PAGACT SET PAGACT = 0 PAGTOT = 1 @V60BC11 00603000
- LA R14,PAGTSWP+8(,R1) LOAD ADDR 1ST SWPTABLE ENTRY @V60BC11 00604000
- ST R14,PAGSWP STORE PTR SWPTABLE IN PAGTABLE @V60BC11 00605000
- SL R14,F8 BACKUP TO SWPTABLE HEADER @V60BC11 00606000
- DROP R5 @V60BC11 00607000
- USING SWPTABLE,R14 @V60BC11 00608000
- ST R11,SWPVM STORE PTR VMBLOK IN SWPTABLE @V60BC11 00609000
- L R0,SEGPAGE LOAD STE @V60BC11 00610000
- SRL R0,28 SHIFT FOR NUMBER PTE'S @V60BC11 00611000
- A R0,F1 PLUS ONE FOR LOOP CONTROL @V60BC11 00612000
- A R1,F16 LOAD ADDR PTO @V60BC11 00613000
- STCM R1,B'0111',SEGPAGE+1 UPDATE SEGTABLE ENTRY @V60BC11 00614000
- OI SEGPAGE+3,SEGINV MARK ENTRY AS INVALID @V60BC11 00615000
- ST R1,SWPPAG STORE PTR PTO IN SWPTABLE @V60BC11 00616000
- LA R14,SWPFLAG LOAD ADDR 1ST SWPTABLE ENTRY @V60BC11 00617000
- LA R6,PAGTSWP(,R6) LOAD ADDR SHARED SWPTABLE HEADER@V60BC11 00618000
- LA R6,SWPFLAG-SWPTABLE(,R6) LOAD ADDR 1ST @V60BC11 00619000
- * SWPTABLE ENTRY @V60BC11 00620000
- SLR R15,R15 ZIP REG FOR PAGE NUMBER COUNTER @V60BC11 00621000
- DROP R1,R14 @V60BC11 00622000
- USING PAGCORE,R1 @V60BC11 00623000
- USING SWPFLAG,R14 @V60BC11 00624000
- STM R2,R5,TEMPR2 SAVE REGISTERS FOR MAINLINE @V60BC11 00625000
- L R2,SAVEWRK2 GET ADDR OF OLD PAGTABLE @V60BC11 00626000
- AL R2,F16 BUMP TO PTO @V60BC11 00627000
- NXTENTRY DS 0H @V60BC11 00628000
- MVC PAGCORE,INVLPTE INVALIDATE PTE @V60BC11 00629000
- TM PAGCORE+1-PAGCORE(R2),PAGINVAL OLD PTE VALID @V60BC11 00630000
- BO NXTENT1 NO, CONTINUE CHECKING @V60BC11 00631000
- BAL R5,CKOLDPTE YES, CHECK FRAME STATUS @V60BC11 00632000
- NXTENT1 TM APSTAT1,APUOPER RUNNING IN ATTACHED MODE @V60BC11 00633000
- BZ NXTENT5 NO, CONTINUE BUILDING @V60BC11 00634000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00635000
- BO NXTENT5 YES, ONLY SINGLE SET @V60BC11 00636000
- LR R4,R2 SAVE CURRENT OLD PTE ADDR @V60BC11 00637000
- TM APSTAT1,PROCIPL RUNNING ON THE MAIN (IPL) PROC? @V60B7AA 00638100
- BZ NXTENT2 NO, GET MAIN PAGTABLE @V60BC11 00639000
- AL R2,SWLENGTH GET ADDR ATTACHED PTE @V60BC11 00640000
- B NXTENT3 CONTINUE CHECKING @V60BC11 00641000
- NXTENT2 SL R2,SWLENGTH GET ADDR MAIN PTE @V60BC11 00642000
- NXTENT3 TM PAGCORE+1-PAGCORE(R2),PAGINVAL PTE VALID @V60BC11 00643000
- BO NXTENT4 NO, RESET POINTER @V60BC11 00644000
- BAL R5,CKOLDPTE CHECK ON THIS FRAMES STATUS @V60BC11 00645000
- NXTENT4 LR R2,R4 RESTORE ADDR OLD PTE @V60BC11 00646000
- NXTENT5 DS 0H @V60BC11 00647000
- STC R15,SWPFLAG+1 STORE PAGE NUMBER IN ENTRY @V60BC11 00648000
- OI SWPFLAG,SWPALLOC+SWPCHG1+SWPRECMP FLAG NEW @VMI0064 00649000
- * SWAP TABLE ENTRY @V60BC11 00650000
- MVC SWPKEY1(4),SWPKEY1-SWPFLAG(R6) COPY KEYS @V60BC11 00651000
- LA R1,PAGCORE+2 BUMP TO NEXT NEW PTE @V60BC11 00652000
- LA R6,8(,R6) BUMP TO NEXT OLD SWPTABLE ENTRY @V60BC11 00653000
- LA R14,8(,R14) BUMP TO NEXT NEW SWPTABLE ENTRY @V60BC11 00654000
- LA R15,1(,R15) INCREMENT PAGE NUMBER @V60BC11 00655000
- LA R2,2(,R2) BUMP TO NEXT OLD PTE @V60BC11 00656000
- BCT R0,NXTENTRY IF MORE ENTRIES, PROCESS THEM @V60BC11 00657000
- * INCREMENT TTSEGCNT 00658000
- LA R2,1 INCREMENT VALUE @VMI0051 00659000
- L R3,PREFIXA ADDRESS OF PSA @VMI0051 00660000
- AL R2,TTSEGCNT-PSA(,R3) COUNT OF TOTAL PG/SWAP @VMI0051 00661000
- * TABLES IN SYSTEM +1 00662000
- ST R2,TTSEGCNT-PSA(,R3) SAVE UPDATED COUNT @VMI0051 00663000
- LM R2,R5,TEMPR2 RESTORE MAINLINE REGISTERS @V60BC11 00664000
- L R14,SAVEWRK9 RESTORE RETURN ADDRESS @V60BC11 00665000
- BR R14 RETURN TO CALLER @V60BC11 00666000
- DROP R1,R14 @V60BC11 00667000
- USING PAGCORE,R6 @V60BC11 00668000
- USING SWPTABLE,R5 @V60BC11 00669000
- SPACE 2 @V60BC11 00670000
- CKOLDPTE DS 0H @V60BC11 00671000
- LH R3,PAGCORE-PAGCORE(,R2) GET CORTABLE INDEX @V60BC11 00672000
- N R3,RESMASK CLEAR UNWANTED BITS @V60BC11 00673000
- AL R3,ACORETBL GET ADDR OF CORTABLE ENTRY @V60BC11 00674000
- CL R11,CORVM-CORTABLE(,R3) IS USER FRAME OWNER @V60BC11 00675000
- BNE CKOLDEXT NO, RETURN TO CALLER @V60BC11 00676000
- MVC CORVM-CORTABLE(4,R3),ASYSVM REASSIGN FRAME @V60BC11 00677000
- TM CORFLAG-CORTABLE(R3),CORCFLCK FRAME LOCKED ?? @V60BC11 00678000
- BO CKOLDPT1 YES, SKIP UPDATE OF FRAME COUNT @V60BC11 00679000
- LH R3,VMPAGES GET USER'S FRAME COUNT @V60BC11 00680000
- BCTR R3,0 DECREMENT USER'S FRAME COUNTER @V60BC11 00681000
- LTR R3,R3 COUNT GONE NEGATIVE @V60BC11 00682000
- BM ERROR6 YES, ABEND THE SYSTEM @V60BC11 00683000
- STH R3,VMPAGES NO, STORE UPDATED COUNTER @V60BC11 00684000
- CKOLDPT1 DS 0H @V60BC11 00685000
- ST R11,TEMPR11 SAVE CURRENT USER @V60BC11 00686000
- L R11,ASYSVM GET ADDR OF SYSTEM VMBLOK @V60BC11 00687000
- LH R3,VMPAGES GET SYSTEM'S FRAME COUNTER @V60BC11 00688000
- AL R3,F1 INCREMENT IT @V60BC11 00689000
- STH R3,VMPAGES STORE UPDATED COUNTER @V60BC11 00690000
- L R11,TEMPR11 RESTORE ADDR OF CURRENT USER @V60BC11 00691000
- CKOLDEXT DS 0H @V60BC11 00692000
- BR R5 RETURN TO CALLER @V60BC11 00693000
- EJECT @V60BC11 00694000
- * 00695000
- * THIS SUBROUTINE IS CALLED TO ACTUALLY PERFORM THE RELEASE OF 00696000
- * ALL BACKING STORAGE SLOTS, REAL FRAMES AND THE FREE STORAGE 00697000
- * ASSOCIATED WITH A SHARED PAGE AND SWAP TABLE SET. 00698000
- * 00699000
- FRETSHR DS 0H RETURN A SHARED PAGE + SWPTABLE @V60BC11 00700000
- ST R14,SAVEWRK9 SAVE THE RETURN ADDRESS @V60BC11 00701000
- L R4,SHRSEGCT LOAD NUMBER OF SHARED SEGEMENTS @V60BC11 00702000
- SLR R8,R8 ZIP REG FOR INDEXING @V60BC11 00703000
- LR R3,R4 COUNT TO R3 @V60BC11 00704000
- LA R3,3(,R3) BUMP TO FULLWORD @V60BC11 00705000
- SRL R3,2 ADDRESS @V60BC11 00706000
- SLL R3,2 ... @V60BC11 00707000
- LA R3,SHRPAGE-4(R3) LOAD ADDR1ST SHRPAGE ENTRY @V60BC11 00708000
- USING SHRPAGE,R3 @V60BC11 00709000
- FSHRLOOP DS 0H @V60BC11 00710000
- L R6,SHRPAGE(R8) LOAD ADDR PTO @V60BC11 00711000
- LR R0,R6 STE TO REG 0 @V60BC11 00712000
- LA R6,0(,R6) CLEAR PTE COUNTER @V60BC11 00713000
- SRL R0,28 SHIFT TO OBTAIN NUMBER PTES @V60BC11 00714000
- A R0,F1 PLUS 1 FOR LOOP CONTROL @V60BC11 00715000
- A R6,SAVEWRK4 ADJUST TO PROPER SET @V60BC11 00716000
- FSHRCFLP DS 0H @V60BC11 00717000
- LR R5,R6 PTO ADDR TO R5 @V60BC11 00718000
- S R5,F16 BACKUP TO PAGTABLE HEADER @V60BC11 00719000
- ST R5,SAVEWRK5 SAVE ADDR OF PAGTABLE HEADER @V60BC11 00720000
- LA R5,PAGTSWP(,R5) LOAD ADDRESS OF SWPTABLE @V60BC11 00721000
- LA R5,SWPFLAG-SWPTABLE(,R5) LOAD ADDR 1ST SWPTABLE @V60BC11 00722000
- * ENTRY @V60BC11 00723000
- FSHPTELP DS 0H @V60BC11 00724000
- USING SWPFLAG,R5 @V60BC11 00725000
- TM SWPFLAG,SWPRECMP SLOT ASSIGNED @V60BC11 00726000
- BO FCKINV NO, CHECK VALIDITY OF PTE @V60BC11 00727000
- ST R11,SAVEWRK2 SAVE ADDR USER'S VMBLOK @V60BC11 00728000
- L R1,SAVEWRK5 LOAD ADDR SWPTABLE HEADER @V60BC11 00729000
- LA R1,PAGTSWP(,R1) LOAD ADDR OF SWPTABLE @V60BC11 00730000
- L R11,SWPVM-SWPTABLE(,R1) LOAD VMBLOK ADDR OF OWNR@V60BC11 00731000
- CALL DMKPGTPR RELEASE THE SLOT @V60BC11 00732000
- L R11,SAVEWRK2 RESTORE PTR USER'S VMBLOK @V60BC11 00733000
- FCKINV DS 0H @V60BC11 00734000
- LH R7,PAGCORE LOAD CORTABLE INDEX @V60BC11 00735000
- N R7,RESMASK CLEAR UNWANTED BITS @V60BC11 00736000
- LTR R7,R7 FRAME BEEN ASSIGNED @V60BC11 00737000
- BZ FUPDTCNT NO, UPDATE COUNTERS @V60BC11 00738000
- A R7,ACORETBL LOAD ADDR CORTABLE ENTRY @V60BC11 00739000
- TM CORFLAG,CORFREE IS THIS A FREELIST PAGE @V60BC11 00740000
- BZ FCKFLUSH NO, CHECK FOR FLUSHLIST @V60BC11 00741000
- SLR R15,R15 YES, ZIP REG @V60BC11 00742000
- ST R15,CORPGPNT ZERO PAGTABLE POINTER @V60BC11 00743000
- STCM R15,B'0111',CORSWPNT+1 ZERO SWPTABLE POINTER @V60BC11 00744000
- B FUPDTCNT GO PROCESS NEXT PTE @V60BC11 00745000
- FCKFLUSH DS 0H @V60BC11 00746000
- TM CORFLAG,CORFLUSH IS THIS A FLUSHLIST PAGE @V60BC11 00747000
- BZ FCKRSV NO, CHECK FOR LOCKED PAGE @V60BC11 00748000
- L R14,=A(DMKPTRUC) FLUSHED PAGE COUNT @V60BC11 00749000
- L R15,0(R14) LOAD COUNT @V60BC11 00750000
- S R15,F1 MINUS ONE @V60BC11 00751000
- BM ERROR7 CANNOT BE NEGATIVE @V60BC11 00752000
- ST R15,0(R14) STORE NEW COUNT @V60BC11 00753000
- LM R14,R15,CORFPNT YES, DEQUEUE THE ELEMENT @V60BC11 00754000
- ST R14,CORFPNT-CORTABLE(,R15) FROM THE @V60BC11 00755000
- ST R15,CORBPNT-CORTABLE(,R14) FLUSH LIST @V60BC11 00756000
- B FPTRFT PUT FRAME ON FREELIST @V60BC11 00757000
- FCKRSV DS 0H @V60BC11 00758000
- TM CORFLAG,CORRSV FRAME RESERVED @V60BC11 00759000
- BZ FUPTRSC NO, UPDATE SHARED COUNTER @V60BC11 00760000
- L R14,=A(DMKPTRRC) LOAD ADDR RESERVED COUNTER @V60BC11 00761000
- L R15,0(,R14) LOAD RESERVED COUNT @V60BC11 00762000
- BCTR R15,0 DECREMENT COUNT @V60BC11 00763000
- ST R15,0(R14) STORE UPDATED COUNTER @V60BC11 00764000
- FUDSPNP DS 0H @V60BC11 00765000
- L R14,=A(DMKDSPNP) LOAD ADDR AVAILABLE COUNTER @V60BC11 00766000
- LA R15,1 LOAD INCREMENT VALUE @V60BC11 00767000
- A R15,0(R14) INCREMENT COUNTER @V60BC11 00768000
- ST R15,0(R14) STORE UPDATED COUNTER @V60BC11 00769000
- FUPTRSC DS 0H @V60BC11 00770000
- L R14,=A(DMKPTRSC) LOAD ADDR SHARED FRAME COUNT @V60BC11 00771000
- L R15,0(R14) LOAD SHARED FRAME COUNT @V60BC11 00772000
- BCTR R15,0 DECREMENT COUNT @V60BC11 00773000
- ST R15,0(,R14) STORE UPDATED COUNT @V60BC11 00774000
- FPTRFT DS 0H @V60BC11 00775000
- SLR R15,R15 ZIP REG @V60BC11 00776000
- ST R15,CORPGPNT ZERO PTO POINTER @V60BC11 00777000
- STCM R15,B'0111',CORSWPNT+1 ZERO SWPTABLE POINTER @V60BC11 00778000
- TM CORFLAG,CORIOLCK FRAME I/O LOCKED @V60BC11 00779000
- BO ERROR5 YES, ABEND @V60BC11 00780000
- CALL DMKPTRFT RELEASE THE FRAME @V60BC11 00781000
- FUPDTCNT DS 0H @V60BC11 00782000
- LA R6,PAGCORE+2 BUMP TO NEXT PTE @V60BC11 00783000
- LA R5,8(,R5) BUMP TO NEXT SWPTABLE ENTRY @V60BC11 00784000
- BCT R0,FSHPTELP IF MORE PTES, PROCESS THEM @V60BC11 00785000
- LA R0,FULLPAGE LOAD NUMBER OF DOUBLEWORDS @V60BC11 00786000
- * FOR PAGE AND SWAP TABLES @V60BC11 00787000
- L R15,=A(DMKSYSAP) -> DMKSYS AP setting HRC066DK 00787100
- CLI 0(R15),C'Y' Is AP enabled? HRC066DK 00787200
- BNE *+6 No HRC066DK 00787300
- AR R0,R0 Double table size for APHRC066DK 00787400
- L R1,SAVEWRK5 LOAD ADDRESS OF PAGTABLE @V60BC11 00788000
- N R1,CLCNTINV CLEAR UNWANTED BITS @V60BC11 00789000
- CALL DMKFRET RETURN PAGE + SWAP TABLES @V60BC11 00790000
- L R15,PREFIXA PREFIX VALUE TO ADDRESS PSA @VA13356 00790100
- * AT ABSOLUTE 0 00790200
- L R0,TTSEGCNT-PSA(,R15) NUM OF PG/SWP TBLS IN SYS @VA13356 00790300
- BCTR R0,R0 DECREMENT PAG/SWP TABLE COUNT @VA13356 00790400
- ST R0,TTSEGCNT-PSA(,R15) STORE IT BACK IN THE PSA @VA13356 00790500
- FSHRBMP DS 0H @V60BC11 00791000
- LA R8,L'SHRPAGE(,R8) BUMP SHRPAGE INDEX @V60BC11 00792000
- BCT R4,FSHRLOOP IF MORE SEGMENT, PROCESS THEM @V60BC11 00793000
- L R14,SAVEWRK9 RESTORE RETURN ADDRESS @V60BC11 00794000
- BR R14 RETURN TO CALLER @V60BC11 00795000
- DROP R3,R5 @V60BC11 00796000
- USING SWPTABLE,R5 @V60BC11 00797000
- EJECT 00798000
- * 00799000
- * THIS SUBROUTINE CONVERTS THE REAL ADDRESS OF A SHARED PAGE 00800000
- * AND OBTAINS THE ADDRESS OF THE SHRTABLE ASSOCIATED WITH THE 00801000
- * PAGE AND THE ADDRESS OF THE USERS VMABLOK ASSOCIATED WITH 00802000
- * THIS SHRTABLE. 00803000
- * 00804000
- GETSHRNM LR R7,R2 ADDRESS OF REAL PAGE @V60BC11 00805000
- N R7,XPAGNUM DROP DISPLACEMENT @V60BC11 00806000
- SRL R7,8 INDEX INTO CORTABLE @V60BC11 00807000
- AL R7,ACORETBL R7= ADDRESS OF CORTABLE ENTRY @V60BC11 00808000
- L R5,CORSWPNT GET ADDRESS OF SWPTABLE @V60BC11 00809000
- L R6,CORPGPNT GET ADDRESS OF PAGTABLE ENTRY @V60BC11 00810000
- SLR R15,R15 CLEAR PAGE NUMBER @V60BC11 00811000
- USING SWPFLAG,R5 TEMPORARY @V60BC11 00812000
- IC R15,SWPVPAGE GET VIRTUAL PAGE NUMBER @V60BC11 00813000
- USING SWPTABLE,R5 @V60BC11 00814000
- SLL R15,1 DBL. FOR 2 BYTE PG TABLE ENTRIES @V60BC11 00815000
- SLR R6,R15 R6= BEGINING OF PAGTABLE @V60BC11 00816000
- SL R6,F16 BACK-UP TO PAGTABLE HEADER @V60BC11 00817000
- USING PAGTABLE,R6 @V60BC11 00818000
- L R10,PAGSHR GET POINTER TO SHRTABLE @V60BC11 00819000
- LTR R10,R10 THERE BE BE ONE @V60BC11 00820000
- BNP ERROR1 ERROR IF NO SHRTABLE @V60BC11 00821000
- ST R10,SAVEWRK4 SAVE SHRTABLE POINTER @V60BC11 00822000
- TM SHRFLAG,SHRNOPRT UNPROTECTED SHARED SEGMENTS @V60BC11 00823000
- BO FNDVMABK YES, NO VMABLOK TO FIND @V60BC11 00824000
- LA R9,VMASSIST LOAD ADDR VMABLOK ANCHOR @V60BC11 00825000
- STCM R9,B'0111',SAVEWRK1+1 SAVE AS PREV VMABLOK PTR @V60BC11 00826000
- L R9,VMASSIST GET POINTER TO VMABLOK @V60BC11 00827000
- LTR R9,R9 BETTER FIND A VMABLOK @V60BC11 00828000
- BNP ERROR2 CRASH IF NOT FOUND @V60BC11 00829000
- GETVMABK CLC VMANAME,SHRNAME DO NAMES MATCH ? @V60BC11 00830000
- BE FNDVMABK YES - @V60BC11 00831000
- STCM R9,B'0111',SAVEWRK1+1 SAVE PTR PREV VMABLOK @V60BC11 00832000
- L R9,VMAFPNT GET ADDRESS OF NEXT VMABLOK @V60BC11 00833000
- LTR R9,R9 THERE MUST BE A VMABLOK @V60BC11 00834000
- BNP ERROR2 ERROR IF NOT FOUND @V60BC11 00835000
- B GETVMABK CHECK ALL VMABLOKS @V60BC11 00836000
- FNDVMABK BR R3 RETURN TO CALLER @V60BC11 00837000
- EJECT 00838000
- SPACE 2 00839000
- ERROR1 ABEND 1 SHRTABLE NOT FOUND @V60BC11 00840000
- ERROR2 ABEND 2 VMABLOK NOT FOUND BY GETSHRNM RTN@V60BC11 00841000
- ERROR3 ABEND 3 SYSTEM NAME NOT FOUND IN DMKSNTBL@V60BC11 00842000
- * DURING UNSHARE PROCESSING @V60BC11 00843000
- ERROR4 ABEND 4 SYSVOL COULD NOT BE FOUND DURING @V60BC11 00844000
- * UNSHARE PROCESSING @V60BC11 00845000
- ERROR5 ABEND 5 SHARED FRAME LOCKED FOR I/O @V60BC11 00846000
- * DURING UNSHARE PROCESSING @V60BC11 00847000
- ERROR6 ABEND 6 VMPAGES TO GO NEGATIVE @V60BC11 00848000
- SPACE 1 00849000
- ERROR7 ABEND 7 FLUSHED PAGE COUNT IS NEGATIVE @V60BC11 00850000
- EJECT 00851000
- RESMASK DC A(X'FFF0') MASK FOR PAGE RESIDENT @V60BC11 00852000
- * 00853000
- CLCNTINV DC X'00FFFFFC' CLEAR COUNT, INVALID & @V60BC11 00854000
- * MIGRATED BIT MASK @V60BC11 00855000
- CLRSEGNM DC X'0000FF00' CLEAR ALL BUT PAGE NUMBER @V60BC11 00856000
- BUMPLOW DC X'00010000' INCREMENT/DECREMENT FOR PAGACT @V60BC11 00857000
- ACTTOT DC X'00010001' MASK FOR INCREMENTING OR @V60BC11 00858000
- * DECREMENT PAGACT AND PAGTOT @V60BC11 00859000
- REFMASK DC X'0000FFFE' MASK TO FORCE REFERENCE BIT OFF @VA13426 00860000
- INVLPTE DC X'0008' INVALID PTE BIT MASK @VA13426 00860500
- SWLENGTH DC F'192' LENGTH OF SHARED PAGE & @V60BC11 00861000
- * SWAP TABLES @V60BC11 00862000
- FORCEPG0 DC X'00FF0000' MASK FOR SEGMENT & PAGE 0 @V60BC11 00863000
- FORCEPGF DC X'0000F000' MASK FOR PAGE 'F' OF SEGMENT @V60BC11 00864000
- * 00865000
- HEX00 EQU X'00' VALUE OF X'00' @V60BC11 00866000
- HEXFF EQU X'FF' VALUE OF X'FF' @V60BC11 00867000
- * 00868000
- EMSG181 EQU 181 ERROR MESSAGE NUMBER 181 @V60BC11 00869000
- * 00870000
- YES EQU C'Y' SYSTEM GENERATED FOR AP @VMI0016 00871000
- SPACE 1 00872000
- * BITS DEFINED FOR SAVEWRK1 FLAG BYTE @V60BC11 00873000
- * 00874000
- INVLSEG EQU X'80' STE ENTRY WAS ORIGINALLY INVALID @V60BC11 00875000
- PTOBTAIN EQU X'40' PAGE & SWAP TABLES OBTAINED @V60BC11 00876000
- * 00877000
- FULLPAGE EQU X'C0'/8 NUMBER OF DOUBLEWORDS IN 16 ENTRY@V60BC11 00878000
- * PAGE AND SWAP TABLE SET @V60BC11 00879000
- PAGE2314 EQU 32 NUMBER OF PAGES PER CYLINDER @V60BC11 00880000
- * (2314/2319) @V60BC11 00881000
- PAGE3330 EQU 57 NUMBER OF PAGE PER CYLINDER @V60BC11 00882000
- * (3330) @V60BC11 00883000
- PAGE3350 EQU 120 NUMBER OF PAGES PER CYLINDER @V60BC11 00884000
- * (3350) @V60BC11 00885000
- PAGE3375 EQU 96 Number of pages per cylinder HRC106DK 00885100
- * (3375) HRC106DK 00885200
- PAGE3380 EQU 150 Number of pages per cylinder HRC106DK 00885300
- * (3380) HRC106DK 00885400
- PAGE2305 EQU 24 NUMBER OF PAGES PER CYLINDER @V60BC11 00886000
- * (2305/3340) @V60BC11 00887000
- SPACE 3 00888000
- LTORG * @V60BC11 00889000
- SPACE 3 00890000
- EMSGBLOK DSECT @V60BC11 00891000
- * DSECT FOR ERROR MESSAGE PARMS 00892000
- EMSGAREA DS 0CL16 MESSAGE AREA @V60BC11 00893000
- EMSGNAME DS CL8 AREA FOR NAME OF SHARED SYSTEM @V60BC11 00894000
- DS 2X FILLER @V60BC11 00895000
- EMSGADD1 DS CL2 FIRST PART OF ADDRESS @V60BC11 00896000
- EMSGADD2 DS CL4 LAST PART OF ADDRESS @V60BC11 00897000
- EMSGLEN EQU *-EMSGBLOK LENGTH OF BLOK IN BYTES @V60BC11 00898000
- EMSGSIZE EQU (*-EMSGBLOK)/8 SIZE OF EMSGBLOK IN DW'S @V60BC11 00899000
- SPACE 2 00900000
- COPY EQU @V60BC11 00901000
- COPY SAVE @V60BC11 00902000
- COPY VMBLOK @V60BC11 00903000
- COPY RBLOKS @V60BC11 00904000
- COPY DEVTYPES @V60BC11 00905000
- COPY ALLOC @V60BC11 00906000
- COPY CORE @V60BC11 00907000
- COPY SHRTABLE @V60BC11 00908000
- COPY SYSTBL @V60BC11 00909000
- PSA @V60BC11 00910000
- END 00911000
ibm/vm370-lib/cp/dmkats.assemble_src.txt ยท Last modified: 2023/08/06 13:36 by Site Administrator