The SEND / RECV Protocol
The SEND/RECY protocol defines a transaction calling for two-way transfer of
data, as described in Figure 8 The SEND/RECY protocol uses the SEND/RECY,
RECEIYE, and REPLY subfunctions.
The source virtual machine initiates the transaction using the SEND /RECY sub­
function. Using an external interrupt, CP notifies the sink virtual machine that
there is a message waiting. The sink virtual machine uses the RECEIYE subfunc­
tion to cause the data to be transferred from the source virtual machine's storage to
the sink virtual machine storage. The sink virtual machine now uses the REPLY subfunction to cause data to be transferred from its storage to the source virtual
machine's storage. When the REPLY sub function completes processing, CP causes
an external interrupt in the source virtual machine, notifying it that the transaction
is complete.
The SEND /RECY request requires that the source virtual machine specify the
address and length of the data to be transferred and the address where data is
expected from the REPLY subfunction. (Both addresses are in source virtual
machine storage.) These addresses, along with the length of the data to be trans­
ferred, are specified via the YMCP ARM parameter list, described below.
When RECEIYE is issued by the sink virtual machine in response to the
SEND/RECY request, YMCPARM contains the address in sink virtual machine
storage where data is to be received. Finally, when the REPLY request is issued, YMCP ARM contains the address in the sink virtual machine storage from which
data is to be transferred. Source Virtual
Machine CONTROL PROGRAM DMKVMC vr1CF Interface
Module SEND/RECV-->---------------- > Sink Virtual
Machine
-Extern al Interrupt >
<
>Data Transfer
<------------------
<--External Interrupt
(Final Response)
Figure 8. The SEND /RECV Protocol 1 1< Data Transfer
< RECEIVE >
< REPLY <
The Virtual Machine Communication Facility 89
The SENDX Protocol
The SENDX protocol defines a transaction calling for an expedited one-way trans­
fer of data. Figure 9 shows the SENDX protocol graphically. SENDX differs from
the SEND protocol in that the sink virtual machine need not issue the RECEIVE
subfunction; data is transferred from source virtual machine storage to sink virtual
machine storage at the same time the external interrupt from CP notifies the sink
virtual machine of the transaction. Data sent by the source virtual machine is
placed in the external interrupt buffer of the sink virtual machine.
Virtual machines using the SENDX protocol are responsible for specifying the
userid for the sink virtual machine, a message ID, the address and length of the
data being sent, and the external interrupt buGer address and data length for the
sink virtual machine. A virtual machine to be used as a sink virtual machine with
the SENDX protocol must specify this information via VMCPARM when that vir­
tual machine issues the AUTHORIZE subfunction. The data length specified must
be at least as long as the maximum amount of data to be transferred during a trans­
action; it need not be limited to the usual 40-byte external interrupt buffer. Effec­
tive use of the SENDX protocol requires that VMCF users agree on a maximum
size for SENDX data and then issue the AUTHORIZE sub function with the
appropriate external interrupt buffer size.
If the sink virtual machine has not provided enough SENDX buffer area in the
external interrupt buffer, CP notifies the source virtual machine that the trans­
action was not completed.
When a SENDX data transfer is complete, CP directs a response external interrupt
to the source virtual machine, notifying it that the transaction is complete. CONTROL PROGRAM Source
Virtual
Machine
SENDX--->-- DMKvr1C VMCF Interface 1 e > Sink Virtual ------------------->Data Transfer--------------------->
<--External Interrupt
(Final Response)
Figure 9. The SENDX Protocol
External Interrupt----->
(Buffer Contains Data> 90 VM/SP System Programmer's Guide
Previous Page Next Page