VMCF
Subfunction Applicable VMCPARM Parameters Return Codes
REPLY VMCPFUNC - X'OOO7' - subfunction code 0,1,2,3,4,5,6,
VMCPMID -message identifier 12,13,15,16,17,19 VMCPUSER -. source use rid VMCPV ADA -REPL Y data address
VMCPLENA -REPLY data length VMCPUSE - user doubleword
QUIESCE VMCPFUNC - X'0008' - subfunction code 0,2,4,15
RESUME VMCPFUNC - X'0009' - 8ubfunction code 0,2,4,15
IDENTIFY VMCPFLG 1 -PRIORITY option 0,2,4,5,9,10 VMCPFUNC - X'OOOA' - subfunction code 15,18 VMCPUSER - sink userid VMCPUSE - user doubleword
(See Note)
REJECT VMCPFUNC - X'OOOB' - subfunction code 0,2,3,4,12,13,15
VMCPMID -message identifier VMCPUSER - source userid VMCPUSE - user doubleword
Figure 11 (Part 2 of 2). VMCF Subfunctions, Parameters, and Return Codes
Note: Fields within the user parameter list that are not used by a particular sub­
function may be used to contain additional user data. The data, however, can only
be passed to the sink virtual machine by the source virtual machine. The REPLY
buffer address and length fields (VMCPV ADB+ VMCPLENB) may be used to
transmit additional user data for SEND and SENDX requests. All fields except
VMCPFLG1, VMCPFLG2, VMCPFUNC, and VMCPUSER may be used to pass
control information with an IDENTIFY request.
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 instruc­
tion 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.
The External Interrupt Message Header
Associated with external interrupt code X'4001' is a storage area referred to as the
external interrupt message header. The 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.
Before the receiving virtual machine can receive special messages via VMCF, it
must
Enable itself to receive external interrupts
Set bit 31 of control register 0 to a value of 1
Authorize itself.
The Virtual Machine Communication Facility 103
It authorizes itself by issuing DIAGNOSE Code X'68', AUTHORIZE. The
parameter list, VMCPARM, specified with DIAGNOSE Code X'68' must Contain a pointer to an external-interrupt buffer
Specify a buffer length of 169 bytes
Have the special message flag (VMCPSMSG) turned on.
The receiving virtual machine may turn on this flag by setting VMCPSMSG to a
value of B' 1 '. Optionally, the receiving virtual machine may turn on the special
message flag by issuing the class G command, SET SMSG ON. For information on
using DIAGNOSE Code X'68', see "Description of VMCF Subfunctions" and "Invoking VMCF Subfunctions." CP passes the external interrupt buffer (containing the external interrupt message
header) to the user's interrupt handler for processing. The user must specify the
address and length of this buffer when he executes the AUTHORIZE subfunction.
Then, when the user sends or receives messages, CP knows the address of the
buffer and passes it to the appropriate interrupt handler routine.
Fields VMCMFUNC through VMCMUSE correspond to the fields VMCPFUNC
through VMCPUSE in the VMCP ARM parameter list transmitted by the source
virtual machine. The format of the message header and optional SENDX data
buffer is:
o
8 10 18 20 28
=
where:
V*l I V*2 I vr1cr1FUNC VMCMMID VMCMUSER VMCMVADA VNCMlENA VMCMVADB vr1CNl ENB vr1CMUSE Optional Message Buffer
=
V*l (VMCMSTAT) 104 VM/SP System Programmer's Guide
is a status byte associated with the message header. The bits within
the status byte are defined as follows: VMCMRESP (X'80') Indicates final external interrupt (transaction complete). This bit
is set for all RESPONSE external interrupts and the SEND external interrupt resulting from an IDENTIFY request.
VMCMRJCT (X'40') This bit is set in a RESPONSE external interrupt to indicate that
the sink virtual machine rejected the message via the REJECT
subfunction.
Previous Page Next Page