*COPY VMCBLOKS 00001000
PUSH PRINT 00002000
AIF ('&SYSPARM' NE 'SUP').VMCB01 00003000
PRINT OFF,NOGEN 00004000
.VMCB01 ANOP 00005000
VMCBLOK DSECT 00006000
SPACE 1 00007000
*** VMCBLOK - VM COMMUNICATION BLOCK 00008000
* 00009000
* 0 +-----+-----+-----------+-----------------------+ 00010000
* | V*1 | V*2 | VMCFUNC | VMCMID | 00011000
* 8 +-----+-----+-----------+-----------------------+ 00012000
* | VMCUSER | 00013000
* 10 +-----------------------+-----------------------+ 00014000
* | VMCVADA | VMCLENA | 00015000
* 18 +-----------------------+-----------------------+ 00016000
* | VMCVADB | VMCLENB | 00017000
* 20 +-----------------------+-----------------------+ 00018000
* | VMCUSE | 00019000
* 28 +-----------------------+-----+-----+-----+-----+ 00020000
* | VMCFPNT | V*3 | V*4 | V*5 | V*6 | 00021000
* 30 +-----------------------+-----+-----+-----+-----+ 00022000
* | VMCTOD | 00022300
* 38 +-----------------------------------------------+ 00022600
* 00023000
*** VMCBLOK - VM COMMUNICATION BLOCK 00024000
SPACE 1 00025000
VMCSTAT DS 1X VMCBLOK USER STATUS (V*1) 00026000
VMCEFLG DS 1X DATA TRANSFER RETURN CODE (V*2) 00027000
VMCFUNC DS 1H SUB - FUNCTION CODE 00028000
VMCMID DS 1F MESSAGE IDENTIFIER 00029000
VMCUSER DS 1D SOURCE / SINK USERID (VMUSER) 00030000
VMCVADA DS 1F VADDR OF MESSAGE BUFFER 00031000
VMCLENA DS 1F LENGTH OF MESSAGE 00032000
VMCVADB DS 1F VADDR OF REPLY BUFFER (SEND / 00033000
* RECV ONLY) 00034000
VMCLENB DS 1F LENGTH OF REPLY BUFFER (SEND / 00035000
* RECV ONLY) 00036000
VMCUSE DS 1D USER SUPPLIED DOUBLE-WORD 00037000
VMCFPNT DS 1F ADDRESS OF NEXT VMCBLOK 00038000
VMCKEY DS 1X USER PSW KEY (V*3) 00039000
VMCCSTAT DS 1X VMCBLOK CONTROL STATUS (V*4) 00040000
VMCASTAT DS 1X VMCBLOK AUTHORIZATION STATUS (V*5) 00041000
VMCRSB1 DS 1X RESERVED BYTE (V*6) 00042000
VMCTOD DS 1D TOD AT AUTH/BUILD 00042500
SPACE 1 00043000
VMCBSIZE EQU (*-VMCBLOK)/8 SIZE OF VMCBLOK (DOUBLEWORDS) 00044000
SPACE 1 00045000
* BITS DEFINED IN VMCSTAT (V*1) 00046000
VMCRESP EQU X'80' FINAL RESPONSE INTERRUPT 00047000
VMCRJCT EQU X'40' MESSAGE REJECTED 00048000
VMCPRTY EQU X'20' PRIORITY MESSAGE 00049000
SPACE 1 00050000
* BITS DEFINED IN VMCCSTAT (V*4) 00051000
VMCCXINT EQU X'80' EXTERNAL INTERRUPT VMCBLOK 00052000
VMCCRECP EQU X'40' TRANSACTION PROCESSED 00053000
VMCCBUSY EQU X'20' VMCBLOK BUSY 00053500
SPACE 1 00054000
* BITS DEFINED IN VMCASTAT (V*5) 00055000
VMCAAUTS EQU X'80' AUTHORIZED SPECIFIC 00056000
VMCAPRTY EQU X'40' AUTHORIZED PRIORITY 00057000
VMCAQIES EQU X'20' USER QUIESCING 00058000
SPACE 1 00059000
* RE-DEFINITION FOR MASTER VMCBLOK 00060000
VMCACNT EQU VMCFUNC ACTIVE MESSAGE COUNT 00061000
EJECT 00062000
VMCPARM DSECT 00063000
SPACE 1 00064000
*** VMCPARM - VM COMMUNICATION PARMLIST 00065000
* 00066000
* 0 +-----+-----+-----------+-----------------------+ 00067000
* | V*1 | V*2 | VMCPFUNC | VMCPMID | 00068000
* 8 +-----+-----+-----------+-----------------------+ 00069000
* | VMCPUSER | 00070000
* 10 +-----------------------+-----------------------+ 00071000
* | VMCPVADA | VMCPLENA | 00072000
* 18 +-----------------------+-----------------------+ 00073000
* | VMCPVADB | VMCPLENB | 00074000
* 20 +-----------------------+-----------------------+ 00075000
* | VMCPUSE | 00076000
* 28 +-----------------------------------------------+ 00077000
* 00078000
*** VMCPARM - VM COMMUNICATION PARMLIST 00079000
SPACE 1 00080000
VMCPFLG1 DS 1X VMCPARM FLAG BYTE (V*1) 00081000
VMCPFLG2 DS 1X RESERVED BYTE (V*2) 00082000
VMCPFUNC DS 1H SUB - FUNCTION CODE 00083000
VMCPMID DS 1F MESSAGE IDENTIFIER 00084000
VMCPUSER DS 1D TARGET USERID 00085000
VMCPVADA DS 1F VADDR OF MESSAGE BUFFER 00086000
VMCPLENA DS 1F LENGTH OF MESSAGE 00087000
VMCPVADB DS 1F VADDR OF REPLY BUFFER (SEND / 00088000
* RECV ONLY) 00089000
VMCPLENB DS 1F LENGTH OF REPLY BUFFER (SEND / 00090000
* RECV ONLY) 00091000
VMCPUSE DS 1D USER SUPPLIED DOUBLE-WORD 00092000
SPACE 1 00093000
VMCPLEN EQU (*-VMCPARM) LENGTH OF VMCPARM (BYTES) 00094000
SPACE 1 00095000
* BITS DEFINED IN VMCPFLG1 (V*1) 00096000
VMCPAUTS EQU X'80' AUTHORIZE SPECIFIC REQUEST 00097000
VMCPPRTY EQU X'40' PRIORITY MESSAGE 00098000
VMCPSMSG EQU X'20' RECEIVING SPECIAL MESSAGES 00098100
SPACE 1 00099000
* EQUATES FOR VMCPFUNC (SUB - FUNCTION CODE) 00100000
VMCPAUTH EQU X'0000' AUTHORIZE 00101000
VMCPUAUT EQU X'0001' UN-AUTHORIZE 00102000
VMCPSEND EQU X'0002' SEND 00103000
VMCPSENR EQU X'0003' SEND/RECV 00104000
VMCPSENX EQU X'0004' SENDX 00105000
VMCPRECV EQU X'0005' RECEIVE 00106000
VMCPCANC EQU X'0006' CANCEL 00107000
VMCPREPL EQU X'0007' REPLY 00108000
VMCPQUIE EQU X'0008' QUIESCE 00109000
VMCPRESM EQU X'0009' RESUME 00110000
VMCPIDEN EQU X'000A' IDENTIFY 00111000
VMCPRJCT EQU X'000B' REJECT 00112000
EJECT 00113000
VMCMHDR DSECT 00114000
SPACE 1 00115000
*** VMCMHDR - VM COMMUNICATION MSG HEADER 00116000
* 00117000
* 0 +-----+-----+-----------+-----------------------+ 00118000
* | V*1 | V*2 | VMCMFUNC | VMCMMID | 00119000
* 8 +-----+-----+-----------+-----------------------+ 00120000
* | VMCMUSER | 00121000
* 10 +-----------------------+-----------------------+ 00122000
* | VMCMVADA | VMCMLENA | 00123000
* 18 +-----------------------+-----------------------+ 00124000
* | VMCMVADB | VMCMLENB | 00125000
* 20 +-----------------------+-----------------------+ 00126000
* | VMCMUSE | 00127000
* 28 +-----------------------------------------------+ 00128000
* | | 00129000
* = VMCMBUF = 00130000
* | OPTIONAL MESSAGE BUFFER | 00131000
* | | 00132000
* XX +-----------------------------------------------+ 00133000
* 00134000
*** VMCMHDR - VM COMMUNICATION MSG HEADER 00135000
SPACE 1 00136000
VMCMSTAT DS 1X MESSAGE STATUS BYTE (V*1) 00137000
VMCMEFLG DS 1X DATA TRANSFER RETURN CODE (V*2) 00138000
VMCMFUNC DS 1H SUB-FUNCTION CODE (ORIGINAL 00139000
* REQUEST) 00140000
VMCMMID DS 1F MESSAGE IDENTIFIER 00141000
VMCMUSER DS 1D SOURCE / SINK USERID (VMUSER) 00142000
VMCMVADA DS 1F VIRTUAL BUFFER ADDRESS 00143000
VMCMLENA DS 1F MESSAGE LENGTH 00144000
VMCMVADB DS 1F VIRTUAL REPLY BUFFER ADDRESS 00145000
VMCMLENB DS 1F REPLY BUFFER LENGTH 00146000
VMCMUSE DS 1D USER SUPPLIED DOUBLE-WORD 00147000
VMCMBUF DS 0X OPTIONAL 'SENDX' DATA BUFFER 00148000
SPACE 00149000
VMCMLEN EQU (*-VMCMHDR) LENGTH OF VMCMHDR (BYTES) 00150000
SPACE 00151000
* BITS DEFINED IN 'VMCMSTAT'. (V*1) 00152000
VMCMRESP EQU X'80' FINAL RESPONSE INTERRUPT 00153000
VMCMRJCT EQU X'40' MESSAGE REJECTED 00154000
VMCMPRTY EQU X'20' PRIORITY MESSAGE 00155000
SPACE 00156000
* CODES DEFINED WITHIN 'VMCMFUNC'. 00157000
SPACE 00158000
* CODE SUBFUNCTION 00159000
SPACE 00160000
* VMCPSEND SEND 00161000
* VMCPSENR SEND/RECV 00162000
* VMCPSENX SENDX 00163000
* VMCPIDEN IDENTIFY 00164000
EJECT 00165000
* EQUATES FOR VM COMMUNICATION RETURN CODES *** 00166000
SPACE 1 00167000
VMC01 EQU 1 INVALID VIRTUAL ADDRESS 00168000
VMC02 EQU 2 INVALID SUB-FUNCTION CODE 00169000
VMC03 EQU 3 PROTOCOL VIOLATION 00170000
VMC04 EQU 4 USER NOT AUTHORIZED (SOURCE) 00171000
VMC05 EQU 5 USER NOT AVAILABLE 00172000
VMC06 EQU 6 PROTECTION VIOLATION 00173000
VMC07 EQU 7 SENDX DATA TOO LARGE 00174000
VMC08 EQU 8 DUPLICATE MESSAGE 00175000
VMC09 EQU 9 TARGET VM QUIESCING 00176000
VMC10 EQU 10 MESSAGE LIMIT EXCEEDED 00177000
VMC11 EQU 11 CANCEL - REPLY CANCELLED 00178000
VMC12 EQU 12 MESSAGE NOT FOUND 00179000
VMC13 EQU 13 SYNCHRONIZATION ERROR 00180000
VMC14 EQU 14 CANCEL - TOO LATE 00181000
VMC15 EQU 15 PAGING I/O ERROR 00182000
VMC16 EQU 16 INCORRECT LENGTH 00183000
VMC17 EQU 17 DESTRUCTIVE OVERLAP 00184000
VMC18 EQU 18 USER NOT AUTHORIZED PRIORITY 00185000
VMC19 EQU 19 DATA TRANSFER ERROR 00186000
VMC20 EQU 20 CANCEL - BUSY 00186500
SPACE 1 00187000
* GENERAL VM COMMUNICATION EQUATES 00188000
SPACE 1 00189000
VMCSMAX EQU 50 MAXIMUM ACTIVE MESSAGE LIMIT 00190000
VMCXCODE EQU X'4001' VMCF EXTERNAL INTERRUPT CODE 00191000
VMCXMASK EQU X'0001' VMCF CR0 EXTERNAL INTERRUPT MASK 00192000
EJECT 00193000
POP PRINT 00194000
SPACE 1 00195000