*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