ibm:vm370-lib:cp:dmkmct.assemble_src
Table of Contents
DMKMCT Source
References
- Fixes Applied : 4
- This Source Date : Thursday, December 7, 1978
- Last Fix ID : [R13026DK]
Source Listing
- DMKMCT.ASSEMBLE.txt
- MCT TITLE 'DMKMCT (CP) VM/370 - RELEASE 6' 00001000
- ISEQ 73,80 00002000
- * 00003000
- * MODULE NAME - 00004000
- * DMKMCT 00005000
- * 00006000
- * FUNCTION 00007000
- * THE FUNCTION OF THIS ROUTINE IS TO HANDLE ATTACHED PROCESSOR 00008000
- * MODE PROCESSOR TERMINATION SITUATIONS, MALFUNCTION 00009000
- * ALERTS, AND AUTOMATIC PROCESSOR RECOVERY. 00010000
- * 00011000
- * ATTRIBUTES 00012000
- * RESIDENT (NOT REQUIRED IF NOT ATTACHED PROCESSOR SYSTEM) 00013000
- * 00014000
- * ENTRY POINTS 00015000
- * DMKMCTPT - PROCESSOR TERMINATION SLIH (GOTO) 00016000
- * 00017000
- * DMKMCTMA - MALFUNCTION ALERT SLIH (BALR) 00018000
- * 00019000
- * DMKMCTPR - PROCESSOR RECOVERY SLIH (GOTO) 00020000
- * 00021000
- * DMKMCTST - SYSTEM TERMINATION (GOTO) 00022000
- * 00022300
- * DMKMCTFS - UNSUCCESSFUL SIGP RECOVERY (BALR) 00022600
- * 00023000
- * ENTRY CONDITIONS - 00024000
- * R3 - ADDRESS OF ERROR MSG TO BE ISSUED 00025000
- * R15- ENTRY POINT ADDRESS 00026000
- * 00027000
- * EXIT CONDITIONS - 00028000
- * DISABLED WAIT STATE FOR SITUATIONS 00029000
- * THAT CAUSE SYSTEM TERMINATION 00030000
- * 00031000
- * THE MAIN OR THE ATTACHED PROCESSOR IN STOPPED STATE 00032100
- * AND THE OTHER PROCESSOR HAS BEEN SIGNALLED TO 00032200
- * COMPLETE PROCESSING (SIGNAL APR). 00032300
- * 00035000
- * RETURN TO CALLER IF PROCESSING COMPLETE AND 00036000
- * SYSTEM NOT TERMINATED 00037000
- * 00038000
- * EXIT TO DMKLOKPS, THE SYSTEM PROCESSOR SPIN 00039000
- * ROUTINE BECAUSE SYSTEM TERMINATION IS ALREADY 00040000
- * IN PROCESS. THIS PROCESSOR SHOULD BE SIGNALLED 00041000
- * BY THE OTHER PROCESSOR TO STOP OR TO RESTART 00042000
- * 00043000
- * CALLS TO OTHER ROUTINES - 00044000
- * DMKQCNWT - TO SEND MESSAGES TO A VIRTUAL MACHINE AND THE 00045000
- * SYSTEM OPERATOR 00046000
- * DMKPGSPO - TO RELEASE USER'S VIRTUAL STORAGE 00047000
- * DMKCFMBK - TO PUT USER IN CONSOLE FUNCTION MODE 00048000
- * DMKCFPRR - TO RESET VIRTUAL MACHINE 00049000
- * DMKOPRWT - TO WRITE EMERGENCY MESSAGE TO SYSTEM OPERATOR 00050000
- * DMKCPPUP - TO VARY THE TERMINATING PROCESSOR OFFLINE 00051100
- * (TO CONVERT TO UNIPROCESSOR MODE). 00051200
- * DMKLOKPS - TO SPIN UNTIL SYSTEM TERMINATION COMPLETE 00052000
- * DMKCVTBH - TO CONVERT PROCESSOR ADDR. TO PRINTABLE FORM 00052500
- * 00053000
- * EXTERNAL REFERENCES - 00054000
- * 00055000
- * CPSUPER - DETERMINE IF CONTROL PROGRAM ACTIVE 00057000
- * 00057500
- * CPWAIT - DETERMINE IF CONTROL PROGRAM IN WAIT STATE 00058000
- * 00059000
- * PROCIO - INDICATOR IF PROCESSOR HAS I/O CAPABILITY 00060000
- * 00061000
- * CPID - IN ABSOLUTE 0 00062000
- * 00062500
- * APUOPER - INDICATOR IF SYSTEM RUNNING IN ATTACHED 00063000
- * PROCESSOR MODE 00064000
- * 00065000
- * PREFIXA - ADDRESS OF PREFIX REGISTER FOR CURRENT PROCESSOR 00066000
- * 00067000
- * CPAPRPND - AUTOMATIC PROCESSOR RECOVERY PENDING 00068000
- * 00068300
- * CPAPRINP - AUTOMATIC PROCESSOR RECOVERY IN PROCESS 00068600
- * 00069000
- * EMSPQUI - QUIESCE PENDING 00070000
- * 00071000
- * DMKDMPMA - PROCESSOR ADDRESS OF PROCIO 00071100
- * 00071200
- * DMKDMPAA - PROCESSOR ADDRESS OF NON-PROCIO 00071300
- * 00071400
- * DMKDMPSA - DMKDMP'S LIST OF PSA ADDRESSES 00071500
- * 00071600
- * DMKDSPRQ - DISPATCHER'S CPEXBLOK QUEUE 00071700
- * 00071800
- * TABLES/WORKAREAS - 00072000
- * PSA, VMBLOK 00073000
- * 00074000
- * MACROS - 00075000
- * CHARGE - TO START CHARGING THE VIRTUAL MACHINE FOR ITS 00076000
- * TERMINATION 00077000
- * 00078000
- * SIGNAL TO SIGNAL THE PROCESSORS 00079000
- * STOP 00080000
- * STOP AND STORE STATUS 00081000
- * RESTART 00082000
- * APR 00083000
- * 00084000
- * REGISTER USAGE - 00085000
- * GPR0 - 00086000
- * GPR1 - 00087000
- * GPR2 - 00088000
- * GPR3 - 00089000
- * GPR4 - 00090000
- * GPR5 - 00091000
- * GPR6 - 00092000
- * GPR7 - 00093000
- * GPR8 - 00094000
- * GPR9 - 00095000
- * GPR10- 00096000
- * GPR11- 00097000
- * GPR12- MCT BASE 00098000
- * GPR13- 00099000
- * GPR14- LINKAGE 00100000
- * GPR15- LINKAGE 00101000
- * 00102000
- * OPERATION - 00103000
- * SEE ENTRY POINT PROLOGUES 00104000
- * 00105000
- * ERROR MESSAGES - 00106000
- * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00107000
- * DMKMCT611W MACHINE CHECK; SYSTEM INTEGRITY LOST CPUID 00108000
- * DMKMCT612W MACHINE CHECK; TIMING FACILITIES DAMAGE CPUID 00109000
- * DMKMCT616I MACHINE CHECK; USER XXXXXXXX TERMINATED CPUID 00110000
- * DMKMCT619I MACHINE CHECK; OPERATION TERMINATED CPUID 00111000
- * DMKMCT620I MACHINE CHECK; ATTACHED PROCESSOR NOT BEING USED 00112000
- * DMKMCT621I MACHINE CHECK; AFFINITY SET OFF 00113000
- * DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR NN 00113500
- * 00114000
- * WAIT STATE CODES - 00115000
- * 001 - UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00116000
- * 013 - UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR 00117000
- * 016 - CHANNEL SET SWITCHING FACILITY HAS FAILED 00117200
- * 019 - THE PROCESSOR TERMINATION ROUTINE WAS 00117400
- * ENTERED ON THIS PROCESSOR WHILE THIS 00117600
- * PROCESSOR WAS BEING TERMINATED. 00117800
- * 00118000
- EJECT 00119000
- COPY OPTIONS @V407510 00120000
- COPY LOCAL @V407510 00121000
- EJECT 00122000
- DMKMCT CSECT 00123000
- ENTRY DMKMCTPT PROCESSOR TERMINATION ROUTINE @V407510 00124000
- ENTRY DMKMCTMA MALFUNCTION ALERT ROUTINE @V407510 00125000
- ENTRY DMKMCTPR PROCESSOR RECOVERY ROUTINE @V407510 00126000
- ENTRY DMKMCTST SYSTEM TERMINATION @V407510 00127000
- ENTRY DMKMCTFS FAILING SIGP ROUTINE @VA12934 00127050
- ENTRY DMKMCTAF @VMH0033 00127100
- ENTRY DMKMCTPF @VA12934 00127300
- ENTRY DMKMCTFL @VA12934 00127500
- ENTRY DMKMCTVM @VA12934 00127700
- EXTRN DMKQCNWT @V407510 00128000
- EXTRN DMKPGSPO @V407510 00129000
- EXTRN DMKCFMBK @V407510 00130000
- EXTRN DMKCFPRR @V407510 00131000
- EXTRN DMKOPRWT @V407510 00132000
- EXTRN DMKLOKPS @V407510 00134000
- EXTRN DMKSCHTQ @V407510 00135000
- EXTRN DMKSTKMP @V4M0175 00136000
- EXTRN DMKLOKSY SYSTEM LOCKWORD @V4M0199 00137000
- EXTRN DMKCPPUP @VA12934 00137010
- EXTRN DMKLOKDS,DMKLOKTR,DMKLOKRL,DMKLOKFR @V5BC0AB 00137110
- EXTRN DMKCVTBH @VA12934 00137210
- EXTRN DMKDMPMA @VA12934 00137310
- EXTRN DMKDMPSA @VA12934 00137410
- EXTRN DMKDMPAA @VA12934 00137510
- EXTRN DMKDSPRQ @VA12934 00137610
- USING PSA,0 @V407510 00138000
- USING VMBLOK,R11 @V407510 00139000
- EJECT 00140000
- * SUBROUTINE NAME - 00141000
- * DMKMCTPT 00142000
- * 00143000
- * FUNCTION - 00144000
- * THE FUNCTION OF THIS ENTRY POINT IS TO COMPLETE PROCESSOR 00145000
- * TERMINATION IN THE ATTACHED PROCESSOR MODE 00146000
- * 00147000
- * ENTRY CONDITIONS - 00148000
- * R3 - ADDRESS OF APPROPRIATE MESSAGE TO BE ISSUED 00149000
- * R9 - ADDRESS OF MCHAREA 00150000
- * 00151000
- * EXIT CONDITIONS - 00152000
- * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION 00153000
- * 00154000
- * ATTACHED PROCESSOR IN STOPPED STATE WHERE THE MAIN PROCESSOR 00155000
- * HAS BEEN SIGNALLED TO COMPLETE PROCESSING 00156000
- * 00157000
- * REGISTER USAGE - 00158000
- * SEE MAIN PROLOGUE 00159000
- * 00160000
- * OPERATION - 00161000
- * 1. IF CLOCK ERROR AND NOT IN SUPERVISOR STATE, 00162000
- * SIGNAL THE OTHER PROCESSOR FOR 00163000
- * AUTOMATIC PROCESSOR RECOVERY (APR). 00164000
- * 2. INDICATE TERMINATE VIRTUAL MACHINE IF VIRTUAL 00165000
- * MACHINE ACTIVE BY PUTTING ADDRESS OF VMBLOK 00166000
- * IN MCTTERM. 00167000
- * 3. SIGNAL SELF TO STOP AND STORE STATUS. 00168000
- * 4. IF TERMINATION ALREADY IN PROCESS, CALL DMKLOKPS. 00169000
- * OTHERWISE, SET TERMINATION IN PROCESS SWITCH. 00170000
- * 5. IF NOT ABOVE SITUATION AND NOT ON MAIN PROCESSOR, SIGNAL 00171000
- * MAIN PROCESSOR STOP AND STORE STATUS THEN RESTART AT 7. 00172000
- * 6. MAIN PROCESSOR - SIGNAL ATTACHED PROCESSOR TO STOP 00173000
- * AND STORE STATUS 00174000
- * 7. SEND EMERGENCY MESSAGE TO OPERATOR. 00175000
- * 8. LOAD DISABLED WAIT STATE. 00176000
- * 00177000
- * MESSAGES - 00178000
- * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00179000
- * DMKMCT611W MACHINE CHECK; SYSTEM INTEGRITY LOST CPUID 00180000
- * DMKMCT612W MACHINE CHECK; TIMING FACILITIES DAMAGE CPUID 00181000
- * DMKMCT616I MACHINE CHECK; USER XXXXXXXX TERMINATED CPUID 00182000
- * DMKMCT619I MACHINE CHECK; OPERATION TERMINATED CPUID 00183000
- * 00184000
- * WAIT STATE CODES 00185000
- * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00186000
- * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR. 00187000
- * 00188000
- DMKMCTPT DS 0H PROCESSOR TERMINATION @V407510 00189000
- USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00190000
- L R12,MCTBASE GET COMMON BASE @V407510 00191000
- USING DMKMCT,R12 COMMON ADDRESSABILITY @V407510 00192000
- USING MCHAREA,R9 ADDRESSABILITY TO MCHAREA @V407510 00193000
- TM MCHFLAG1,MCH1TODC TOD CLOCK DAMAGE? @V407510 00194000
- BZ TERM NO, TERMINATE SYSTEM @V407510 00195000
- TM APSTAT1,PROCIO MAIN PROCESSOR? @V407510 00196000
- BZ USERACT NO, BRANCH @V60B7AB 00197100
- TM APSTAT1,CSSFEAT IS THE CSS FACILITY AVAILABLE? @V60B7AB 00197200
- BNO TERM NO, TERMINATE THE SYSTEM @V60B7AB 00197300
- USERACT DS 0H @V60B7AB 00197400
- TM MCHFLAG7,MCH7OPSW VIRTUAL USER ACTIVE @V4M0144 00198000
- BNO TERM NO, TERMINATE SYSTEM @V4M0144 00199000
- ST R11,MCTTERM SAVE VMBLOK ADDRESS TO BE @V407510 00200000
- * TERMINATED @V407510 00201000
- L R2,PREFIXB GET OTHER PROCESSOR PSA @V4M0199 00202000
- MVI EMSPEND-PSA(R2),EMSPQUI INSURE OTHER PROCESSOR @V4M0199 00203000
- * WILL DO NO WORK- FORCE QUIESCE @V4M0199 00204000
- SIGNAL DS 0H SIGNAL OTHER PROCESSOR @V407510 00205000
- SIGNAL APR AUTOMATIC PROCESSOR RECOVERY @V407510 00206000
- SIGNAL SSS,CONTROL=AUTO SIGNAL SELF TO STOP AND 00207000
- * STORE STATUS @V407510 00208000
- TERM DS 0H TERMINATE SYSTEM @V407510 00209000
- L R14,PREFIXA GET OWN PREFIX REG @V4M0144 00210000
- TS CPTERMLK-PSA(R14) SYS TERMINATION IN PROGRESS @V4M0144 00211000
- BZ APTERM NO, TERMINATE AP MODE @V407510 00212000
- LA R1,CPTERMLK-PSA(,R14) GET ADDRESS OF LOCK @V4M0144 00213000
- O R1,HIGHBIT TURN ON HIGH ORDER BIT @V4M0144 00214000
- CALL DMKLOKPS YES, SPIN UNTIL SIGNALLED @V4M0144 00215000
- APTERM DS 0H @V407510 00216000
- LH R2,IPUADDR GET PROCESSOR ADDRESS @V407510 00217000
- CVD R2,WORK CONVERT TO DECIMAL @V407510 00218000
- UNPK MSGPROC(LN2),WORKLO(LN2) CONVERT 2 DIGITS @V407510 00219000
- OI MSGPROC+ONE,ZONE SET ZONE FOR LAST DIGIT @V407510 00220000
- BAL R6,SWTCH GET ON MAIN PROCESSOR @V407510 00221000
- B OPCOM ISSUE MSG AND LOAD WAIT STATE @V407510 00222000
- SWTCH DS 0H SWITCH TO MAIN PROCESSOR @V407510 00223000
- TM APSTAT1,PROCIO MAIN PROCESSOR? @V407510 00224000
- BNO ATTTERM NO, BRANCH @V407510 00225000
- SIGNAL SSS STOP & STORE STATUS TO @V407510 00226000
- * ATTACHED PROCESSOR @V407510 00227000
- MCTWAIT DS 0H @V407510 00228000
- MVC WAITCODE(LN4),MAINCODE SET UP 001 WAIT STATE @V407510 00229000
- BR R6 RETURN TO CALLER @V407510 00230000
- ATTTERM DS 0H @V407510 00231000
- L R4,PREFIXA GET OWN PREFIX REG @V407510 00232000
- STM R0,R15,DUMPSAVE-PSA(R4) SAVE REGS FOR RESTART @V407510 00233000
- L R4,PREFIXB GET OTHER PREFIX REG @V407510 00234000
- MVC RSRTNPSW-PSA(,R4),RSRTMAIN RESTART NEW PSW @V4M0194 00235000
- SIGNAL SSS SIGNAL MAIN PROCESSOR TO STOP @V407510 00236000
- SIGNAL RESTART SIGNAL MAIN PROCESSOR TO RESTART @V407510 00237000
- SIGNAL STOP,CONTROL=AUTO SIGNAL SELF TO STOP @V407510 00238000
- MAINRSRT DS 0H RESTART ON MAIN PROCESSOR @V407510 00239000
- L R4,PREFIXA GET OWN PREFIX REGISTER @V407510 00240000
- LM R0,R15,DUMPSAVE-PSA(R4) RESTORE REGS @V407510 00241000
- BR R6 RETURN TO CALLER ON MAIN @V407510 00242000
- EJECT 00243000
- * SUBROUTINE NAME - 00244000
- * DMKMCTMA 00245000
- * 00246000
- * FUNCTION - 00247000
- * THE FUNCTION OF THIS ENTRY POINT IS TO HANDLE MALFUNCTION 00248000
- * ALERT INTERRUPTS. EITHER THE SYSTEM WILL BE TERMINATED OR 00249000
- * AUTOMATIC PROCESSOR RECOVERY WILL BE INITIATED. 00250000
- * 00251000
- * ENTRY CONDITIONS - 00252000
- * SEE MAIN PROLOGUE 00253000
- * 00254000
- * EXIT CONDITIONS - 00255000
- * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION. 00256000
- * 00257000
- * RETURN TO CALLER AFTER AUTOMATIC PROCESSOR RECOVERY SCHEDULED. 00258000
- * 00259000
- * REGISTER USAGE - 00260000
- * SEE MAIN PROLOGUE 00261000
- * 00262000
- * OPERATION - 00263000
- * 1. IF THE MALFUNCTION ALERT IS FROM A DEAD PROCESSOR, 00264000
- * RETURN TO CALLER. 00265000
- * 2. IF PROCESSOR TERMINATION WAS IN PROCESS, 00266000
- * LOAD A DISABLED WAIT STATE. 00267000
- * 3. IF THE MALFUNCTION ALERT WAS FROM THE MAIN PROCESSOR, 00268000
- * AND THE CONTROL PROGRAM WAS ACTIVE, 00268100
- * OR THE CSS FACILITY IS NOT AVAILABLE, 00268200
- * LOAD DISABLED WAIT STATE. 00269000
- * 4. IF THE MALFUNCTION ALERT WAS FROM THE ATTACHED PROCESSOR 00270000
- * AND THE CONTROL PROGRAM WAS ACTIVE, SEND MESSAGE TO 00271000
- * OPERATOR AND LOAD A DISABLED WAIT STATE. 00272000
- * 5. INDICATE TERMINATE VIRTUAL MACHINE IF VIRTUAL 00273000
- * MACHINE ACTIVE BY PUTTING ADDRESS OF VMBLOK 00274000
- * IN MCTTERM. 00275000
- * 6. SET QUIESCE PENDING FOR THE MALFUNCTIONING PROCESSOR. 00276000
- * 7. TURN ON CPAPRPND FOR AUTOMATIC PROCESSOR RECOVERY. 00277000
- * 8. RETURN TO CALLER. 00278000
- * 00279000
- * MESSAGES - 00280000
- * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00281000
- * 00282000
- * WAIT STATE CODES - 00283000
- * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00284000
- * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR 00285000
- * 00286000
- DMKMCTMA DS 0H MALFUNCTION ALERT SLIH @V407510 00287000
- USING *,R15 SET UP TEMPORARY ADDRESSABILITY @V407510 00288000
- STM R0,R15,MFASAVE SAVE CALLERS REGISTERS @V407510 00289000
- L R12,MCTBASE LOAD NORMAL BASE REG @V407510 00290000
- DROP R15 RELEASE TEMPORARY BASE @V407510 00291000
- USING DMKMCT,R12 SET UP NORMAL ADDRESSABILITY @V407510 00292000
- TM APSTAT1,APUOPER PROCESSOR ALREADY DEAD? @V407510 00293000
- BNO MFAEXIT YES, RETURN TO CALLER @V407510 00294000
- MFACONT L R2,PREFIXB GET OTHER PROCESSOR PSA @VA12934 00295000
- MVI EMSPEND-PSA(R2),EMSPQUI INSURE OTHER @V407510 00296000
- * PROCESSOR WILL DO NO @V407510 00297000
- * MORE WORK- FORCE QUIESCE @V407510 00298000
- L R3,PREFIXA GET OWN PREFIX REG @V4M0208 00299000
- CLI CPTERMLK-PSA(R3),CLEAR SYS TERM IN PROGRESS? @V4M0208 00300000
- BNE MFAWAIT YES, LOAD A WAIT STATE @V407510 00301000
- TM APSTAT1,PROCIO IS THIS THE MAIN PROCESSOR? @V407510 00302000
- BNZ MFASUP YES, CONTINUE CHECKS @V407510 00303000
- TM APSTAT1,CSSFEAT CSS FACILITY AVAILABLE? @V60B7AB 00303100
- BO MFASUP YES, BRANCH @V60B7AB 00303200
- MAINMFA DS 0H @V60B7AB 00303300
- MVC WAITCODE,MAINCODE SET UP 001 WAIT STATE @V4M0208 00304000
- B MFAWAIT LOAD WAIT STATE @V407510 00305000
- MFASUP DS 0H @V407510 00306000
- TM CPSTATUS-PSA(R2),CPSUPER OTHER PROCESSOR @V407510 00307000
- * IN SUPERVISOR STATE? @V407510 00308000
- BNO MFAREC NO, CAN CONTINUE @V407510 00309000
- TM CPSTATUS-PSA(R2),CPWAIT OTHER PROCESSOR @V407510 00310000
- * ABOUT TO GO INTO WAIT STATE?@V407510 00311000
- BO MFAREC YES, CAN CONTINUE @V407510 00312000
- TM APSTAT1,PROCIO ON THE MAIN PROCESSOR? @V60B7AB 00312100
- BNO MAINMFA NO, BRANCH. NO MESSAGE IS SENT @V60B7AB 00312200
- * WHEN THE MAIN HAS MALFUNCTIONED 00312300
- LA R3,MSG2 SET UP MSG 610W @V407510 00313000
- B OPCOM ISSUE MSG AND TERMINATE @V407510 00314000
- MFAREC DS 0H ABLE TO KEEP SYSTEM UP @V407510 00315000
- CLC RUNUSER-PSA(,R2),ASYSVM RUNUSER=SYSTEM VMBLOK? @VA07316 00316100
- BE MFAAPR YES, DON'T TERMINATE SYS VMBLOK @V407510 00317000
- MVC MCTTERM,RUNUSER-PSA(R2) TERMINATE RUNUSER FOR @V407510 00318000
- * OTHER PROCESSOR 00319000
- MFAAPR DS 0H @V407510 00320000
- OI APSTAT4,CPAPRPND APR PENDING @VA07615 00321100
- MFAEXIT DS 0H @V407510 00322000
- LM R0,R15,MFASAVE RESTORE REGS @V407510 00323000
- BR R14 RETURN TO CALLER @V407510 00324000
- EJECT 00324010
- * SUBROUTINE NAME - 00324020
- * DMKMCTFS 00324030
- * 00324040
- * FUNCTION - 00324050
- * THE FUNCTION OF THIS ENTRY POINT IS TO HANDLE NON-ZERO 00324060
- * CONDITION CODES FROM THE SIGP INSTRUCTION -- I.E., THE 00324070
- * SIGNALLED PROCESSOR IS UNRESPONSIVE. EITHER THE SYSTEM 00324080
- * MUST BE TERMINATED OR AUTOMATIC PROCESSOR RECOVERY 00324090
- * WILL BE INITIATED. 00324100
- * 00324110
- * ENTRY CONDITIONS - 00324120
- * SEE MAIN PROLOGUE 00324130
- * 00324140
- * EXIT CONDITIONS - 00324150
- * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION. 00324160
- * 00324170
- * RETURN TO CALLER AFTER AUTOMATIC PROCESSOR RECOVERY SCHEDULED. 00324180
- * 00324190
- * REGISTER USAGE - 00324200
- * SEE MAIN PROLOGUE 00324210
- * 00324220
- * OPERATION - 00324230
- * 1. THE INDICATOR MCTFS IN MCTFLAG IS SET TO 00324240
- * INDICATE THAT DMKMCT WAS ENTERED TO PROCESS 00324250
- * A CONDITION CODE 1 OR 2 FROM A SIGP INSTRUCTION. 00324260
- * 2. THE ADDRESS OF THE PSA BELONGING TO THE 00324270
- * UNRESPONSIVE PROCESSOR IS OBTAINED. ALL OF THE 00324280
- * PROCESSOR'S NEW PSWS ARE SET UP TO LOAD A 00324290
- * DISABLED WAIT STATE UPON ANY INTERRUPTION. 00324300
- * THIS WILL PREVENT THE UNRESPONSIVE PROCESSOR 00324310
- * FROM RUNNING MUCH FURTHER IF IT IS STILL ALIVE. 00324320
- * THEN PROCESSING WILL CONTINUE AS IF A 00324330
- * MALFUNCTION ALERT HAD BEEN RECEIVED FROM THE 00324340
- * UNRESPONSIVE PROCESSOR. 00324350
- * 00324360
- * MESSAGES - 00324370
- * NONE 00324380
- * 00324390
- * WAIT STATE CODES - 00324400
- * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00324410
- * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR. 00324420
- * 00324430
- DMKMCTFS DS 0H FAILING SIGNAL PROCESSING @VA12934 00324440
- USING *,R15 SET UP TEMPORARY ADDRESSABILITY @VA12934 00324450
- STM R0,R15,MFASAVE SAVE CALLERS REGISTERS @VA12934 00324460
- L R12,MCTBASE LOAD NORMAL BASE REG @VA12934 00324470
- DROP R15 RELEASE TEMPORARY BASE @VA12934 00324480
- USING DMKMCT,R12 SET UP NORMAL ADDRESSABILITY @VA12934 00324490
- OI MCTFLAG,MCTFS INDICATOR FOR DMKMCTFS ENTRY @VA12934 00324500
- L R2,PREFIXB ACCESS PSA OF UNRESPONSIVE PROC. @VA12934 00324510
- MVC EXNPSW-PSA(8,R2),DISABPSW SET UP THE NEW PSWS @VA12934 00324520
- * OF THE UNRESPONSIVE PROCESSOR TO 00324530
- * CONTAIN DISABLED WAIT PSWS. THEN, 00324540
- * SHOULD THE PROCESSOR STILL BE ALIVE, 00324550
- * WE CAN FORCE IT TO STOP RUNNING. 00324560
- MVC SVCNPSW-PSA(32,R2),EXNPSW-PSA(R2) PROPAGATE THE @VA12934 00324570
- * DISABLED WAIT PSW TO ALL NEW PSWS 00324580
- B MFACONT CONTINUE AS FOR MALFUNCTION ALERT@VA12934 00324590
- EJECT 00325000
- * SUBROUTINE NAME - 00326000
- * DMKMCTPR 00327000
- * FUNCTION - 00328000
- * THE FUNCTION OF THIS ENTRY POINT IS TO ALLOW THE SYSTEM TO 00329000
- * REVERT TO UNIPROCESSOR MODE. 00330000
- * 00331000
- * ENTRY CONDITIONS - 00332000
- * MCTTERM (AN INTERNAL INDICATOR) MAY CONTAIN 00333000
- * THE ADDRESS OF THE VIRTUAL MACHINE TO BE TERMINATED 00334000
- * MCTTERM WOULD HAVE BEEN SET BY DMKMCTPT OR DMKMCTMA 00335000
- * 00336000
- * EXIT CONDITIONS - 00337000
- * RETURN TO CALLER AFTER ATTACHED PROCESSOR REMOVED FROM 00338000
- * SYSTEM OPERATION 00339000
- * 00340000
- * REGISTER USAGE - 00341000
- * SEE MAIN PROLOGUE 00342000
- * 00343000
- * OPERATION - 00344000
- * 00345000
- * 1. DMKMCTPR WILL TEST FOR AN ACTIVE VARY PROCESSOR FUNCTION 00345300
- * (POFFLINE=1). IF ACTIVE, DMKMCTPR WILL ENTER A LOOP. 00345600
- * A CPEXBLOK WILL BE STACKED FOR THE CURRENT PROCESSOR TO 00345900
- * THE INSTRUCTION TO TEST THE POFFLINE BIT. DMKMCTPR WILL 00346200
- * EXIT FROM THE LOOP WHEN POFFLINE IS ZERO. IF AT THIS TIME 00346500
- * APUOPER IS STILL ONE, STEPS 2-6 WILL BE TAKEN. IF APUOPER 00346800
- * IS ZERO, AND MCTTERM IS NOT ZERO, THE VIRTUAL MACHINE 00347100
- * WILL BE TERMINATED AND DMKMCTPR WILL GO TO DMKDSPCH. 00347400
- * OTHERWISE, DMKMCTPR WILL GO TO DMKDSPCH. 00347700
- * 2. DMKMCTPR WILL ATTEMPT TO OBTAIN THE TEST-AND-SET 00348000
- * LOCK CPAPRINP IN ABSOLUTE PAGE ZERO. THIS LOCK 00348060
- * WILL PREVENT RECURSION IN AUTOMATIC PROCESSOR 00348120
- * RECOVERY. IF THE LOCK IS AVAILABLE, CONTINUE WITH 00348180
- * STEP 3. IF THE LOCK IS ALREADY HELD, DMKMCTPR WILL 00348240
- * CHECK TO SEE IF IT IS NOW RUNNING ON THE PROCESSOR 00348300
- * WHICH CAUSED THE ORIGINAL ENTRY TO APR. IF SO, THIS 00348360
- * PROCESSOR IS BEING TERMINATED -- DMKMCTPR WILL SIMPLY 00348420
- * LOAD A DISABLED WAIT ON THIS PROCESSOR. IF THE CURRENT 00348480
- * PROCESSOR IS THE RECOVERY PROCESSOR, THIS INVOCATION 00348540
- * OF DMKMCTPR WILL BE IGNORED -- EXIT WILL BE MADE TO 00348600
- * THE DISPATCHER. 00348660
- * 3. SEND MESSAGE 620I TO OPERATOR. 00348720
- * 4. CALL DMKCPPUP TO HANDLE SHARED SEGMENTS, SYNCHRONIZE 00348780
- * VMTTIME, UPDATE THE CLOCK COMPARATOR VALUE WITH THAT 00348900
- * VALUE IN THE TOP TRQE, FREE ALL AP RELATED CONTROL 00349200
- * BLOCKS AND STOP PREFIXING. 00349500
- * 5. LOOP THRU THE VMBLOKS TO RESET ANY AFFINITY SET FOR 00349800
- * THE ATTACHED PROCESSOR, ISSUE MSG TO USER, AND PUT 00350100
- * USER IN CONSOLE FUNCTION MODE. 00350400
- * 6. TERMINATE THE VIRTUAL MACHINE, IF ONE IS SPECIFIED 00350700
- * RESET THE CPU TIMER, RELEASE ALL LOCKS, AND GO TO 00350800
- * THE DISPATCHER. 00350900
- * 00358000
- * MESSAGES - 00359000
- * DMKMCT621I MACHINE CHECK; AFFINITY SET OFF. 00360000
- * DMKMCT620I MACHINE CHECK; ATTACHED PROCESSOR NOT BEING USED. 00361000
- * DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR NN. 00361500
- * 00362000
- * WAIT STATE CODES - 00363000
- * 016 - THE CHANNEL SET SWITCHING FACILITY HAS FAILED 00364000
- * 019 - THE PROCESSOR TERMINATION ROUTINE WAS 00364200
- * ENTERED ON THIS PROCESSOR WHILE THIS 00364400
- * PROCESSOR WAS BEING TERMINATED. 00364600
- * 00365000
- DMKMCTPR DS 0H PROCESSOR RECOVERY ROUTINE @V407510 00366000
- USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00367000
- L R12,MCTBASE GET COMMON BASE @V407510 00368100
- USING DMKMCT,R12 SET UP COMMON ADDRESSABILITY @V407510 00368110
- NI APSTAT4,OFF-CPAPRPND TURN OFF APR PENDING FLAG @V5BC0AB 00368120
- MVI EMSPEND,CLEAR CLEAR SIGNAL INDICATOR @V5CC0AB 00368130
- MVI XCPEND,CLEAR CLEAR SIGNAL INDICATOR @V5CC0AB 00368140
- TESTPOFF DS 0H @V5BC0AB 00369002
- TM APSTAT4,POFFLINE VARY PROC IN PROCESS? @V5BC0AB 00369006
- BZ TSTAPUOP NO, BRANCH @V5BC0AB 00369010
- LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V5BC0AB 00369014
- CALL DMKFREE OBTAIN STORAGE @V5BC0AB 00369018
- SPACE 00369022
- USING CPEXBLOK,R1 @V5BC0AB 00369026
- SPACE 00369030
- STM R0,R15,CPEXREGS SAVE REGISTERS @V5BC0AB 00369034
- LA R15,TESTPOFF ADDRESS OF RETURN POINT @V5BC0AB 00369038
- ST R15,CPEXADD SET UP RETURN POINT @V5BC0AB 00369042
- SPACE 00369046
- DROP R1 00369050
- SPACE 00369054
- CALL DMKSTKMP STACK BLOCK FOR THIS PROCESSOR @V5BC0AB 00369058
- GOTO DMKDSPCH GO TO THE DISPATCHER @V5BC0AB 00369062
- TSTAPUOP DS 0H @V5BC0AB 00369066
- TM APSTAT1,APUOPER IN AP MODE? @V5BC0AB 00369070
- BNO PREXIT NO, BRANCH @VMH0025 00369075
- L R2,PREFIXA SET UP FOR ACCESS OF ABS. ZERO @VA12934 00369082
- TS CPAPRINP-PSA(R2) TRY FOR 'APR IN PROCESS' LOCK @VA12934 00369282
- * THIS PREVENTS MCTPR RECURSION. 00369482
- BZ SAVFPROC CONTINUE -- LOCK OBTAINED @VA12934 00369682
- CLC MCTFPROC(2),LPUADDR THE LOCK WAS HELD -- CHECK @VA12934 00369882
- * TO SEE IF THIS ENTRY IS FOR SAME 00370082
- * PROCESSOR THAT FAILED LAST TIME 00370282
- BE MCTWT019 WE ARE RUNNING ON THE PROCESSOR @VA12934 00370482
- * FOR WHICH AUTOMATIC PROCESSOR 00370682
- * RECOVERY IS IN PROCESS. LOAD A 00370882
- * WAIT ON THIS PROCESSOR TO STOP 00371082
- * IT FROM RUNNING. 00371282
- GOTO DMKDSPCH WE ARE ALREADY PERFORMING @VA12934 00371482
- * AUTOMATIC PROCESSOR RECOVERY FOR 00371682
- * THE OTHER PROCESSOR. IGNORE THIS 00371882
- * ENTRY. 00372082
- SAVFPROC MVC MCTFPROC(2),LPUADDRX SAVE THE ADDRESS OF THE @VA12934 00372282
- * FAILING PROCESSOR 00372482
- TSSYSLOK DS 0H @VA12934 00372682
- L R2,=A(DMKLOKSY+LN2) GET ADDRESS OF LOCKWORD+2 @VA07316 00373100
- CLC LPUADDR,0(R2) SYSTEM LOCK ALREADY HELD? @V4M0199 00374000
- BE PRCLEAR YES, SKIP LOCK OBTAIN @V4M0199 00375000
- LOCK OBTAIN,TYPE=SYS,SPIN=NO @V4M0199 00376000
- BNZ MCTABEND LOCK NOT OBTAINED, ABEND @V4M0199 00377000
- PRCLEAR DS 0H @V4M0199 00378000
- SCNDSPRQ LOCK OBTAIN,TYPE=DS,SPIN=NO OBTAIN LOCK ON DSP QUEUES@VA12934 00382000
- BNZ MCTWT019 OTHER PROCESSOR HAS CONTINUED @VA12934 00382010
- * TO RUN AND NOW HOLDS A LOCK. 00382020
- * LOAD A WAIT STATE -- TO CONTINUE 00382030
- * MIGHT JEOPARDIZE SYSTEM INTEGRITY 00382040
- L R15,MCTDSPRQ ADDRESS OF DISPATCHER'S QUEUES @VA12934 00382050
- C R15,CPEXFPNT-CPEXBLOK(,R15) IS CPEXBLOK QUEUE @VA12934 00382060
- * EMPTY? 00382070
- BE TESTIO YES -- ALL DONE @VA12934 00382080
- LR R1,R15 ADDRESS OF CPEXBLOK TO REG 1 @VA12934 00382090
- USING CPEXBLOK,R1 ADDRESSABILITY TO CPEXBLOK @VA12934 00382100
- NXTCPXBK DS 0H @VA12934 00382110
- L R1,CPEXFPNT ADDRESS OF NEXT CPEXBLOK ON Q. @VA12934 00382120
- CR R1,R15 AT END OF QUEUE? @VA12934 00382130
- BE TESTIO YES -- ALL DONE @VA12934 00382140
- MVC CPEXPROC,LPUADDR MAKE THIS CPEXBLOK FOR THIS @VA12934 00382150
- * PROCESSOR 00382160
- B NXTCPXBK DO NEXT CPEXBLOK @VA12934 00382170
- DROP R1 00382180
- TESTIO DS 0H @VA12934 00382190
- LOCK RELEASE,TYPE=DS @VA12934 00382200
- TM APSTAT1,PROCIO IS THIS THE I/O PROCESSOR? @VA12934 00382210
- BO SEND620I YES -- NO NEED TO SWITCH CHANNELS@VA12934 00382220
- LH R1,CSADDR GET CHANNEL SET ADDRESS @VA12934 00382230
- * DISCS 0(R1) DISCONNECT FROM MAIN PROCESSOR @VA12934 00382240
- DC X'B2011000' ACTUAL DISCONNECT INSTRUCTION @VA12934 00382250
- BNZ WAIT016 DISC. CHANNEL SET WAS NOT @VA12934 00382260
- * SUCCESSFUL -- LOAD DISABLED WAIT 00382270
- CONNECT DS 0H @VA12934 00382280
- * CONCS 0(R1) CONNECT THE CHANNEL SET @VA12934 00382290
- DC X'B2001000' ACTUAL CONNECT INSTRUCTION @VA12934 00382300
- BNZ WAIT016 THE CONNECT CHANNEL SET FAILED --@VA12934 00382310
- * LOAD A DISABLED WAIT -- NO I/O 00382320
- * CAPABILITY 00382330
- OI APSTAT1,PROCIO INDICATE THIS IS THE I/O PROC. @VA12934 00382340
- L R15,PREFIXB ADDRESS OF OTHER PROC'S PSA @VA12934 00382350
- NI APSTAT1-PSA(R15),X'FF'-PROCIO OTHER PROC DOES @VA12934 00382360
- * NOT HAVE I/O CAPABILITY 00382370
- LCTL C2,C2,FFS ENABLE FOR I/O INTERRUPTS @VA12934 00382380
- L R2,MCTDMPMA ADDRESS OF DMKDMPMA VALUE @VA12934 00382390
- MVC 0(2,R2),IPUADDR THIS PROC IS NOW PROCIO @VA12934 00382400
- L R2,MCTDMPAA ADDRESS OF DMKDMPMA VALUE @VA12934 00382410
- MVC 0(2,R2),IPUADDRX OTHER PROC IS NON-PROCIO @VA12934 00382420
- L R2,MCTDMPSA ADDRESS OF DMP'S PSA ADDRESSES @VA12934 00382430
- LM R6,R7,PREFIXA LOAD PSA ADDRESSES @VA12934 00382440
- STM R6,R7,0(R2) STORE PROCIO'S PSA @ FIRST @VA12934 00382450
- LH R1,IPUADDR GET PROCESSOR ADDRESS @VA12934 00382460
- CALL DMKCVTBH CONVERT TO PRINTABLE FORM @VA12934 00382470
- STCM R1,B'0011',MCTID623 MOVE IN PROC. ADDRESS @VA12934 00382480
- LA R0,MCT623LN GET LENGTH OF MESSAGE @VA12934 00382490
- LA R1,MCT623MG GET ADDRESS OF MESSAGE TEXT @VA12934 00382500
- CALL DMKQCNWT,PARM=NORET+OPERATOR @VA12934 00382510
- SEND620I MVI MSGBUF,BLANK BLANK OUT BUFFER @VA12934 00382520
- MVC MSGBUF+ONE(L'MSGBUF-1),MSGBUF CLEAR BUFFER @V407510 00383000
- MVC MSGCDE(LN3),MSG9 SETUP MESSAGE ID IN BUFFER @VA07837 00384100
- MVC MSGBUF(MSG9L),MSG9B MOVE MESSAGE INTO BUFFER @V407510 00385000
- LA R0,MCMSGL GET LENGTH OF MESSAGE @V407510 00386000
- LA R1,MCTMSG GET ADDRESS OF BUFFER @V407510 00387000
- CALL DMKQCNWT,PARM=OPERATOR+NORET @V407510 00388000
- CALLCPP CALL DMKCPPUP GO TAKE CARE OF AP DEPENDENCIES @VA12934 00388010
- PREXIT DS 0H @V407510 00445000
- OC MCTTERM,MCTTERM VIRT. MACH. TO BE TERMINATED @VA08235 00457010
- BZ NOTERM NO - NO MACHINE TO TERMINATE @VA08235 00457020
- CHARGE SWITCH,MCTTERM START CHARGING USER @VA08235 00457030
- BAL R6,VIRTERM TERMINATE VIRTUAL USER @VA08235 00457040
- CHARGE STOP STOP CHARGING @VA08235 00457050
- CHARGE START RESET CPU TIMER @VA07837 00457100
- NOTERM EQU * @VMH0025 00457102
- TM MCTFLAG,MCTFS WAS MCT ENTERED AT MCTFS ENTRY? @VA12934 00457105
- BO AFFCHECK YES -- LOCKWORDS HAVE ALREADY @VA12934 00457106
- * BEEN SET TO LOOK AS IF THEY 00457107
- * ARE OWNED BY THE RECOVERY PROC. 00457108
- SR R0,R0 CLEAR REGISTER 0 @VA12934 00457109
- L R2,=A(DMKLOKDS) GET ADDR OF DSP QUEUES LOCK @V5BC0AB 00457110
- ST R0,0(,R2) FREE THE DSP QUEUES LOCK @VMH0022 00457116
- L R2,=A(DMKLOKTR) GET ADDR OF TRQ LOCKS @V5BC0AB 00457120
- ST R0,0(,R2) FREE THE TRQ LOCK @VMH0022 00457126
- L R2,=A(DMKLOKRL) GET ADDR OT RUN LIST LOCK @V5BC0AB 00457130
- ST R0,0(,R2) FREE THE RUN LIST LOCK @VMH0022 00457136
- L R2,=A(DMKLOKFR) GET ADDR OF FREE STORAGE LOCK @V5BC0AB 00457140
- ST R0,0(,R2) FREE THE FREE STORAGE LOCK @VMH0022 00457146
- B AFFCHECK GO CHECK FOR USERS WITH AFFINITY @VMH0033 00458100
- * TO THE FAILING PROCESSOR 00458200
- MCTABEND DS 0H @V4M0199 00459000
- ABEND 001 MCT001 ABEND @V4M0199 00460000
- WAIT016 MVC WAITCODE(4),CSSWAIT SET UP WAIT CODE 16 @VA12934 00460020
- B MFAWAIT GO LOAD DISABLED WAIT PSW @VA12934 00460023
- MCTWT019 DS 0H @VA12934 00460026
- LPSW DISABPSW THIS PROCESSOR IS BEING @VA12934 00460029
- * TERMINATED -- STOP IT FROM RUNNING 00460032
- EJECT 00460035
- DMKMCTAF DS 0H @VMH0033 00460040
- SPACE 00460060
- USING *,R12 @VMH0033 00460080
- SPACE 00460100
- L R12,MCTBASE @VMH0033 00460120
- SPACE 00460140
- USING DMKMCT,R12 @VMH0033 00460160
- SPACE 00460180
- AFFCHECK DS 0H @VMH0033 00460200
- L R11,ASYSVM GET SYSTEM VMBLOK ADDRESS @VMH0033 00460220
- L R11,VMPNT GET FIRST VMBLOK IN CYCLIC CHAIN @VMH0033 00460240
- LR R10,R11 SAVE ENDING ADDRESS @VMH0033 00460260
- AFFMSGCF DS 0H @VMH0033 00460280
- TM VMAFF,VMAFFON AFFINITY SET? @VMH0033 00460300
- BZ NOAFFMSG NO, BRANCH @VMH0033 00460320
- TM VMOSTAT,VMKILL USER TO BE LOGGED OFF? @VMH0033 00460340
- BO NOAFFMSG YES, BRANCH @VMH0033 00460360
- TM VMRSTAT,VMLOGON+VMLOGOFF @VMH0033 00460380
- BNZ NOAFFMSG BRANCH IF EITHER IS ON @VMH0033 00460400
- SR R1,R1 CLEAR REGISTER 1 @VMH0033 00460420
- IC R1,VMAFF GET AFFINITY BYTE @VMH0033 00460440
- N R1,=A(X'3F') LEAVE ONLY PROCESSOR ADDRESS @VMH0033 00460460
- CH R1,IPUADDR AFFINITY TO THIS PROCESSOR? @VMH0033 00460480
- BE NOAFFMSG YES, BRANCH @VMH0033 00460500
- MVC VMAFF(1),ZEROES CLEAR AFFINITY BYTE @VMH0033 00460520
- LA R0,MCTAFFLN GET LENGTH OF MESSAGE @VMH0033 00460540
- LA R1,MCTAFFMG GET ADDRESS OF MESSAGE @VMH0033 00460560
- CALL DMKQCNWT,PARM=PRIORITY SEND MESSAGE IMMEDIATELY @VMH0033 00460580
- CALL DMKCFMBK PUT IN CONSOLE FUNCTION MODE @VMH0033 00460600
- NOAFFMSG DS 0H @VMH0033 00460620
- L R11,VMPNT GET ADDRESS OF NEXT VMBLOK @VMH0033 00460640
- CLR R11,R10 END OF CHAIN? @VMH0033 00460660
- BNE AFFMSGCF NO, BRANCH @VMH0033 00460680
- MVI CPAPRINP,X'00' RESET APR RECURSION LOCK @VA12934 00460685
- NI MCTFLAG,X'FF'-MCTFS RESET ENTRY POINT INDICATOR @VA12934 00460690
- MVC MCTFPROC(2),ZEROES CLEAR FAILING PROC ADDRESS @VA12934 00460695
- GOTO DMKDSPCH GO TO THE DISPATCHER @VMH0033 00460700
- EJECT 00461000
- SPACE 00462000
- ***************************************************************@V407510 00463000
- * VIRTUAL MACHINE TERMINATION ROUTINE @V407510 00464000
- ***************************************************************@V407510 00465000
- SPACE 00466000
- VIRTERM DS 0H @V407510 00467000
- MVC MSGCDE(LN3),MSG1 SETUP MESSAGE ID IN BUFFER @VA07837 00468100
- MVC MSGBUF(MSG1L),MSG1B MOVE MESSAGE INTO BUFFER @V407510 00469000
- LA R0,MCMSGL GET LENGTH OF MESSAGE @V407510 00470000
- LA R1,MCTMSG GET THE ADDRESS OF THE MESSAGE @V407510 00471000
- CALL DMKQCNWT,PARM=NORET @V407510 00472000
- MVC MSGCDE(LN3),MSG8 SETUP THE MESSAGE ID @V407510 00473000
- MVC MSG8ID(LN8),VMUSER MOVE THE USERID INTO BUFFER @V407510 00474000
- MVC MSGBUF(MSG8L),MSG8A MOVE MESSAGE INTO BUFFER @V407510 00475000
- LA R0,MCMSGL GET LENGTH OF MESSAGE TEXTS @V407510 00476000
- LA R1,MCTMSG GET THE MESSAGE BUFFER ADDRESS @V407510 00477000
- CALL DMKQCNWT,PARM=OPERATOR+ALARM @V407510 00478000
- C R11,AVMREAL IS THIS THE V=R USER? @V4M0132 00479000
- BNE RESET NO, RESET VIRTUAL USER @V407510 00480000
- OI VMOSTAT,VMKILL DMKDSPCH WILL LOGOFF USER @V407510 00481000
- OI VMSVSTAT,VMLGFORC INDICATE USER WAS FORCED OFF @VA13026 00481500
- BR R6 RETURN TO CALLER @V407510 00482000
- SPACE 00483000
- RESET DS 0H @V407510 00484000
- CALL DMKCFPRR RESET THE VIRTUAL USER SYSTEM @V407510 00485000
- SR R2,R2 IND CLEAR OPTION @V407510 00486000
- CALL DMKPGSPO RELEASE USERS VIRTUAL STORAGE @V407510 00487000
- NI VMRSTAT,OFF-VMEXWAIT MARK USER DISPATCHABLE @V407510 00488000
- CALL DMKCFMBK PUT USER IN CONSOLE FUNCTION MODE @V407510 00489000
- BR R6 RETURN TO CALLER @V407510 00490000
- EJECT 00491000
- * SUBROUTINE NAME - 00492000
- * DMKMCTST 00493000
- * FUNCTION - 00494000
- * THE FUNCTION OF THIS ENTRY POINT IS TO TERMINATE THE SYSTEM 00495000
- * ATTACHED PROCESSOR MODE 00496000
- * 00497000
- * ENTRY CONDITIONS - 00498000
- * R0 - LENGTH OF MESSAGE TO BE ISSUED 00499000
- * R1 - ADDRESS OF MESSAGE TEXT 00500000
- * R2 - WAIT STATE CODE TO BE LOADED 00501000
- * 00502000
- * EXIT CONDITIONS - 00503000
- * DISABLED WAIT STATE LOADED 00504000
- * 00505000
- * REGISTER USAGE - 00506000
- * SEE MAIN PROLOGUE 00507000
- * 00508000
- * OPERATION - 00509000
- * 1. GET ON MAIN PROCESSOR 00510000
- * 2. CALL DMKOPRWT TO ISSUE MESSAGE 00511000
- * 3. LOAD DISABLED WAIT STATE 00512000
- * 00513000
- SPACE 2 00514000
- DMKMCTST DS 0H SYSTEM TERMINATION ROUTINE @V407510 00515000
- USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00516000
- L R12,MCTBASE GET COMMON BASE REG @V407510 00517000
- USING DMKMCT,R12 COMMON ADDRESSABILITY @V407510 00518000
- ST R2,WAITCODE SET UP APPROPRIATE WAIT STATE @V407510 00519000
- BAL R6,SWTCH GET ON MAIN PROCESSOR @V407510 00520000
- B CALLOPR BRANCH TO ISSUE MSG @V407510 00521000
- *********************************************************************** 00522000
- * OPERATOR COMMUNICATION ROUTINE 00523000
- *********************************************************************** 00524000
- SPACE 00525000
- OPCOM DS 0H 00526000
- L R2,0(0,R3) PICK UP MESSAGE NUMBER AND LEN @V407510 00527000
- STCM R2,B'1110',MSGCDE PUT CODE INTO THE MSG HDR @V407510 00528000
- N R2,F255 SAVE ONLY THE MESSAGE LENGTH @V407510 00529000
- S R2,F3 SUBTRACT 3 FROM LENGTH @V4M0217 00530000
- * 2 FOR CONTROL, 1 FOR EXECUTE @V4M0217 00531000
- MVI MSGBUF,BLANK BLANK OUT BUFFER @VA12934 00531300
- MVC MSGBUF+ONE(L'MSGBUF-1),MSGBUF CLEAR BUFFER @V407510 00531600
- EX R2,EMSGMVC MOVE THE MESSAGE TEXT TO 'MSGBUF'@V407510 00532000
- LA R0,MCMSGL SET UP LENGTH OF MESSAGE @V407510 00533000
- LA R1,MCTMSG START OF THE MESSAGE DATA @V407510 00534000
- CALLOPR DS 0H @V407510 00535000
- CALL DMKOPRWT,PARM=ALARM EMERGENCY WRITE TO OPER @V407510 00536000
- SPACE 00537000
- SPACE 00538000
- MFAWAIT DS 0H PUT SYSTEM IN WAIT STATE @V407510 00539000
- L R2,PREFIXA GET OWN PREFIX REG @V407510 00540000
- CLC CPID-PSA(,R2),WARM IS WARM INDICATED IN ID @V4M0144 00541000
- BNE MFAWAIT1 NO, DO NOT CHANGE ID @V407510 00542000
- MVC CPID-PSA(,R2),CPCP MOVE ID IN FOR CHECKPOINT @V4M0144 00543000
- MFAWAIT1 DS 0H @V407510 00544000
- LPSW WAITMCT ENTER DISABLED WAIT STATE @V407510 00545000
- EMSGMVC MVC MSGBUF(*-*),LN4(R3) MOVE MSG TO BUFFER @V407510 00546000
- EJECT 00547000
- * EQUATES @V407510 00548000
- SPACE 00549000
- ONE EQU 1 DISPLACEMENT OF 1 @V407510 00550000
- ZONE EQU X'F0' ZONE USED FOR CONVERSION @V407510 00551000
- LN2 EQU 2 LENGTH OF 2 @V407510 00552000
- LN3 EQU 3 LENGTH OF 3 @V407510 00553000
- LN4 EQU 4 LENGTH OF 4 @V407510 00554000
- LN8 EQU 8 LENGTH OF 8 @V407510 00555000
- CLEAR EQU X'00' SET FIELD TO ZERO @V407510 00556000
- OFF EQU X'FF' MASK TO TURN BIT OFF @V407510 00557000
- BLANK EQU X'40' BLANK CHARACTER @V407510 00558000
- FORCE EQU X'02' FORCED LOGOFF BY SYSTEM @VA08667 00558200
- SPACE 00559000
- * DEFINE STORAGE CONSTANTS @V407510 00560000
- WARM DC CL4'WARM' CPID VALUE OF WARM @V407510 00561000
- CPCP DC CL4'CPCP' CPID VALUE OF CPCP @V407510 00562000
- DS 0F FULL WORD ALIGNMENT @V4M0144 00563000
- HIGHBIT DC X'80000000' MASK TO TURN ON HIGH BIT @V4M0144 00564000
- WORK DC D'0' WORK AREA FOR CONVERSION @V407510 00565000
- WORKLO EQU WORK+6 SIGNIFICANT DIGITS AFTER UNPK @V407510 00566000
- RSRTMAIN DS 0D RESTART PSW FOR MAIN PROCESSOR @V407510 00567000
- DC X'00080000' DO NOT ALLOW MACHINE CHECKS @V407510 00568000
- DC A(MAINRSRT) RESTART AT MAINRSRT @V407510 00569000
- WAITMCT DS 0D 013 WAIT STATE PSW @V407510 00570000
- DC X'0002',X'0000' @V407510 00571000
- WAITCODE DC X'00000013' WAIT STATE CODE @V407510 00572000
- * FOR ATTACHED PROCESSOR @V407510 00573000
- MAINCODE DC X'00000001' WAIT STATE FOR MAIN PROCESSOR @V407510 00574000
- CSSWAIT DC X'00000016' CHANNEL SET SWITCH FAILURE @VA12934 00575000
- DISABPSW DS 0D DISABLED WAIT PSW @VA12934 00575070
- DC X'00020000',X'00000019' @VA12934 00575140
- DMKMCTPF DC F'0' ADDRESS OF PSA PAGE OF TERMINATED@VA12934 00575210
- * PROCESSOR 00575280
- DMKMCTVM DC F'0' TERMINATE VIRTUAL USER ADDRESS @VA12934 00575350
- MCTTERM EQU DMKMCTVM INTERNAL LABEL TO REFERENCE @VA12934 00575420
- * ADDRESS OF USER TO BE TERMINATED 00575490
- MCTFPROC DC H'0' ADDRESS OF FAILING (UNRESPONSIVE)@VA12934 00575560
- * PROCESSOR 00575630
- DMKMCTFL DC X'00' DMKMCT FLAGS @VA12934 00575700
- MCTFLAG EQU DMKMCTFL INTERNAL LABEL TO REFERENCE FLAGS@VA12934 00575770
- MCTFS EQU X'80' FLAG TO INDICATE THAT DMKMCT WAS @VA12934 00575840
- * ENTERED AT DMKMCTFS ENTRY POINT @VA12934 00575910
- MCTBASE DC A(DMKMCT) COMMON BASE VALUE @V407510 00576000
- MCTDMPMA DC A(DMKDMPMA) PROC. ADDRESS OF PROCIO @VA12934 00576200
- MCTDMPAA DC A(DMKDMPAA) PROC. ADDRESS OF NON-PROCIO @VA12934 00576400
- MCTDMPSA DC A(DMKDMPSA) DMP'S POINTER TO PSA ADDRESSES @VA12934 00576600
- MCTDSPRQ DC A(DMKDSPRQ) ADDRESS OF DISPATCHER'S QUEUES @VA12934 00576800
- EJECT 00577000
- ********************************************************************** 00578000
- SPACE 00579000
- SPACE 00580000
- SPACE 00581000
- SPACE 00582000
- MCTMSG DC X'151515' @V407510 00583000
- MCTID DC C'DMKMCT6' @V407510 00584000
- MSGCDE DC C'10W ' @V4M0217 00585000
- DC C'MACHINE CHECK' @V407510 00586000
- MSGBUF DC CL35' ' @V4M0217 00587000
- MSGPROC DC CL2' ' PROCESSOR ADDRESS @V407510 00588000
- DC XL2'1515' CONTROL CHARACTERS @V4M0217 00589000
- MCMSGL EQU *-MCTMSG LENGTH OF MESSAGE @V407510 00590000
- MSG1 DC C'19I' @V407510 00591000
- MSG1A DC X'17' @V407510 00592000
- MSG1B DC C'; OPERATION TERMINATED' @V407510 00593000
- MSG1L EQU *-MSG1B @V407510 00594000
- MSG2 DC C'10W' @V4M0217 00595000
- MSG2A DC X'15' @V407510 00596000
- MSG2B DC C'; SUPERVISOR DAMAGE',X'1515' @V407510 00597000
- MSG2L EQU *-MSG2B @V407510 00598000
- MSG3 DC C'11W' @V4M0217 00599000
- MSG3A DC X'19' @V407510 00600000
- MSG3B DC C'; SYSTEM INTEGRITY LOST',X'1515' @V407510 00601000
- MSG3L EQU *-MSG3B @V407510 00602000
- MSG4 DC C'12W' @V407510 00603000
- MSG4A DC X'1C' @V407510 00604000
- MSG4B DC C'; TIMING FACILITIES DAMAGE',X'1515' @V407510 00605000
- MSG4L EQU *-MSG4B @V407510 00606000
- MSG8 DC C'16I' @V407510 00607000
- MSG8A DC C'; USER ' @V407510 00608000
- MSG8ID DC CL8'XXXXXXXX' @V407510 00609000
- DC C' TERMINATED',X'1515' @V407510 00610000
- MSG8L EQU *-MSG8A @V407510 00611000
- MSG9 DC C'20I' @V407510 00612000
- MSG9A DC X'23' @V407510 00613000
- MSG9B DC C'; ATTACHED PROCESSOR NOT BEING USED' @V407510 00614000
- MSG9L EQU *-MSG9B @V407510 00615000
- MCTAFFMG DC X'151515' @VMH0033 00616100
- DC C'DMKMCT621I AFFINITY SET OFF' @VMH0033 00616200
- DC X'1515' @VMH0033 00616300
- MCTAFFLN EQU *-MCTAFFMG @VMH0033 00616400
- MCT623MG DC X'151515' @VA12934 00620000
- DC C'DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR ' @VA12934 00620200
- MCTID623 DC C' ' @VA12934 00620400
- DC X'1515' @VA12934 00620600
- MCT623LN EQU *-MCT623MG @VA12934 00620800
- ********************************************************************** 00621000
- EJECT 00622000
- LTORG 00623000
- EJECT 00624000
- COPY VMBLOK @V407510 00625000
- COPY SAVE @V4M0175 00626000
- PSA @V407510 00627000
- COPY EQU @V407510 00628000
- COPY MCHAREA @V407510 00629000
- COPY TIMER @V407510 00630000
- END 00631000
ibm/vm370-lib/cp/dmkmct.assemble_src.txt ยท Last modified: 2023/08/06 13:37 by Site Administrator