*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