Table of Contents

DMKMCT Source

References

Source Listing

DMKMCT.ASSEMBLE.txt
  1. MCT TITLE 'DMKMCT (CP) VM/370 - RELEASE 6' 00001000
  2. ISEQ 73,80 00002000
  3. * 00003000
  4. * MODULE NAME - 00004000
  5. * DMKMCT 00005000
  6. * 00006000
  7. * FUNCTION 00007000
  8. * THE FUNCTION OF THIS ROUTINE IS TO HANDLE ATTACHED PROCESSOR 00008000
  9. * MODE PROCESSOR TERMINATION SITUATIONS, MALFUNCTION 00009000
  10. * ALERTS, AND AUTOMATIC PROCESSOR RECOVERY. 00010000
  11. * 00011000
  12. * ATTRIBUTES 00012000
  13. * RESIDENT (NOT REQUIRED IF NOT ATTACHED PROCESSOR SYSTEM) 00013000
  14. * 00014000
  15. * ENTRY POINTS 00015000
  16. * DMKMCTPT - PROCESSOR TERMINATION SLIH (GOTO) 00016000
  17. * 00017000
  18. * DMKMCTMA - MALFUNCTION ALERT SLIH (BALR) 00018000
  19. * 00019000
  20. * DMKMCTPR - PROCESSOR RECOVERY SLIH (GOTO) 00020000
  21. * 00021000
  22. * DMKMCTST - SYSTEM TERMINATION (GOTO) 00022000
  23. * 00022300
  24. * DMKMCTFS - UNSUCCESSFUL SIGP RECOVERY (BALR) 00022600
  25. * 00023000
  26. * ENTRY CONDITIONS - 00024000
  27. * R3 - ADDRESS OF ERROR MSG TO BE ISSUED 00025000
  28. * R15- ENTRY POINT ADDRESS 00026000
  29. * 00027000
  30. * EXIT CONDITIONS - 00028000
  31. * DISABLED WAIT STATE FOR SITUATIONS 00029000
  32. * THAT CAUSE SYSTEM TERMINATION 00030000
  33. * 00031000
  34. * THE MAIN OR THE ATTACHED PROCESSOR IN STOPPED STATE 00032100
  35. * AND THE OTHER PROCESSOR HAS BEEN SIGNALLED TO 00032200
  36. * COMPLETE PROCESSING (SIGNAL APR). 00032300
  37. * 00035000
  38. * RETURN TO CALLER IF PROCESSING COMPLETE AND 00036000
  39. * SYSTEM NOT TERMINATED 00037000
  40. * 00038000
  41. * EXIT TO DMKLOKPS, THE SYSTEM PROCESSOR SPIN 00039000
  42. * ROUTINE BECAUSE SYSTEM TERMINATION IS ALREADY 00040000
  43. * IN PROCESS. THIS PROCESSOR SHOULD BE SIGNALLED 00041000
  44. * BY THE OTHER PROCESSOR TO STOP OR TO RESTART 00042000
  45. * 00043000
  46. * CALLS TO OTHER ROUTINES - 00044000
  47. * DMKQCNWT - TO SEND MESSAGES TO A VIRTUAL MACHINE AND THE 00045000
  48. * SYSTEM OPERATOR 00046000
  49. * DMKPGSPO - TO RELEASE USER'S VIRTUAL STORAGE 00047000
  50. * DMKCFMBK - TO PUT USER IN CONSOLE FUNCTION MODE 00048000
  51. * DMKCFPRR - TO RESET VIRTUAL MACHINE 00049000
  52. * DMKOPRWT - TO WRITE EMERGENCY MESSAGE TO SYSTEM OPERATOR 00050000
  53. * DMKCPPUP - TO VARY THE TERMINATING PROCESSOR OFFLINE 00051100
  54. * (TO CONVERT TO UNIPROCESSOR MODE). 00051200
  55. * DMKLOKPS - TO SPIN UNTIL SYSTEM TERMINATION COMPLETE 00052000
  56. * DMKCVTBH - TO CONVERT PROCESSOR ADDR. TO PRINTABLE FORM 00052500
  57. * 00053000
  58. * EXTERNAL REFERENCES - 00054000
  59. * 00055000
  60. * CPSUPER - DETERMINE IF CONTROL PROGRAM ACTIVE 00057000
  61. * 00057500
  62. * CPWAIT - DETERMINE IF CONTROL PROGRAM IN WAIT STATE 00058000
  63. * 00059000
  64. * PROCIO - INDICATOR IF PROCESSOR HAS I/O CAPABILITY 00060000
  65. * 00061000
  66. * CPID - IN ABSOLUTE 0 00062000
  67. * 00062500
  68. * APUOPER - INDICATOR IF SYSTEM RUNNING IN ATTACHED 00063000
  69. * PROCESSOR MODE 00064000
  70. * 00065000
  71. * PREFIXA - ADDRESS OF PREFIX REGISTER FOR CURRENT PROCESSOR 00066000
  72. * 00067000
  73. * CPAPRPND - AUTOMATIC PROCESSOR RECOVERY PENDING 00068000
  74. * 00068300
  75. * CPAPRINP - AUTOMATIC PROCESSOR RECOVERY IN PROCESS 00068600
  76. * 00069000
  77. * EMSPQUI - QUIESCE PENDING 00070000
  78. * 00071000
  79. * DMKDMPMA - PROCESSOR ADDRESS OF PROCIO 00071100
  80. * 00071200
  81. * DMKDMPAA - PROCESSOR ADDRESS OF NON-PROCIO 00071300
  82. * 00071400
  83. * DMKDMPSA - DMKDMP'S LIST OF PSA ADDRESSES 00071500
  84. * 00071600
  85. * DMKDSPRQ - DISPATCHER'S CPEXBLOK QUEUE 00071700
  86. * 00071800
  87. * TABLES/WORKAREAS - 00072000
  88. * PSA, VMBLOK 00073000
  89. * 00074000
  90. * MACROS - 00075000
  91. * CHARGE - TO START CHARGING THE VIRTUAL MACHINE FOR ITS 00076000
  92. * TERMINATION 00077000
  93. * 00078000
  94. * SIGNAL TO SIGNAL THE PROCESSORS 00079000
  95. * STOP 00080000
  96. * STOP AND STORE STATUS 00081000
  97. * RESTART 00082000
  98. * APR 00083000
  99. * 00084000
  100. * REGISTER USAGE - 00085000
  101. * GPR0 - 00086000
  102. * GPR1 - 00087000
  103. * GPR2 - 00088000
  104. * GPR3 - 00089000
  105. * GPR4 - 00090000
  106. * GPR5 - 00091000
  107. * GPR6 - 00092000
  108. * GPR7 - 00093000
  109. * GPR8 - 00094000
  110. * GPR9 - 00095000
  111. * GPR10- 00096000
  112. * GPR11- 00097000
  113. * GPR12- MCT BASE 00098000
  114. * GPR13- 00099000
  115. * GPR14- LINKAGE 00100000
  116. * GPR15- LINKAGE 00101000
  117. * 00102000
  118. * OPERATION - 00103000
  119. * SEE ENTRY POINT PROLOGUES 00104000
  120. * 00105000
  121. * ERROR MESSAGES - 00106000
  122. * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00107000
  123. * DMKMCT611W MACHINE CHECK; SYSTEM INTEGRITY LOST CPUID 00108000
  124. * DMKMCT612W MACHINE CHECK; TIMING FACILITIES DAMAGE CPUID 00109000
  125. * DMKMCT616I MACHINE CHECK; USER XXXXXXXX TERMINATED CPUID 00110000
  126. * DMKMCT619I MACHINE CHECK; OPERATION TERMINATED CPUID 00111000
  127. * DMKMCT620I MACHINE CHECK; ATTACHED PROCESSOR NOT BEING USED 00112000
  128. * DMKMCT621I MACHINE CHECK; AFFINITY SET OFF 00113000
  129. * DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR NN 00113500
  130. * 00114000
  131. * WAIT STATE CODES - 00115000
  132. * 001 - UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00116000
  133. * 013 - UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR 00117000
  134. * 016 - CHANNEL SET SWITCHING FACILITY HAS FAILED 00117200
  135. * 019 - THE PROCESSOR TERMINATION ROUTINE WAS 00117400
  136. * ENTERED ON THIS PROCESSOR WHILE THIS 00117600
  137. * PROCESSOR WAS BEING TERMINATED. 00117800
  138. * 00118000
  139. EJECT 00119000
  140. COPY OPTIONS @V407510 00120000
  141. COPY LOCAL @V407510 00121000
  142. EJECT 00122000
  143. DMKMCT CSECT 00123000
  144. ENTRY DMKMCTPT PROCESSOR TERMINATION ROUTINE @V407510 00124000
  145. ENTRY DMKMCTMA MALFUNCTION ALERT ROUTINE @V407510 00125000
  146. ENTRY DMKMCTPR PROCESSOR RECOVERY ROUTINE @V407510 00126000
  147. ENTRY DMKMCTST SYSTEM TERMINATION @V407510 00127000
  148. ENTRY DMKMCTFS FAILING SIGP ROUTINE @VA12934 00127050
  149. ENTRY DMKMCTAF @VMH0033 00127100
  150. ENTRY DMKMCTPF @VA12934 00127300
  151. ENTRY DMKMCTFL @VA12934 00127500
  152. ENTRY DMKMCTVM @VA12934 00127700
  153. EXTRN DMKQCNWT @V407510 00128000
  154. EXTRN DMKPGSPO @V407510 00129000
  155. EXTRN DMKCFMBK @V407510 00130000
  156. EXTRN DMKCFPRR @V407510 00131000
  157. EXTRN DMKOPRWT @V407510 00132000
  158. EXTRN DMKLOKPS @V407510 00134000
  159. EXTRN DMKSCHTQ @V407510 00135000
  160. EXTRN DMKSTKMP @V4M0175 00136000
  161. EXTRN DMKLOKSY SYSTEM LOCKWORD @V4M0199 00137000
  162. EXTRN DMKCPPUP @VA12934 00137010
  163. EXTRN DMKLOKDS,DMKLOKTR,DMKLOKRL,DMKLOKFR @V5BC0AB 00137110
  164. EXTRN DMKCVTBH @VA12934 00137210
  165. EXTRN DMKDMPMA @VA12934 00137310
  166. EXTRN DMKDMPSA @VA12934 00137410
  167. EXTRN DMKDMPAA @VA12934 00137510
  168. EXTRN DMKDSPRQ @VA12934 00137610
  169. USING PSA,0 @V407510 00138000
  170. USING VMBLOK,R11 @V407510 00139000
  171. EJECT 00140000
  172. * SUBROUTINE NAME - 00141000
  173. * DMKMCTPT 00142000
  174. * 00143000
  175. * FUNCTION - 00144000
  176. * THE FUNCTION OF THIS ENTRY POINT IS TO COMPLETE PROCESSOR 00145000
  177. * TERMINATION IN THE ATTACHED PROCESSOR MODE 00146000
  178. * 00147000
  179. * ENTRY CONDITIONS - 00148000
  180. * R3 - ADDRESS OF APPROPRIATE MESSAGE TO BE ISSUED 00149000
  181. * R9 - ADDRESS OF MCHAREA 00150000
  182. * 00151000
  183. * EXIT CONDITIONS - 00152000
  184. * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION 00153000
  185. * 00154000
  186. * ATTACHED PROCESSOR IN STOPPED STATE WHERE THE MAIN PROCESSOR 00155000
  187. * HAS BEEN SIGNALLED TO COMPLETE PROCESSING 00156000
  188. * 00157000
  189. * REGISTER USAGE - 00158000
  190. * SEE MAIN PROLOGUE 00159000
  191. * 00160000
  192. * OPERATION - 00161000
  193. * 1. IF CLOCK ERROR AND NOT IN SUPERVISOR STATE, 00162000
  194. * SIGNAL THE OTHER PROCESSOR FOR 00163000
  195. * AUTOMATIC PROCESSOR RECOVERY (APR). 00164000
  196. * 2. INDICATE TERMINATE VIRTUAL MACHINE IF VIRTUAL 00165000
  197. * MACHINE ACTIVE BY PUTTING ADDRESS OF VMBLOK 00166000
  198. * IN MCTTERM. 00167000
  199. * 3. SIGNAL SELF TO STOP AND STORE STATUS. 00168000
  200. * 4. IF TERMINATION ALREADY IN PROCESS, CALL DMKLOKPS. 00169000
  201. * OTHERWISE, SET TERMINATION IN PROCESS SWITCH. 00170000
  202. * 5. IF NOT ABOVE SITUATION AND NOT ON MAIN PROCESSOR, SIGNAL 00171000
  203. * MAIN PROCESSOR STOP AND STORE STATUS THEN RESTART AT 7. 00172000
  204. * 6. MAIN PROCESSOR - SIGNAL ATTACHED PROCESSOR TO STOP 00173000
  205. * AND STORE STATUS 00174000
  206. * 7. SEND EMERGENCY MESSAGE TO OPERATOR. 00175000
  207. * 8. LOAD DISABLED WAIT STATE. 00176000
  208. * 00177000
  209. * MESSAGES - 00178000
  210. * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00179000
  211. * DMKMCT611W MACHINE CHECK; SYSTEM INTEGRITY LOST CPUID 00180000
  212. * DMKMCT612W MACHINE CHECK; TIMING FACILITIES DAMAGE CPUID 00181000
  213. * DMKMCT616I MACHINE CHECK; USER XXXXXXXX TERMINATED CPUID 00182000
  214. * DMKMCT619I MACHINE CHECK; OPERATION TERMINATED CPUID 00183000
  215. * 00184000
  216. * WAIT STATE CODES 00185000
  217. * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00186000
  218. * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR. 00187000
  219. * 00188000
  220. DMKMCTPT DS 0H PROCESSOR TERMINATION @V407510 00189000
  221. USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00190000
  222. L R12,MCTBASE GET COMMON BASE @V407510 00191000
  223. USING DMKMCT,R12 COMMON ADDRESSABILITY @V407510 00192000
  224. USING MCHAREA,R9 ADDRESSABILITY TO MCHAREA @V407510 00193000
  225. TM MCHFLAG1,MCH1TODC TOD CLOCK DAMAGE? @V407510 00194000
  226. BZ TERM NO, TERMINATE SYSTEM @V407510 00195000
  227. TM APSTAT1,PROCIO MAIN PROCESSOR? @V407510 00196000
  228. BZ USERACT NO, BRANCH @V60B7AB 00197100
  229. TM APSTAT1,CSSFEAT IS THE CSS FACILITY AVAILABLE? @V60B7AB 00197200
  230. BNO TERM NO, TERMINATE THE SYSTEM @V60B7AB 00197300
  231. USERACT DS 0H @V60B7AB 00197400
  232. TM MCHFLAG7,MCH7OPSW VIRTUAL USER ACTIVE @V4M0144 00198000
  233. BNO TERM NO, TERMINATE SYSTEM @V4M0144 00199000
  234. ST R11,MCTTERM SAVE VMBLOK ADDRESS TO BE @V407510 00200000
  235. * TERMINATED @V407510 00201000
  236. L R2,PREFIXB GET OTHER PROCESSOR PSA @V4M0199 00202000
  237. MVI EMSPEND-PSA(R2),EMSPQUI INSURE OTHER PROCESSOR @V4M0199 00203000
  238. * WILL DO NO WORK- FORCE QUIESCE @V4M0199 00204000
  239. SIGNAL DS 0H SIGNAL OTHER PROCESSOR @V407510 00205000
  240. SIGNAL APR AUTOMATIC PROCESSOR RECOVERY @V407510 00206000
  241. SIGNAL SSS,CONTROL=AUTO SIGNAL SELF TO STOP AND 00207000
  242. * STORE STATUS @V407510 00208000
  243. TERM DS 0H TERMINATE SYSTEM @V407510 00209000
  244. L R14,PREFIXA GET OWN PREFIX REG @V4M0144 00210000
  245. TS CPTERMLK-PSA(R14) SYS TERMINATION IN PROGRESS @V4M0144 00211000
  246. BZ APTERM NO, TERMINATE AP MODE @V407510 00212000
  247. LA R1,CPTERMLK-PSA(,R14) GET ADDRESS OF LOCK @V4M0144 00213000
  248. O R1,HIGHBIT TURN ON HIGH ORDER BIT @V4M0144 00214000
  249. CALL DMKLOKPS YES, SPIN UNTIL SIGNALLED @V4M0144 00215000
  250. APTERM DS 0H @V407510 00216000
  251. LH R2,IPUADDR GET PROCESSOR ADDRESS @V407510 00217000
  252. CVD R2,WORK CONVERT TO DECIMAL @V407510 00218000
  253. UNPK MSGPROC(LN2),WORKLO(LN2) CONVERT 2 DIGITS @V407510 00219000
  254. OI MSGPROC+ONE,ZONE SET ZONE FOR LAST DIGIT @V407510 00220000
  255. BAL R6,SWTCH GET ON MAIN PROCESSOR @V407510 00221000
  256. B OPCOM ISSUE MSG AND LOAD WAIT STATE @V407510 00222000
  257. SWTCH DS 0H SWITCH TO MAIN PROCESSOR @V407510 00223000
  258. TM APSTAT1,PROCIO MAIN PROCESSOR? @V407510 00224000
  259. BNO ATTTERM NO, BRANCH @V407510 00225000
  260. SIGNAL SSS STOP & STORE STATUS TO @V407510 00226000
  261. * ATTACHED PROCESSOR @V407510 00227000
  262. MCTWAIT DS 0H @V407510 00228000
  263. MVC WAITCODE(LN4),MAINCODE SET UP 001 WAIT STATE @V407510 00229000
  264. BR R6 RETURN TO CALLER @V407510 00230000
  265. ATTTERM DS 0H @V407510 00231000
  266. L R4,PREFIXA GET OWN PREFIX REG @V407510 00232000
  267. STM R0,R15,DUMPSAVE-PSA(R4) SAVE REGS FOR RESTART @V407510 00233000
  268. L R4,PREFIXB GET OTHER PREFIX REG @V407510 00234000
  269. MVC RSRTNPSW-PSA(,R4),RSRTMAIN RESTART NEW PSW @V4M0194 00235000
  270. SIGNAL SSS SIGNAL MAIN PROCESSOR TO STOP @V407510 00236000
  271. SIGNAL RESTART SIGNAL MAIN PROCESSOR TO RESTART @V407510 00237000
  272. SIGNAL STOP,CONTROL=AUTO SIGNAL SELF TO STOP @V407510 00238000
  273. MAINRSRT DS 0H RESTART ON MAIN PROCESSOR @V407510 00239000
  274. L R4,PREFIXA GET OWN PREFIX REGISTER @V407510 00240000
  275. LM R0,R15,DUMPSAVE-PSA(R4) RESTORE REGS @V407510 00241000
  276. BR R6 RETURN TO CALLER ON MAIN @V407510 00242000
  277. EJECT 00243000
  278. * SUBROUTINE NAME - 00244000
  279. * DMKMCTMA 00245000
  280. * 00246000
  281. * FUNCTION - 00247000
  282. * THE FUNCTION OF THIS ENTRY POINT IS TO HANDLE MALFUNCTION 00248000
  283. * ALERT INTERRUPTS. EITHER THE SYSTEM WILL BE TERMINATED OR 00249000
  284. * AUTOMATIC PROCESSOR RECOVERY WILL BE INITIATED. 00250000
  285. * 00251000
  286. * ENTRY CONDITIONS - 00252000
  287. * SEE MAIN PROLOGUE 00253000
  288. * 00254000
  289. * EXIT CONDITIONS - 00255000
  290. * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION. 00256000
  291. * 00257000
  292. * RETURN TO CALLER AFTER AUTOMATIC PROCESSOR RECOVERY SCHEDULED. 00258000
  293. * 00259000
  294. * REGISTER USAGE - 00260000
  295. * SEE MAIN PROLOGUE 00261000
  296. * 00262000
  297. * OPERATION - 00263000
  298. * 1. IF THE MALFUNCTION ALERT IS FROM A DEAD PROCESSOR, 00264000
  299. * RETURN TO CALLER. 00265000
  300. * 2. IF PROCESSOR TERMINATION WAS IN PROCESS, 00266000
  301. * LOAD A DISABLED WAIT STATE. 00267000
  302. * 3. IF THE MALFUNCTION ALERT WAS FROM THE MAIN PROCESSOR, 00268000
  303. * AND THE CONTROL PROGRAM WAS ACTIVE, 00268100
  304. * OR THE CSS FACILITY IS NOT AVAILABLE, 00268200
  305. * LOAD DISABLED WAIT STATE. 00269000
  306. * 4. IF THE MALFUNCTION ALERT WAS FROM THE ATTACHED PROCESSOR 00270000
  307. * AND THE CONTROL PROGRAM WAS ACTIVE, SEND MESSAGE TO 00271000
  308. * OPERATOR AND LOAD A DISABLED WAIT STATE. 00272000
  309. * 5. INDICATE TERMINATE VIRTUAL MACHINE IF VIRTUAL 00273000
  310. * MACHINE ACTIVE BY PUTTING ADDRESS OF VMBLOK 00274000
  311. * IN MCTTERM. 00275000
  312. * 6. SET QUIESCE PENDING FOR THE MALFUNCTIONING PROCESSOR. 00276000
  313. * 7. TURN ON CPAPRPND FOR AUTOMATIC PROCESSOR RECOVERY. 00277000
  314. * 8. RETURN TO CALLER. 00278000
  315. * 00279000
  316. * MESSAGES - 00280000
  317. * DMKMCT610W MACHINE CHECK; SUPERVISOR DAMAGE CPUID 00281000
  318. * 00282000
  319. * WAIT STATE CODES - 00283000
  320. * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00284000
  321. * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR 00285000
  322. * 00286000
  323. DMKMCTMA DS 0H MALFUNCTION ALERT SLIH @V407510 00287000
  324. USING *,R15 SET UP TEMPORARY ADDRESSABILITY @V407510 00288000
  325. STM R0,R15,MFASAVE SAVE CALLERS REGISTERS @V407510 00289000
  326. L R12,MCTBASE LOAD NORMAL BASE REG @V407510 00290000
  327. DROP R15 RELEASE TEMPORARY BASE @V407510 00291000
  328. USING DMKMCT,R12 SET UP NORMAL ADDRESSABILITY @V407510 00292000
  329. TM APSTAT1,APUOPER PROCESSOR ALREADY DEAD? @V407510 00293000
  330. BNO MFAEXIT YES, RETURN TO CALLER @V407510 00294000
  331. MFACONT L R2,PREFIXB GET OTHER PROCESSOR PSA @VA12934 00295000
  332. MVI EMSPEND-PSA(R2),EMSPQUI INSURE OTHER @V407510 00296000
  333. * PROCESSOR WILL DO NO @V407510 00297000
  334. * MORE WORK- FORCE QUIESCE @V407510 00298000
  335. L R3,PREFIXA GET OWN PREFIX REG @V4M0208 00299000
  336. CLI CPTERMLK-PSA(R3),CLEAR SYS TERM IN PROGRESS? @V4M0208 00300000
  337. BNE MFAWAIT YES, LOAD A WAIT STATE @V407510 00301000
  338. TM APSTAT1,PROCIO IS THIS THE MAIN PROCESSOR? @V407510 00302000
  339. BNZ MFASUP YES, CONTINUE CHECKS @V407510 00303000
  340. TM APSTAT1,CSSFEAT CSS FACILITY AVAILABLE? @V60B7AB 00303100
  341. BO MFASUP YES, BRANCH @V60B7AB 00303200
  342. MAINMFA DS 0H @V60B7AB 00303300
  343. MVC WAITCODE,MAINCODE SET UP 001 WAIT STATE @V4M0208 00304000
  344. B MFAWAIT LOAD WAIT STATE @V407510 00305000
  345. MFASUP DS 0H @V407510 00306000
  346. TM CPSTATUS-PSA(R2),CPSUPER OTHER PROCESSOR @V407510 00307000
  347. * IN SUPERVISOR STATE? @V407510 00308000
  348. BNO MFAREC NO, CAN CONTINUE @V407510 00309000
  349. TM CPSTATUS-PSA(R2),CPWAIT OTHER PROCESSOR @V407510 00310000
  350. * ABOUT TO GO INTO WAIT STATE?@V407510 00311000
  351. BO MFAREC YES, CAN CONTINUE @V407510 00312000
  352. TM APSTAT1,PROCIO ON THE MAIN PROCESSOR? @V60B7AB 00312100
  353. BNO MAINMFA NO, BRANCH. NO MESSAGE IS SENT @V60B7AB 00312200
  354. * WHEN THE MAIN HAS MALFUNCTIONED 00312300
  355. LA R3,MSG2 SET UP MSG 610W @V407510 00313000
  356. B OPCOM ISSUE MSG AND TERMINATE @V407510 00314000
  357. MFAREC DS 0H ABLE TO KEEP SYSTEM UP @V407510 00315000
  358. CLC RUNUSER-PSA(,R2),ASYSVM RUNUSER=SYSTEM VMBLOK? @VA07316 00316100
  359. BE MFAAPR YES, DON'T TERMINATE SYS VMBLOK @V407510 00317000
  360. MVC MCTTERM,RUNUSER-PSA(R2) TERMINATE RUNUSER FOR @V407510 00318000
  361. * OTHER PROCESSOR 00319000
  362. MFAAPR DS 0H @V407510 00320000
  363. OI APSTAT4,CPAPRPND APR PENDING @VA07615 00321100
  364. MFAEXIT DS 0H @V407510 00322000
  365. LM R0,R15,MFASAVE RESTORE REGS @V407510 00323000
  366. BR R14 RETURN TO CALLER @V407510 00324000
  367. EJECT 00324010
  368. * SUBROUTINE NAME - 00324020
  369. * DMKMCTFS 00324030
  370. * 00324040
  371. * FUNCTION - 00324050
  372. * THE FUNCTION OF THIS ENTRY POINT IS TO HANDLE NON-ZERO 00324060
  373. * CONDITION CODES FROM THE SIGP INSTRUCTION -- I.E., THE 00324070
  374. * SIGNALLED PROCESSOR IS UNRESPONSIVE. EITHER THE SYSTEM 00324080
  375. * MUST BE TERMINATED OR AUTOMATIC PROCESSOR RECOVERY 00324090
  376. * WILL BE INITIATED. 00324100
  377. * 00324110
  378. * ENTRY CONDITIONS - 00324120
  379. * SEE MAIN PROLOGUE 00324130
  380. * 00324140
  381. * EXIT CONDITIONS - 00324150
  382. * DISABLED WAIT STATE FOR COMPLETED SYSTEM TERMINATION. 00324160
  383. * 00324170
  384. * RETURN TO CALLER AFTER AUTOMATIC PROCESSOR RECOVERY SCHEDULED. 00324180
  385. * 00324190
  386. * REGISTER USAGE - 00324200
  387. * SEE MAIN PROLOGUE 00324210
  388. * 00324220
  389. * OPERATION - 00324230
  390. * 1. THE INDICATOR MCTFS IN MCTFLAG IS SET TO 00324240
  391. * INDICATE THAT DMKMCT WAS ENTERED TO PROCESS 00324250
  392. * A CONDITION CODE 1 OR 2 FROM A SIGP INSTRUCTION. 00324260
  393. * 2. THE ADDRESS OF THE PSA BELONGING TO THE 00324270
  394. * UNRESPONSIVE PROCESSOR IS OBTAINED. ALL OF THE 00324280
  395. * PROCESSOR'S NEW PSWS ARE SET UP TO LOAD A 00324290
  396. * DISABLED WAIT STATE UPON ANY INTERRUPTION. 00324300
  397. * THIS WILL PREVENT THE UNRESPONSIVE PROCESSOR 00324310
  398. * FROM RUNNING MUCH FURTHER IF IT IS STILL ALIVE. 00324320
  399. * THEN PROCESSING WILL CONTINUE AS IF A 00324330
  400. * MALFUNCTION ALERT HAD BEEN RECEIVED FROM THE 00324340
  401. * UNRESPONSIVE PROCESSOR. 00324350
  402. * 00324360
  403. * MESSAGES - 00324370
  404. * NONE 00324380
  405. * 00324390
  406. * WAIT STATE CODES - 00324400
  407. * 001 UNRECOVERABLE FAILURE ON MAIN PROCESSOR 00324410
  408. * 013 UNRECOVERABLE FAILURE ON ATTACHED PROCESSOR. 00324420
  409. * 00324430
  410. DMKMCTFS DS 0H FAILING SIGNAL PROCESSING @VA12934 00324440
  411. USING *,R15 SET UP TEMPORARY ADDRESSABILITY @VA12934 00324450
  412. STM R0,R15,MFASAVE SAVE CALLERS REGISTERS @VA12934 00324460
  413. L R12,MCTBASE LOAD NORMAL BASE REG @VA12934 00324470
  414. DROP R15 RELEASE TEMPORARY BASE @VA12934 00324480
  415. USING DMKMCT,R12 SET UP NORMAL ADDRESSABILITY @VA12934 00324490
  416. OI MCTFLAG,MCTFS INDICATOR FOR DMKMCTFS ENTRY @VA12934 00324500
  417. L R2,PREFIXB ACCESS PSA OF UNRESPONSIVE PROC. @VA12934 00324510
  418. MVC EXNPSW-PSA(8,R2),DISABPSW SET UP THE NEW PSWS @VA12934 00324520
  419. * OF THE UNRESPONSIVE PROCESSOR TO 00324530
  420. * CONTAIN DISABLED WAIT PSWS. THEN, 00324540
  421. * SHOULD THE PROCESSOR STILL BE ALIVE, 00324550
  422. * WE CAN FORCE IT TO STOP RUNNING. 00324560
  423. MVC SVCNPSW-PSA(32,R2),EXNPSW-PSA(R2) PROPAGATE THE @VA12934 00324570
  424. * DISABLED WAIT PSW TO ALL NEW PSWS 00324580
  425. B MFACONT CONTINUE AS FOR MALFUNCTION ALERT@VA12934 00324590
  426. EJECT 00325000
  427. * SUBROUTINE NAME - 00326000
  428. * DMKMCTPR 00327000
  429. * FUNCTION - 00328000
  430. * THE FUNCTION OF THIS ENTRY POINT IS TO ALLOW THE SYSTEM TO 00329000
  431. * REVERT TO UNIPROCESSOR MODE. 00330000
  432. * 00331000
  433. * ENTRY CONDITIONS - 00332000
  434. * MCTTERM (AN INTERNAL INDICATOR) MAY CONTAIN 00333000
  435. * THE ADDRESS OF THE VIRTUAL MACHINE TO BE TERMINATED 00334000
  436. * MCTTERM WOULD HAVE BEEN SET BY DMKMCTPT OR DMKMCTMA 00335000
  437. * 00336000
  438. * EXIT CONDITIONS - 00337000
  439. * RETURN TO CALLER AFTER ATTACHED PROCESSOR REMOVED FROM 00338000
  440. * SYSTEM OPERATION 00339000
  441. * 00340000
  442. * REGISTER USAGE - 00341000
  443. * SEE MAIN PROLOGUE 00342000
  444. * 00343000
  445. * OPERATION - 00344000
  446. * 00345000
  447. * 1. DMKMCTPR WILL TEST FOR AN ACTIVE VARY PROCESSOR FUNCTION 00345300
  448. * (POFFLINE=1). IF ACTIVE, DMKMCTPR WILL ENTER A LOOP. 00345600
  449. * A CPEXBLOK WILL BE STACKED FOR THE CURRENT PROCESSOR TO 00345900
  450. * THE INSTRUCTION TO TEST THE POFFLINE BIT. DMKMCTPR WILL 00346200
  451. * EXIT FROM THE LOOP WHEN POFFLINE IS ZERO. IF AT THIS TIME 00346500
  452. * APUOPER IS STILL ONE, STEPS 2-6 WILL BE TAKEN. IF APUOPER 00346800
  453. * IS ZERO, AND MCTTERM IS NOT ZERO, THE VIRTUAL MACHINE 00347100
  454. * WILL BE TERMINATED AND DMKMCTPR WILL GO TO DMKDSPCH. 00347400
  455. * OTHERWISE, DMKMCTPR WILL GO TO DMKDSPCH. 00347700
  456. * 2. DMKMCTPR WILL ATTEMPT TO OBTAIN THE TEST-AND-SET 00348000
  457. * LOCK CPAPRINP IN ABSOLUTE PAGE ZERO. THIS LOCK 00348060
  458. * WILL PREVENT RECURSION IN AUTOMATIC PROCESSOR 00348120
  459. * RECOVERY. IF THE LOCK IS AVAILABLE, CONTINUE WITH 00348180
  460. * STEP 3. IF THE LOCK IS ALREADY HELD, DMKMCTPR WILL 00348240
  461. * CHECK TO SEE IF IT IS NOW RUNNING ON THE PROCESSOR 00348300
  462. * WHICH CAUSED THE ORIGINAL ENTRY TO APR. IF SO, THIS 00348360
  463. * PROCESSOR IS BEING TERMINATED -- DMKMCTPR WILL SIMPLY 00348420
  464. * LOAD A DISABLED WAIT ON THIS PROCESSOR. IF THE CURRENT 00348480
  465. * PROCESSOR IS THE RECOVERY PROCESSOR, THIS INVOCATION 00348540
  466. * OF DMKMCTPR WILL BE IGNORED -- EXIT WILL BE MADE TO 00348600
  467. * THE DISPATCHER. 00348660
  468. * 3. SEND MESSAGE 620I TO OPERATOR. 00348720
  469. * 4. CALL DMKCPPUP TO HANDLE SHARED SEGMENTS, SYNCHRONIZE 00348780
  470. * VMTTIME, UPDATE THE CLOCK COMPARATOR VALUE WITH THAT 00348900
  471. * VALUE IN THE TOP TRQE, FREE ALL AP RELATED CONTROL 00349200
  472. * BLOCKS AND STOP PREFIXING. 00349500
  473. * 5. LOOP THRU THE VMBLOKS TO RESET ANY AFFINITY SET FOR 00349800
  474. * THE ATTACHED PROCESSOR, ISSUE MSG TO USER, AND PUT 00350100
  475. * USER IN CONSOLE FUNCTION MODE. 00350400
  476. * 6. TERMINATE THE VIRTUAL MACHINE, IF ONE IS SPECIFIED 00350700
  477. * RESET THE CPU TIMER, RELEASE ALL LOCKS, AND GO TO 00350800
  478. * THE DISPATCHER. 00350900
  479. * 00358000
  480. * MESSAGES - 00359000
  481. * DMKMCT621I MACHINE CHECK; AFFINITY SET OFF. 00360000
  482. * DMKMCT620I MACHINE CHECK; ATTACHED PROCESSOR NOT BEING USED. 00361000
  483. * DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR NN. 00361500
  484. * 00362000
  485. * WAIT STATE CODES - 00363000
  486. * 016 - THE CHANNEL SET SWITCHING FACILITY HAS FAILED 00364000
  487. * 019 - THE PROCESSOR TERMINATION ROUTINE WAS 00364200
  488. * ENTERED ON THIS PROCESSOR WHILE THIS 00364400
  489. * PROCESSOR WAS BEING TERMINATED. 00364600
  490. * 00365000
  491. DMKMCTPR DS 0H PROCESSOR RECOVERY ROUTINE @V407510 00366000
  492. USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00367000
  493. L R12,MCTBASE GET COMMON BASE @V407510 00368100
  494. USING DMKMCT,R12 SET UP COMMON ADDRESSABILITY @V407510 00368110
  495. NI APSTAT4,OFF-CPAPRPND TURN OFF APR PENDING FLAG @V5BC0AB 00368120
  496. MVI EMSPEND,CLEAR CLEAR SIGNAL INDICATOR @V5CC0AB 00368130
  497. MVI XCPEND,CLEAR CLEAR SIGNAL INDICATOR @V5CC0AB 00368140
  498. TESTPOFF DS 0H @V5BC0AB 00369002
  499. TM APSTAT4,POFFLINE VARY PROC IN PROCESS? @V5BC0AB 00369006
  500. BZ TSTAPUOP NO, BRANCH @V5BC0AB 00369010
  501. LA R0,CPEXSIZE GET SIZE OF CPEXBLOK @V5BC0AB 00369014
  502. CALL DMKFREE OBTAIN STORAGE @V5BC0AB 00369018
  503. SPACE 00369022
  504. USING CPEXBLOK,R1 @V5BC0AB 00369026
  505. SPACE 00369030
  506. STM R0,R15,CPEXREGS SAVE REGISTERS @V5BC0AB 00369034
  507. LA R15,TESTPOFF ADDRESS OF RETURN POINT @V5BC0AB 00369038
  508. ST R15,CPEXADD SET UP RETURN POINT @V5BC0AB 00369042
  509. SPACE 00369046
  510. DROP R1 00369050
  511. SPACE 00369054
  512. CALL DMKSTKMP STACK BLOCK FOR THIS PROCESSOR @V5BC0AB 00369058
  513. GOTO DMKDSPCH GO TO THE DISPATCHER @V5BC0AB 00369062
  514. TSTAPUOP DS 0H @V5BC0AB 00369066
  515. TM APSTAT1,APUOPER IN AP MODE? @V5BC0AB 00369070
  516. BNO PREXIT NO, BRANCH @VMH0025 00369075
  517. L R2,PREFIXA SET UP FOR ACCESS OF ABS. ZERO @VA12934 00369082
  518. TS CPAPRINP-PSA(R2) TRY FOR 'APR IN PROCESS' LOCK @VA12934 00369282
  519. * THIS PREVENTS MCTPR RECURSION. 00369482
  520. BZ SAVFPROC CONTINUE -- LOCK OBTAINED @VA12934 00369682
  521. CLC MCTFPROC(2),LPUADDR THE LOCK WAS HELD -- CHECK @VA12934 00369882
  522. * TO SEE IF THIS ENTRY IS FOR SAME 00370082
  523. * PROCESSOR THAT FAILED LAST TIME 00370282
  524. BE MCTWT019 WE ARE RUNNING ON THE PROCESSOR @VA12934 00370482
  525. * FOR WHICH AUTOMATIC PROCESSOR 00370682
  526. * RECOVERY IS IN PROCESS. LOAD A 00370882
  527. * WAIT ON THIS PROCESSOR TO STOP 00371082
  528. * IT FROM RUNNING. 00371282
  529. GOTO DMKDSPCH WE ARE ALREADY PERFORMING @VA12934 00371482
  530. * AUTOMATIC PROCESSOR RECOVERY FOR 00371682
  531. * THE OTHER PROCESSOR. IGNORE THIS 00371882
  532. * ENTRY. 00372082
  533. SAVFPROC MVC MCTFPROC(2),LPUADDRX SAVE THE ADDRESS OF THE @VA12934 00372282
  534. * FAILING PROCESSOR 00372482
  535. TSSYSLOK DS 0H @VA12934 00372682
  536. L R2,=A(DMKLOKSY+LN2) GET ADDRESS OF LOCKWORD+2 @VA07316 00373100
  537. CLC LPUADDR,0(R2) SYSTEM LOCK ALREADY HELD? @V4M0199 00374000
  538. BE PRCLEAR YES, SKIP LOCK OBTAIN @V4M0199 00375000
  539. LOCK OBTAIN,TYPE=SYS,SPIN=NO @V4M0199 00376000
  540. BNZ MCTABEND LOCK NOT OBTAINED, ABEND @V4M0199 00377000
  541. PRCLEAR DS 0H @V4M0199 00378000
  542. SCNDSPRQ LOCK OBTAIN,TYPE=DS,SPIN=NO OBTAIN LOCK ON DSP QUEUES@VA12934 00382000
  543. BNZ MCTWT019 OTHER PROCESSOR HAS CONTINUED @VA12934 00382010
  544. * TO RUN AND NOW HOLDS A LOCK. 00382020
  545. * LOAD A WAIT STATE -- TO CONTINUE 00382030
  546. * MIGHT JEOPARDIZE SYSTEM INTEGRITY 00382040
  547. L R15,MCTDSPRQ ADDRESS OF DISPATCHER'S QUEUES @VA12934 00382050
  548. C R15,CPEXFPNT-CPEXBLOK(,R15) IS CPEXBLOK QUEUE @VA12934 00382060
  549. * EMPTY? 00382070
  550. BE TESTIO YES -- ALL DONE @VA12934 00382080
  551. LR R1,R15 ADDRESS OF CPEXBLOK TO REG 1 @VA12934 00382090
  552. USING CPEXBLOK,R1 ADDRESSABILITY TO CPEXBLOK @VA12934 00382100
  553. NXTCPXBK DS 0H @VA12934 00382110
  554. L R1,CPEXFPNT ADDRESS OF NEXT CPEXBLOK ON Q. @VA12934 00382120
  555. CR R1,R15 AT END OF QUEUE? @VA12934 00382130
  556. BE TESTIO YES -- ALL DONE @VA12934 00382140
  557. MVC CPEXPROC,LPUADDR MAKE THIS CPEXBLOK FOR THIS @VA12934 00382150
  558. * PROCESSOR 00382160
  559. B NXTCPXBK DO NEXT CPEXBLOK @VA12934 00382170
  560. DROP R1 00382180
  561. TESTIO DS 0H @VA12934 00382190
  562. LOCK RELEASE,TYPE=DS @VA12934 00382200
  563. TM APSTAT1,PROCIO IS THIS THE I/O PROCESSOR? @VA12934 00382210
  564. BO SEND620I YES -- NO NEED TO SWITCH CHANNELS@VA12934 00382220
  565. LH R1,CSADDR GET CHANNEL SET ADDRESS @VA12934 00382230
  566. * DISCS 0(R1) DISCONNECT FROM MAIN PROCESSOR @VA12934 00382240
  567. DC X'B2011000' ACTUAL DISCONNECT INSTRUCTION @VA12934 00382250
  568. BNZ WAIT016 DISC. CHANNEL SET WAS NOT @VA12934 00382260
  569. * SUCCESSFUL -- LOAD DISABLED WAIT 00382270
  570. CONNECT DS 0H @VA12934 00382280
  571. * CONCS 0(R1) CONNECT THE CHANNEL SET @VA12934 00382290
  572. DC X'B2001000' ACTUAL CONNECT INSTRUCTION @VA12934 00382300
  573. BNZ WAIT016 THE CONNECT CHANNEL SET FAILED --@VA12934 00382310
  574. * LOAD A DISABLED WAIT -- NO I/O 00382320
  575. * CAPABILITY 00382330
  576. OI APSTAT1,PROCIO INDICATE THIS IS THE I/O PROC. @VA12934 00382340
  577. L R15,PREFIXB ADDRESS OF OTHER PROC'S PSA @VA12934 00382350
  578. NI APSTAT1-PSA(R15),X'FF'-PROCIO OTHER PROC DOES @VA12934 00382360
  579. * NOT HAVE I/O CAPABILITY 00382370
  580. LCTL C2,C2,FFS ENABLE FOR I/O INTERRUPTS @VA12934 00382380
  581. L R2,MCTDMPMA ADDRESS OF DMKDMPMA VALUE @VA12934 00382390
  582. MVC 0(2,R2),IPUADDR THIS PROC IS NOW PROCIO @VA12934 00382400
  583. L R2,MCTDMPAA ADDRESS OF DMKDMPMA VALUE @VA12934 00382410
  584. MVC 0(2,R2),IPUADDRX OTHER PROC IS NON-PROCIO @VA12934 00382420
  585. L R2,MCTDMPSA ADDRESS OF DMP'S PSA ADDRESSES @VA12934 00382430
  586. LM R6,R7,PREFIXA LOAD PSA ADDRESSES @VA12934 00382440
  587. STM R6,R7,0(R2) STORE PROCIO'S PSA @ FIRST @VA12934 00382450
  588. LH R1,IPUADDR GET PROCESSOR ADDRESS @VA12934 00382460
  589. CALL DMKCVTBH CONVERT TO PRINTABLE FORM @VA12934 00382470
  590. STCM R1,B'0011',MCTID623 MOVE IN PROC. ADDRESS @VA12934 00382480
  591. LA R0,MCT623LN GET LENGTH OF MESSAGE @VA12934 00382490
  592. LA R1,MCT623MG GET ADDRESS OF MESSAGE TEXT @VA12934 00382500
  593. CALL DMKQCNWT,PARM=NORET+OPERATOR @VA12934 00382510
  594. SEND620I MVI MSGBUF,BLANK BLANK OUT BUFFER @VA12934 00382520
  595. MVC MSGBUF+ONE(L'MSGBUF-1),MSGBUF CLEAR BUFFER @V407510 00383000
  596. MVC MSGCDE(LN3),MSG9 SETUP MESSAGE ID IN BUFFER @VA07837 00384100
  597. MVC MSGBUF(MSG9L),MSG9B MOVE MESSAGE INTO BUFFER @V407510 00385000
  598. LA R0,MCMSGL GET LENGTH OF MESSAGE @V407510 00386000
  599. LA R1,MCTMSG GET ADDRESS OF BUFFER @V407510 00387000
  600. CALL DMKQCNWT,PARM=OPERATOR+NORET @V407510 00388000
  601. CALLCPP CALL DMKCPPUP GO TAKE CARE OF AP DEPENDENCIES @VA12934 00388010
  602. PREXIT DS 0H @V407510 00445000
  603. OC MCTTERM,MCTTERM VIRT. MACH. TO BE TERMINATED @VA08235 00457010
  604. BZ NOTERM NO - NO MACHINE TO TERMINATE @VA08235 00457020
  605. CHARGE SWITCH,MCTTERM START CHARGING USER @VA08235 00457030
  606. BAL R6,VIRTERM TERMINATE VIRTUAL USER @VA08235 00457040
  607. CHARGE STOP STOP CHARGING @VA08235 00457050
  608. CHARGE START RESET CPU TIMER @VA07837 00457100
  609. NOTERM EQU * @VMH0025 00457102
  610. TM MCTFLAG,MCTFS WAS MCT ENTERED AT MCTFS ENTRY? @VA12934 00457105
  611. BO AFFCHECK YES -- LOCKWORDS HAVE ALREADY @VA12934 00457106
  612. * BEEN SET TO LOOK AS IF THEY 00457107
  613. * ARE OWNED BY THE RECOVERY PROC. 00457108
  614. SR R0,R0 CLEAR REGISTER 0 @VA12934 00457109
  615. L R2,=A(DMKLOKDS) GET ADDR OF DSP QUEUES LOCK @V5BC0AB 00457110
  616. ST R0,0(,R2) FREE THE DSP QUEUES LOCK @VMH0022 00457116
  617. L R2,=A(DMKLOKTR) GET ADDR OF TRQ LOCKS @V5BC0AB 00457120
  618. ST R0,0(,R2) FREE THE TRQ LOCK @VMH0022 00457126
  619. L R2,=A(DMKLOKRL) GET ADDR OT RUN LIST LOCK @V5BC0AB 00457130
  620. ST R0,0(,R2) FREE THE RUN LIST LOCK @VMH0022 00457136
  621. L R2,=A(DMKLOKFR) GET ADDR OF FREE STORAGE LOCK @V5BC0AB 00457140
  622. ST R0,0(,R2) FREE THE FREE STORAGE LOCK @VMH0022 00457146
  623. B AFFCHECK GO CHECK FOR USERS WITH AFFINITY @VMH0033 00458100
  624. * TO THE FAILING PROCESSOR 00458200
  625. MCTABEND DS 0H @V4M0199 00459000
  626. ABEND 001 MCT001 ABEND @V4M0199 00460000
  627. WAIT016 MVC WAITCODE(4),CSSWAIT SET UP WAIT CODE 16 @VA12934 00460020
  628. B MFAWAIT GO LOAD DISABLED WAIT PSW @VA12934 00460023
  629. MCTWT019 DS 0H @VA12934 00460026
  630. LPSW DISABPSW THIS PROCESSOR IS BEING @VA12934 00460029
  631. * TERMINATED -- STOP IT FROM RUNNING 00460032
  632. EJECT 00460035
  633. DMKMCTAF DS 0H @VMH0033 00460040
  634. SPACE 00460060
  635. USING *,R12 @VMH0033 00460080
  636. SPACE 00460100
  637. L R12,MCTBASE @VMH0033 00460120
  638. SPACE 00460140
  639. USING DMKMCT,R12 @VMH0033 00460160
  640. SPACE 00460180
  641. AFFCHECK DS 0H @VMH0033 00460200
  642. L R11,ASYSVM GET SYSTEM VMBLOK ADDRESS @VMH0033 00460220
  643. L R11,VMPNT GET FIRST VMBLOK IN CYCLIC CHAIN @VMH0033 00460240
  644. LR R10,R11 SAVE ENDING ADDRESS @VMH0033 00460260
  645. AFFMSGCF DS 0H @VMH0033 00460280
  646. TM VMAFF,VMAFFON AFFINITY SET? @VMH0033 00460300
  647. BZ NOAFFMSG NO, BRANCH @VMH0033 00460320
  648. TM VMOSTAT,VMKILL USER TO BE LOGGED OFF? @VMH0033 00460340
  649. BO NOAFFMSG YES, BRANCH @VMH0033 00460360
  650. TM VMRSTAT,VMLOGON+VMLOGOFF @VMH0033 00460380
  651. BNZ NOAFFMSG BRANCH IF EITHER IS ON @VMH0033 00460400
  652. SR R1,R1 CLEAR REGISTER 1 @VMH0033 00460420
  653. IC R1,VMAFF GET AFFINITY BYTE @VMH0033 00460440
  654. N R1,=A(X'3F') LEAVE ONLY PROCESSOR ADDRESS @VMH0033 00460460
  655. CH R1,IPUADDR AFFINITY TO THIS PROCESSOR? @VMH0033 00460480
  656. BE NOAFFMSG YES, BRANCH @VMH0033 00460500
  657. MVC VMAFF(1),ZEROES CLEAR AFFINITY BYTE @VMH0033 00460520
  658. LA R0,MCTAFFLN GET LENGTH OF MESSAGE @VMH0033 00460540
  659. LA R1,MCTAFFMG GET ADDRESS OF MESSAGE @VMH0033 00460560
  660. CALL DMKQCNWT,PARM=PRIORITY SEND MESSAGE IMMEDIATELY @VMH0033 00460580
  661. CALL DMKCFMBK PUT IN CONSOLE FUNCTION MODE @VMH0033 00460600
  662. NOAFFMSG DS 0H @VMH0033 00460620
  663. L R11,VMPNT GET ADDRESS OF NEXT VMBLOK @VMH0033 00460640
  664. CLR R11,R10 END OF CHAIN? @VMH0033 00460660
  665. BNE AFFMSGCF NO, BRANCH @VMH0033 00460680
  666. MVI CPAPRINP,X'00' RESET APR RECURSION LOCK @VA12934 00460685
  667. NI MCTFLAG,X'FF'-MCTFS RESET ENTRY POINT INDICATOR @VA12934 00460690
  668. MVC MCTFPROC(2),ZEROES CLEAR FAILING PROC ADDRESS @VA12934 00460695
  669. GOTO DMKDSPCH GO TO THE DISPATCHER @VMH0033 00460700
  670. EJECT 00461000
  671. SPACE 00462000
  672. ***************************************************************@V407510 00463000
  673. * VIRTUAL MACHINE TERMINATION ROUTINE @V407510 00464000
  674. ***************************************************************@V407510 00465000
  675. SPACE 00466000
  676. VIRTERM DS 0H @V407510 00467000
  677. MVC MSGCDE(LN3),MSG1 SETUP MESSAGE ID IN BUFFER @VA07837 00468100
  678. MVC MSGBUF(MSG1L),MSG1B MOVE MESSAGE INTO BUFFER @V407510 00469000
  679. LA R0,MCMSGL GET LENGTH OF MESSAGE @V407510 00470000
  680. LA R1,MCTMSG GET THE ADDRESS OF THE MESSAGE @V407510 00471000
  681. CALL DMKQCNWT,PARM=NORET @V407510 00472000
  682. MVC MSGCDE(LN3),MSG8 SETUP THE MESSAGE ID @V407510 00473000
  683. MVC MSG8ID(LN8),VMUSER MOVE THE USERID INTO BUFFER @V407510 00474000
  684. MVC MSGBUF(MSG8L),MSG8A MOVE MESSAGE INTO BUFFER @V407510 00475000
  685. LA R0,MCMSGL GET LENGTH OF MESSAGE TEXTS @V407510 00476000
  686. LA R1,MCTMSG GET THE MESSAGE BUFFER ADDRESS @V407510 00477000
  687. CALL DMKQCNWT,PARM=OPERATOR+ALARM @V407510 00478000
  688. C R11,AVMREAL IS THIS THE V=R USER? @V4M0132 00479000
  689. BNE RESET NO, RESET VIRTUAL USER @V407510 00480000
  690. OI VMOSTAT,VMKILL DMKDSPCH WILL LOGOFF USER @V407510 00481000
  691. OI VMSVSTAT,VMLGFORC INDICATE USER WAS FORCED OFF @VA13026 00481500
  692. BR R6 RETURN TO CALLER @V407510 00482000
  693. SPACE 00483000
  694. RESET DS 0H @V407510 00484000
  695. CALL DMKCFPRR RESET THE VIRTUAL USER SYSTEM @V407510 00485000
  696. SR R2,R2 IND CLEAR OPTION @V407510 00486000
  697. CALL DMKPGSPO RELEASE USERS VIRTUAL STORAGE @V407510 00487000
  698. NI VMRSTAT,OFF-VMEXWAIT MARK USER DISPATCHABLE @V407510 00488000
  699. CALL DMKCFMBK PUT USER IN CONSOLE FUNCTION MODE @V407510 00489000
  700. BR R6 RETURN TO CALLER @V407510 00490000
  701. EJECT 00491000
  702. * SUBROUTINE NAME - 00492000
  703. * DMKMCTST 00493000
  704. * FUNCTION - 00494000
  705. * THE FUNCTION OF THIS ENTRY POINT IS TO TERMINATE THE SYSTEM 00495000
  706. * ATTACHED PROCESSOR MODE 00496000
  707. * 00497000
  708. * ENTRY CONDITIONS - 00498000
  709. * R0 - LENGTH OF MESSAGE TO BE ISSUED 00499000
  710. * R1 - ADDRESS OF MESSAGE TEXT 00500000
  711. * R2 - WAIT STATE CODE TO BE LOADED 00501000
  712. * 00502000
  713. * EXIT CONDITIONS - 00503000
  714. * DISABLED WAIT STATE LOADED 00504000
  715. * 00505000
  716. * REGISTER USAGE - 00506000
  717. * SEE MAIN PROLOGUE 00507000
  718. * 00508000
  719. * OPERATION - 00509000
  720. * 1. GET ON MAIN PROCESSOR 00510000
  721. * 2. CALL DMKOPRWT TO ISSUE MESSAGE 00511000
  722. * 3. LOAD DISABLED WAIT STATE 00512000
  723. * 00513000
  724. SPACE 2 00514000
  725. DMKMCTST DS 0H SYSTEM TERMINATION ROUTINE @V407510 00515000
  726. USING *,R12 TEMPORARY ADDRESSABILITY @V407510 00516000
  727. L R12,MCTBASE GET COMMON BASE REG @V407510 00517000
  728. USING DMKMCT,R12 COMMON ADDRESSABILITY @V407510 00518000
  729. ST R2,WAITCODE SET UP APPROPRIATE WAIT STATE @V407510 00519000
  730. BAL R6,SWTCH GET ON MAIN PROCESSOR @V407510 00520000
  731. B CALLOPR BRANCH TO ISSUE MSG @V407510 00521000
  732. *********************************************************************** 00522000
  733. * OPERATOR COMMUNICATION ROUTINE 00523000
  734. *********************************************************************** 00524000
  735. SPACE 00525000
  736. OPCOM DS 0H 00526000
  737. L R2,0(0,R3) PICK UP MESSAGE NUMBER AND LEN @V407510 00527000
  738. STCM R2,B'1110',MSGCDE PUT CODE INTO THE MSG HDR @V407510 00528000
  739. N R2,F255 SAVE ONLY THE MESSAGE LENGTH @V407510 00529000
  740. S R2,F3 SUBTRACT 3 FROM LENGTH @V4M0217 00530000
  741. * 2 FOR CONTROL, 1 FOR EXECUTE @V4M0217 00531000
  742. MVI MSGBUF,BLANK BLANK OUT BUFFER @VA12934 00531300
  743. MVC MSGBUF+ONE(L'MSGBUF-1),MSGBUF CLEAR BUFFER @V407510 00531600
  744. EX R2,EMSGMVC MOVE THE MESSAGE TEXT TO 'MSGBUF'@V407510 00532000
  745. LA R0,MCMSGL SET UP LENGTH OF MESSAGE @V407510 00533000
  746. LA R1,MCTMSG START OF THE MESSAGE DATA @V407510 00534000
  747. CALLOPR DS 0H @V407510 00535000
  748. CALL DMKOPRWT,PARM=ALARM EMERGENCY WRITE TO OPER @V407510 00536000
  749. SPACE 00537000
  750. SPACE 00538000
  751. MFAWAIT DS 0H PUT SYSTEM IN WAIT STATE @V407510 00539000
  752. L R2,PREFIXA GET OWN PREFIX REG @V407510 00540000
  753. CLC CPID-PSA(,R2),WARM IS WARM INDICATED IN ID @V4M0144 00541000
  754. BNE MFAWAIT1 NO, DO NOT CHANGE ID @V407510 00542000
  755. MVC CPID-PSA(,R2),CPCP MOVE ID IN FOR CHECKPOINT @V4M0144 00543000
  756. MFAWAIT1 DS 0H @V407510 00544000
  757. LPSW WAITMCT ENTER DISABLED WAIT STATE @V407510 00545000
  758. EMSGMVC MVC MSGBUF(*-*),LN4(R3) MOVE MSG TO BUFFER @V407510 00546000
  759. EJECT 00547000
  760. * EQUATES @V407510 00548000
  761. SPACE 00549000
  762. ONE EQU 1 DISPLACEMENT OF 1 @V407510 00550000
  763. ZONE EQU X'F0' ZONE USED FOR CONVERSION @V407510 00551000
  764. LN2 EQU 2 LENGTH OF 2 @V407510 00552000
  765. LN3 EQU 3 LENGTH OF 3 @V407510 00553000
  766. LN4 EQU 4 LENGTH OF 4 @V407510 00554000
  767. LN8 EQU 8 LENGTH OF 8 @V407510 00555000
  768. CLEAR EQU X'00' SET FIELD TO ZERO @V407510 00556000
  769. OFF EQU X'FF' MASK TO TURN BIT OFF @V407510 00557000
  770. BLANK EQU X'40' BLANK CHARACTER @V407510 00558000
  771. FORCE EQU X'02' FORCED LOGOFF BY SYSTEM @VA08667 00558200
  772. SPACE 00559000
  773. * DEFINE STORAGE CONSTANTS @V407510 00560000
  774. WARM DC CL4'WARM' CPID VALUE OF WARM @V407510 00561000
  775. CPCP DC CL4'CPCP' CPID VALUE OF CPCP @V407510 00562000
  776. DS 0F FULL WORD ALIGNMENT @V4M0144 00563000
  777. HIGHBIT DC X'80000000' MASK TO TURN ON HIGH BIT @V4M0144 00564000
  778. WORK DC D'0' WORK AREA FOR CONVERSION @V407510 00565000
  779. WORKLO EQU WORK+6 SIGNIFICANT DIGITS AFTER UNPK @V407510 00566000
  780. RSRTMAIN DS 0D RESTART PSW FOR MAIN PROCESSOR @V407510 00567000
  781. DC X'00080000' DO NOT ALLOW MACHINE CHECKS @V407510 00568000
  782. DC A(MAINRSRT) RESTART AT MAINRSRT @V407510 00569000
  783. WAITMCT DS 0D 013 WAIT STATE PSW @V407510 00570000
  784. DC X'0002',X'0000' @V407510 00571000
  785. WAITCODE DC X'00000013' WAIT STATE CODE @V407510 00572000
  786. * FOR ATTACHED PROCESSOR @V407510 00573000
  787. MAINCODE DC X'00000001' WAIT STATE FOR MAIN PROCESSOR @V407510 00574000
  788. CSSWAIT DC X'00000016' CHANNEL SET SWITCH FAILURE @VA12934 00575000
  789. DISABPSW DS 0D DISABLED WAIT PSW @VA12934 00575070
  790. DC X'00020000',X'00000019' @VA12934 00575140
  791. DMKMCTPF DC F'0' ADDRESS OF PSA PAGE OF TERMINATED@VA12934 00575210
  792. * PROCESSOR 00575280
  793. DMKMCTVM DC F'0' TERMINATE VIRTUAL USER ADDRESS @VA12934 00575350
  794. MCTTERM EQU DMKMCTVM INTERNAL LABEL TO REFERENCE @VA12934 00575420
  795. * ADDRESS OF USER TO BE TERMINATED 00575490
  796. MCTFPROC DC H'0' ADDRESS OF FAILING (UNRESPONSIVE)@VA12934 00575560
  797. * PROCESSOR 00575630
  798. DMKMCTFL DC X'00' DMKMCT FLAGS @VA12934 00575700
  799. MCTFLAG EQU DMKMCTFL INTERNAL LABEL TO REFERENCE FLAGS@VA12934 00575770
  800. MCTFS EQU X'80' FLAG TO INDICATE THAT DMKMCT WAS @VA12934 00575840
  801. * ENTERED AT DMKMCTFS ENTRY POINT @VA12934 00575910
  802. MCTBASE DC A(DMKMCT) COMMON BASE VALUE @V407510 00576000
  803. MCTDMPMA DC A(DMKDMPMA) PROC. ADDRESS OF PROCIO @VA12934 00576200
  804. MCTDMPAA DC A(DMKDMPAA) PROC. ADDRESS OF NON-PROCIO @VA12934 00576400
  805. MCTDMPSA DC A(DMKDMPSA) DMP'S POINTER TO PSA ADDRESSES @VA12934 00576600
  806. MCTDSPRQ DC A(DMKDSPRQ) ADDRESS OF DISPATCHER'S QUEUES @VA12934 00576800
  807. EJECT 00577000
  808. ********************************************************************** 00578000
  809. SPACE 00579000
  810. SPACE 00580000
  811. SPACE 00581000
  812. SPACE 00582000
  813. MCTMSG DC X'151515' @V407510 00583000
  814. MCTID DC C'DMKMCT6' @V407510 00584000
  815. MSGCDE DC C'10W ' @V4M0217 00585000
  816. DC C'MACHINE CHECK' @V407510 00586000
  817. MSGBUF DC CL35' ' @V4M0217 00587000
  818. MSGPROC DC CL2' ' PROCESSOR ADDRESS @V407510 00588000
  819. DC XL2'1515' CONTROL CHARACTERS @V4M0217 00589000
  820. MCMSGL EQU *-MCTMSG LENGTH OF MESSAGE @V407510 00590000
  821. MSG1 DC C'19I' @V407510 00591000
  822. MSG1A DC X'17' @V407510 00592000
  823. MSG1B DC C'; OPERATION TERMINATED' @V407510 00593000
  824. MSG1L EQU *-MSG1B @V407510 00594000
  825. MSG2 DC C'10W' @V4M0217 00595000
  826. MSG2A DC X'15' @V407510 00596000
  827. MSG2B DC C'; SUPERVISOR DAMAGE',X'1515' @V407510 00597000
  828. MSG2L EQU *-MSG2B @V407510 00598000
  829. MSG3 DC C'11W' @V4M0217 00599000
  830. MSG3A DC X'19' @V407510 00600000
  831. MSG3B DC C'; SYSTEM INTEGRITY LOST',X'1515' @V407510 00601000
  832. MSG3L EQU *-MSG3B @V407510 00602000
  833. MSG4 DC C'12W' @V407510 00603000
  834. MSG4A DC X'1C' @V407510 00604000
  835. MSG4B DC C'; TIMING FACILITIES DAMAGE',X'1515' @V407510 00605000
  836. MSG4L EQU *-MSG4B @V407510 00606000
  837. MSG8 DC C'16I' @V407510 00607000
  838. MSG8A DC C'; USER ' @V407510 00608000
  839. MSG8ID DC CL8'XXXXXXXX' @V407510 00609000
  840. DC C' TERMINATED',X'1515' @V407510 00610000
  841. MSG8L EQU *-MSG8A @V407510 00611000
  842. MSG9 DC C'20I' @V407510 00612000
  843. MSG9A DC X'23' @V407510 00613000
  844. MSG9B DC C'; ATTACHED PROCESSOR NOT BEING USED' @V407510 00614000
  845. MSG9L EQU *-MSG9B @V407510 00615000
  846. MCTAFFMG DC X'151515' @VMH0033 00616100
  847. DC C'DMKMCT621I AFFINITY SET OFF' @VMH0033 00616200
  848. DC X'1515' @VMH0033 00616300
  849. MCTAFFLN EQU *-MCTAFFMG @VMH0033 00616400
  850. MCT623MG DC X'151515' @VA12934 00620000
  851. DC C'DMKMCT623I CHANNEL SET CONNECTED TO PROCESSOR ' @VA12934 00620200
  852. MCTID623 DC C' ' @VA12934 00620400
  853. DC X'1515' @VA12934 00620600
  854. MCT623LN EQU *-MCT623MG @VA12934 00620800
  855. ********************************************************************** 00621000
  856. EJECT 00622000
  857. LTORG 00623000
  858. EJECT 00624000
  859. COPY VMBLOK @V407510 00625000
  860. COPY SAVE @V4M0175 00626000
  861. PSA @V407510 00627000
  862. COPY EQU @V407510 00628000
  863. COPY MCHAREA @V407510 00629000
  864. COPY TIMER @V407510 00630000
  865. END 00631000