Table of Contents

MSSCOM Source

References

Source Listing

MSSCOM.COPY.txt
  1. *COPY MSSCOM 00001000
  2. *%GOTO MSSCOM1; /* MAPPING MACRO 00002000
  3. MACRO 00003000
  4. &NAME MSSCOM 00004000
  5. PUSH PRINT 00005000
  6. AIF ('&SYSPARM' NE 'SUP').MSSCM1 00006000
  7. PRINT OFF,NOGEN 00007000
  8. .MSSCM1 ANOP 00008000
  9. **/ 00009000
  10. *% MSSCOM1:; 00010000
  11. */* ***************************************************************** 00011000
  12. ** 00012000
  13. ** 00013000
  14. ** THE MSSCOM MACRO IS USED TO MAP A CONTROL BLOCK 00014000
  15. ** FOR COMMUNICATION BETWEEN THE CONTROL PROGRAM 00015000
  16. ** COMPONENT OF VM/370 AND AN OS/VS SYSTEM RUNNING 00016000
  17. ** IN A VIRTUAL MACHINE. 00017000
  18. ** 00018000
  19. ** THE CONTROL BLOCK CONTAINS TWO TYPES OF DATA: 00019000
  20. ** 1. DATA THAT IS CONSTRUCTED BY VM/370 00020000
  21. ** AND PASSED TO OS/VS TO REQUEST AN 00021000
  22. ** MSS OPERATION. 00022000
  23. ** 2. DATA THAT IS SAVED BY VM/370 WHILE 00023000
  24. ** AN MSS OPERATION IS IN PROCESS SO 00024000
  25. ** THAT, WHEN THE OPERATION IS COMPLETE, 00025000
  26. ** THE CORRECT VM/370 USER CAN BE 00026000
  27. ** DISPATCHED. 00027000
  28. ** 00028000
  29. ************** MSS COMMUNICATION CONTROL BLOCK 00029000
  30. ** 00030000
  31. ** 00 +---------------------------------+-----------+ 00031000
  32. ** | MSSSER | MSSVUA | 00032000
  33. ** 08 +----------------------+----------+-----------+ 00033000
  34. ** | MSSTASKD | MSSTASK1 | 00034000
  35. ** 10 +----------------------+----------------------+ 00035000
  36. ** | MSSTASK2 | MSSTASK3 | 00036000
  37. ** 18 +----------------------+----------------------+ 00037000
  38. ** | MSSNEXT | MSSUSER | 00038000
  39. ** 20 +----------------------+-----+----+-----------+ 00039000
  40. ** | MSSUSER | M*1 | M*2| MSSRC | 00039110
  41. ** +----------------------+-----+----+-----------+ 00039190
  42. ** 00043000
  43. ** 00044000
  44. ********************************************************************/ 00045000
  45. *%GOTO MSSCOM2; /* 00046000
  46. &NAME DSECT MAP VM/370 TO OS/VS COMMUNICATIONS AREA 00047000
  47. MSSSER DS CL6 3330V VOLUME SERIAL NUMBER 00048000
  48. MSSVUA DS XL2 VIRTUAL UNIT ADDRESS FOR THE VOLUME 00049000
  49. MSSTASKD DS F ADDRESS OF CPEXBLOK USED FOR @VA09302 00050000
  50. * DUPLICATE 00050100
  51. * MOUNT REQUESTS 00050200
  52. MSSTASK1 DS F ADDRESS OF VM'S CPEXBLOK REPRESENTING 00051000
  53. * A TASK WAITING FOR A MOUNT 00052000
  54. MSSTASK2 DS F POINTER TO CPEXBLOK REPRESENTING A 00053000
  55. * CP TASK WAITING FOR MSC COMMUNICATION 00054000
  56. MSSTASK3 DS F POINTER TO A CPEXBLOK FOR A CP TASK 00055000
  57. * WAITING FOR I/O TO A 3330V BEING MOUNTED 00056000
  58. MSSNEXT DS F POINTER TO NEXT COMMUNICATION AREA, 00057000
  59. * OR ZERO IF THIS IS THE LAST 00058000
  60. MSSUSER DS CL8 NAME OF THE VIRTUAL MACHINE INITIATING 00059000
  61. * THIS REQUEST 00060000
  62. MSSFLAG1 DS XL1 M*1 BINARY FLAGS DESCRIBING THE @VA09302 00061000
  63. * SPECIFIC 00061100
  64. * TYPE OF REQUEST 00062000
  65. MSSFLAG2 DS XL1 M*2 BINARY FLAG INDICATING THE @VA09302 00062100
  66. * CURRENT STATUS 00062200
  67. * OF AN MSS REQUEST 00062300
  68. MSSRC DS 1H REASON CODE @VA11320 00063100
  69. SPACE 00064000
  70. MSSSIZE EQU (*-MSSSER)/8 MSSCOM SIZE IN DOUBLE WORDS 00065000
  71. SPACE 00066000
  72. * 00067000
  73. * THE FOLLOWING ARE POSSIBLE SETTINGS FOR THE MSSFLAG1 FIELD 00068000
  74. * 00069000
  75. MOUNT EQU X'80' MOUNT THE 3330V SPECIFIED BY 'SERIAL' 00070000
  76. * ON THE DEVICE 'VUA' 00071000
  77. * 00072000
  78. DEMOUNT EQU X'20' DEMOUNT THE 3330V SPECIFIED BY 'SERIAL' 00073000
  79. * WHICH IS ON DEVICE 'VUA' 00074000
  80. * 00075000
  81. RELINQSH EQU X'10' MOUNTED BY VM/370 CP 00075300
  82. * 00075600
  83. INUSE EQU X'08' THIS VSCOM CONTROL BLOCK IS IN USE; 00076000
  84. * THAT IS, IT REPRESENTS A REQUEST 00077000
  85. * CURRENTLY BEING PROCESSED BY OS/VS 00078000
  86. * 00079000
  87. MSSERR EQU X'04' THIS REQUEST HAS BEEN PROCESSED BY THE 00080000
  88. * MSC, BUT AN ERROR WAS INDICATED - 00081000
  89. * NO FURTHER MSS ACTION WILL OCCUR 00082000
  90. MSSSAVE EQU X'01' SAVE AREA IS NOT TO BE RETURNED @VA10862 00082010
  91. * 00082025
  92. * THE FOLLOWING ARE POSSIBLE SETTINGS FOR THE MSSFLAG2 FIELD 00082050
  93. * 00082075
  94. MSGPROC EQU X'10' WHEN THE 'MOUNT PROCEEDING' @VA09302 00082100
  95. * MSG. IS ISSUED 00082125
  96. * THIS FLAG IS SET TO PREVENT ANY OTHER 00082150
  97. * TASK FROM GETTING CONTROL BEFORE THE 00082175
  98. * MODULE REQUESTING A MOUNT IS INFORMED 00082200
  99. * THE MSS HAS ACKNOWLEDGED ITS REQUEST 00082225
  100. INPROC EQU X'20' WHEN THIS BIT IS SET, IT @VA09302 00082250
  101. * INDICATES THAT THE 00082275
  102. * MSS HAS ACCEPTED A REQUEST FOR A MOUNT OR 00082300
  103. * DEMOUNT AND IS IN THE PROCESS OF COMPLETE 00082325
  104. * THAT REQUEST. 00082350
  105. MQENT EQU X'40' INDICATES THAT THIS IS A Q @VA09302 00082375
  106. * ENTRY WAITING FOR 00082400
  107. * A RESPONSE FROM THE APPLICATION PROGRAM 00082425
  108. * DMKMSS RUNNING IN THE VIRTUAL VS MACH. 00082450
  109. RQENT EQU X'80' INDICATES THAT THIS IS A @VA09302 00082475
  110. * REQUEST WAITING 00082500
  111. * FOR MOUNT TO BE STARTED. THAT IS; THIS 00082525
  112. * IS A VALID REQUEST 00082550
  113. POP PRINT 00083000
  114. MEND */ 00084000
  115. * 00085000
  116. * /***********************************************************/ 00086000
  117. * /* PLS2 VERSION OF THE MSSCOM MAPPING MACRO */ 00087000
  118. * /***********************************************************/ 00088000
  119. *% MSSCOM2:; 00089000
  120. * DECLARE 00090000
  121. * 1 OSMSCOMM BASED(COMMPTR) BDY(WORD), 00091000
  122. * 2 MSSSER CHAR (6), /*3330 VOL SERIAL NO. */ 00092000
  123. * 2 MSSVUA CHAR(2), /*VIRTUAL UNIT ADDRESSS FOR VOL */ 00093000
  124. * 2 MSSTASKD CHAR(4), /*ADDR. CPEXBLOK FOR DUPLICATE REQ*/ 00094000
  125. * 2 MSSTASK1 FIXED(32), /*ADDR. CPEXBLOK WAITING FOR MOUNT*/ 00095000
  126. * 2 MSSTASK2 FIXED(32), /*ADDR. CPEXBLOK WAITING FOR MSC */ 00096000
  127. * 2 MSSTASK3 FIXED(32), /*ADDR. CPEXBLOK WAIT I/O TO 3330V*/ 00097000
  128. * 2 MSSNEXT FIXED(32), /*PTR. TO NEXT COMMUNICATION AREA */ 00098000
  129. * 2 MSSUSER CHAR(8), /*NAME OF VIRTUAL MACH. WITH REQST*/ 00099000
  130. * 2 MSSFLAG1 CHAR(1), /*FLAGS REPRESENTING REQUEST TYPE */ 00100000
  131. * 3 MOUNT BIT(1), /*MOUNT THE 3330V 'SERIAL' ON VUA */ 00101000
  132. * 3 * BIT(1), 00102000
  133. * 3 DEMOUNT BIT(1),/*DEMOUNT VOL 'SERIAL' ON VUA */ 00103000
  134. * 3 RELINQSH BIT(1),/*RELINQUISH VOL 'SERIAL' ON VUA */ 00104000
  135. * 3 INUSE BIT(1), /*MSSCOM CONTROL BLOCK IN USE */ 00105000
  136. * 3 MSSERR BIT(1), /*MSS ERROR HAS OCCURED */ 00106000
  137. * 3 * BIT(2), 00107000
  138. * 2 MSSFLAG2 CHAR(1), /*FLAGS INDICATING MSS STATUS */ 00107100
  139. * 3 RQENT BIT(1), /*REQUEST WAITING FOR MOUNT|DEMOUNT*/ 00107200
  140. * 3 MQENT BIT(1), /*REQUEST WAITING FOR DMKMSS */ 00107300
  141. * 3 INPROC BIT(1), /*MSS MOUNT IN PROCESS THIS BLOK */ 00107400
  142. * 3 MSGPROC BIT(1),/*MOUNT MSG. WRITTEN.WAIT COMPLETE*/ 00107500
  143. * 3 * BIT(4), 00107610
  144. * 2 MSSRC FIXED(15);/*REASON CODE */ 00107620