VM370 System Programmers Guide (Rel6)
Page168(191 of 430)
Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829 r I VMCF I I I Subfunction I Applicable VMCPARM Fields I Return Codes I ,CANCEL I VMCPFUNC - X'0006' - subfunction code , 0,2,3,4,5,11, I , VMCPMID - message identifier I 12,14,15,20 I I VMCPUSER - sink userid , 1-'---- , , ,REPLY VKCPFUNC - X'0007' - subfunction code 0,1,2,3,4,5,6, I I VMCPMID - message identifier 12,13,15,16,17,19 I I VMCPUSER - source userid , I VMCPVADA - REPLY data address I I VMCPLENA - REPLY data length , I VMCPUSE - user doubleword I , , IQUIESCE VMCPFUNC - X'0008' - subfunction code 0,2,4,15 t I I I ,RESUKE VMCPFUNC - X'0009' - subfunction code 0,2,4,15 I I I IIDENTIFY VKCPFLG1 - PRIORITY option 0,2,4,5,9,10 I , VKCPFUNC - X'OOOA' - subfunction code 15,18 I , VKCPUSER - sink userid I I VKCPUSE - user doublevord I , I , (See Note) I I ,REJECT VMCPFUNC - X'OOOB' - subfunction code 0,2,3,4,12,13,15 I I VKCPMID - message identifier t , VMCPUSER - source userid I I VMCPUSE - user doublevord I I I I I Note: Fields within the user parameter list that are not used by a I I particular subfunction may be used to contain additional user data. I I The data, however, can only be passed to the sink virtual machine by I I the source virtual machine. The REPLY buffer address and length I I fields (VMCPVADB+VMCPLENB) may be used to transmit additional user I , data for SEND and SENDX requests. All fields except VMCPFLG1, I ,VMCPFLG2, VMCPFUNC, and VKCPUSER may be used to pass control I I information with an IDENTIFY request. I , I Figure 19. VKCF Subfunctions, Parameters, and Return Codes (Part 2 of 2) EXTERNAL INTERRUPT CODE X'4001' External interrupt code X'4001' is a special interrupt code recognized by CP as part of a VMCF transaction. Just as virtual machines use the DIAGNOSE instruction to communicate with CP, so too CP uses this interrupt code to communicate with virtual machines. External interrupt code X'4001' and DIAGNOSE code X'68' provide the mechanism VMCF uses to synchronize message processing. 164 IBM VM/370 System programmer's Guide
Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829 Associated with external interrupt code X'4001' is a storage area referred to as the external interrupt message Thp external interrupt message header (VMCMHDR) contains the control information required to SEND and RECEIVE messages. The fields within the message header are, for the most part, a copy of VMCPARM parameter list fields. CP passes the external interrupt buffer (containing interrupt message header) to the user's interrupt processinq. The user must specify the address and length when he executes the AUTHORIZE subfunction. Then, when or receives messages, CP knows the address of the buffer to the appropriate interrupt handler routine. the external handler for of this buffer the user sends and passes it Fields VMCMFUNC through VMCMUSE correspond to the fields VKCPFUNC through VMCPUSE in the VMCPARM parameter list transmitted by the source virtual machine. The format of the message header and optional SENDX data buffer is: 0 8 10 18 20 28 V* 1 (VMCMSTAT) .-- I V*1 I I I , I I I I I I I V*2 I VMCMFUNC VMCMMID VMCMUSER VMCMVADA VMCMLENA VMCMVADB VMCMLEN B VMCMUSE VMCMBUF Optional Message Buffer L- ____________________________________________ __ is a status byte associated with the message header. The bits within the status byte are defined as follows: . Vl'!CMRESP (X'80') Indicates final external interrupt (transaction complete). This bit will be set for all RESPONSE external interrupts and the SEND external interrupt resultinq from an IDENTIFY request. VMCMRJCT (X'40') This bit is set in a RESPONSE external interrupt to indicate that the sink virtual machine reiected the messaqe via the REJECT subfunction. VMCMPRTY (X'20') This bit is -set in both SEND ami RESP-o-NSE external interrupts to indicate a priority message. A virtual machine must be authorized for priority messages before it can receive them. Part 2. Control Program (CP) 165