*COPY MSSCOM 00001000
*%GOTO MSSCOM1; /* MAPPING MACRO 00002000
MACRO 00003000
&NAME MSSCOM 00004000
PUSH PRINT 00005000
AIF ('&SYSPARM' NE 'SUP').MSSCM1 00006000
PRINT OFF,NOGEN 00007000
.MSSCM1 ANOP 00008000
**/ 00009000
*% MSSCOM1:; 00010000
*/* ***************************************************************** 00011000
** 00012000
** 00013000
** THE MSSCOM MACRO IS USED TO MAP A CONTROL BLOCK 00014000
** FOR COMMUNICATION BETWEEN THE CONTROL PROGRAM 00015000
** COMPONENT OF VM/370 AND AN OS/VS SYSTEM RUNNING 00016000
** IN A VIRTUAL MACHINE. 00017000
** 00018000
** THE CONTROL BLOCK CONTAINS TWO TYPES OF DATA: 00019000
** 1. DATA THAT IS CONSTRUCTED BY VM/370 00020000
** AND PASSED TO OS/VS TO REQUEST AN 00021000
** MSS OPERATION. 00022000
** 2. DATA THAT IS SAVED BY VM/370 WHILE 00023000
** AN MSS OPERATION IS IN PROCESS SO 00024000
** THAT, WHEN THE OPERATION IS COMPLETE, 00025000
** THE CORRECT VM/370 USER CAN BE 00026000
** DISPATCHED. 00027000
** 00028000
************** MSS COMMUNICATION CONTROL BLOCK 00029000
** 00030000
** 00 +---------------------------------+-----------+ 00031000
** | MSSSER | MSSVUA | 00032000
** 08 +----------------------+----------+-----------+ 00033000
** | MSSTASKD | MSSTASK1 | 00034000
** 10 +----------------------+----------------------+ 00035000
** | MSSTASK2 | MSSTASK3 | 00036000
** 18 +----------------------+----------------------+ 00037000
** | MSSNEXT | MSSUSER | 00038000
** 20 +----------------------+-----+----+-----------+ 00039000
** | MSSUSER | M*1 | M*2| MSSRC | 00039110
** +----------------------+-----+----+-----------+ 00039190
** 00043000
** 00044000
********************************************************************/ 00045000
*%GOTO MSSCOM2; /* 00046000
&NAME DSECT MAP VM/370 TO OS/VS COMMUNICATIONS AREA 00047000
MSSSER DS CL6 3330V VOLUME SERIAL NUMBER 00048000
MSSVUA DS XL2 VIRTUAL UNIT ADDRESS FOR THE VOLUME 00049000
MSSTASKD DS F ADDRESS OF CPEXBLOK USED FOR @VA09302 00050000
* DUPLICATE 00050100
* MOUNT REQUESTS 00050200
MSSTASK1 DS F ADDRESS OF VM'S CPEXBLOK REPRESENTING 00051000
* A TASK WAITING FOR A MOUNT 00052000
MSSTASK2 DS F POINTER TO CPEXBLOK REPRESENTING A 00053000
* CP TASK WAITING FOR MSC COMMUNICATION 00054000
MSSTASK3 DS F POINTER TO A CPEXBLOK FOR A CP TASK 00055000
* WAITING FOR I/O TO A 3330V BEING MOUNTED 00056000
MSSNEXT DS F POINTER TO NEXT COMMUNICATION AREA, 00057000
* OR ZERO IF THIS IS THE LAST 00058000
MSSUSER DS CL8 NAME OF THE VIRTUAL MACHINE INITIATING 00059000
* THIS REQUEST 00060000
MSSFLAG1 DS XL1 M*1 BINARY FLAGS DESCRIBING THE @VA09302 00061000
* SPECIFIC 00061100
* TYPE OF REQUEST 00062000
MSSFLAG2 DS XL1 M*2 BINARY FLAG INDICATING THE @VA09302 00062100
* CURRENT STATUS 00062200
* OF AN MSS REQUEST 00062300
MSSRC DS 1H REASON CODE @VA11320 00063100
SPACE 00064000
MSSSIZE EQU (*-MSSSER)/8 MSSCOM SIZE IN DOUBLE WORDS 00065000
SPACE 00066000
* 00067000
* THE FOLLOWING ARE POSSIBLE SETTINGS FOR THE MSSFLAG1 FIELD 00068000
* 00069000
MOUNT EQU X'80' MOUNT THE 3330V SPECIFIED BY 'SERIAL' 00070000
* ON THE DEVICE 'VUA' 00071000
* 00072000
DEMOUNT EQU X'20' DEMOUNT THE 3330V SPECIFIED BY 'SERIAL' 00073000
* WHICH IS ON DEVICE 'VUA' 00074000
* 00075000
RELINQSH EQU X'10' MOUNTED BY VM/370 CP 00075300
* 00075600
INUSE EQU X'08' THIS VSCOM CONTROL BLOCK IS IN USE; 00076000
* THAT IS, IT REPRESENTS A REQUEST 00077000
* CURRENTLY BEING PROCESSED BY OS/VS 00078000
* 00079000
MSSERR EQU X'04' THIS REQUEST HAS BEEN PROCESSED BY THE 00080000
* MSC, BUT AN ERROR WAS INDICATED - 00081000
* NO FURTHER MSS ACTION WILL OCCUR 00082000
MSSSAVE EQU X'01' SAVE AREA IS NOT TO BE RETURNED @VA10862 00082010
* 00082025
* THE FOLLOWING ARE POSSIBLE SETTINGS FOR THE MSSFLAG2 FIELD 00082050
* 00082075
MSGPROC EQU X'10' WHEN THE 'MOUNT PROCEEDING' @VA09302 00082100
* MSG. IS ISSUED 00082125
* THIS FLAG IS SET TO PREVENT ANY OTHER 00082150
* TASK FROM GETTING CONTROL BEFORE THE 00082175
* MODULE REQUESTING A MOUNT IS INFORMED 00082200
* THE MSS HAS ACKNOWLEDGED ITS REQUEST 00082225
INPROC EQU X'20' WHEN THIS BIT IS SET, IT @VA09302 00082250
* INDICATES THAT THE 00082275
* MSS HAS ACCEPTED A REQUEST FOR A MOUNT OR 00082300
* DEMOUNT AND IS IN THE PROCESS OF COMPLETE 00082325
* THAT REQUEST. 00082350
MQENT EQU X'40' INDICATES THAT THIS IS A Q @VA09302 00082375
* ENTRY WAITING FOR 00082400
* A RESPONSE FROM THE APPLICATION PROGRAM 00082425
* DMKMSS RUNNING IN THE VIRTUAL VS MACH. 00082450
RQENT EQU X'80' INDICATES THAT THIS IS A @VA09302 00082475
* REQUEST WAITING 00082500
* FOR MOUNT TO BE STARTED. THAT IS; THIS 00082525
* IS A VALID REQUEST 00082550
POP PRINT 00083000
MEND */ 00084000
* 00085000
* /***********************************************************/ 00086000
* /* PLS2 VERSION OF THE MSSCOM MAPPING MACRO */ 00087000
* /***********************************************************/ 00088000
*% MSSCOM2:; 00089000
* DECLARE 00090000
* 1 OSMSCOMM BASED(COMMPTR) BDY(WORD), 00091000
* 2 MSSSER CHAR (6), /*3330 VOL SERIAL NO. */ 00092000
* 2 MSSVUA CHAR(2), /*VIRTUAL UNIT ADDRESSS FOR VOL */ 00093000
* 2 MSSTASKD CHAR(4), /*ADDR. CPEXBLOK FOR DUPLICATE REQ*/ 00094000
* 2 MSSTASK1 FIXED(32), /*ADDR. CPEXBLOK WAITING FOR MOUNT*/ 00095000
* 2 MSSTASK2 FIXED(32), /*ADDR. CPEXBLOK WAITING FOR MSC */ 00096000
* 2 MSSTASK3 FIXED(32), /*ADDR. CPEXBLOK WAIT I/O TO 3330V*/ 00097000
* 2 MSSNEXT FIXED(32), /*PTR. TO NEXT COMMUNICATION AREA */ 00098000
* 2 MSSUSER CHAR(8), /*NAME OF VIRTUAL MACH. WITH REQST*/ 00099000
* 2 MSSFLAG1 CHAR(1), /*FLAGS REPRESENTING REQUEST TYPE */ 00100000
* 3 MOUNT BIT(1), /*MOUNT THE 3330V 'SERIAL' ON VUA */ 00101000
* 3 * BIT(1), 00102000
* 3 DEMOUNT BIT(1),/*DEMOUNT VOL 'SERIAL' ON VUA */ 00103000
* 3 RELINQSH BIT(1),/*RELINQUISH VOL 'SERIAL' ON VUA */ 00104000
* 3 INUSE BIT(1), /*MSSCOM CONTROL BLOCK IN USE */ 00105000
* 3 MSSERR BIT(1), /*MSS ERROR HAS OCCURED */ 00106000
* 3 * BIT(2), 00107000
* 2 MSSFLAG2 CHAR(1), /*FLAGS INDICATING MSS STATUS */ 00107100
* 3 RQENT BIT(1), /*REQUEST WAITING FOR MOUNT|DEMOUNT*/ 00107200
* 3 MQENT BIT(1), /*REQUEST WAITING FOR DMKMSS */ 00107300
* 3 INPROC BIT(1), /*MSS MOUNT IN PROCESS THIS BLOK */ 00107400
* 3 MSGPROC BIT(1),/*MOUNT MSG. WRITTEN.WAIT COMPLETE*/ 00107500
* 3 * BIT(4), 00107610
* 2 MSSRC FIXED(15);/*REASON CODE */ 00107620