The Virtual Machine Communication Facility
The Virtual Machine Communication Facility (VMCF) is part of the CP compo­
nent of VM/SP. VMCF provides virtual machines with the ability to send data to
and receive data from any other virtual machine.
VMCF is made up of five data transfer subfunctions, seven control subfunctions, a
special external interrupt (code X'4001 ') to asynchronously alert virtual machines
to pending messages, and an external interrupt message header to pass control
information (and data, at times) to another user.
VMCF is implemented by means of subfunctions invoked using the DIAGNOSE
instruction with a code of X'68' and a special 40-byte parameter list called
VMCP ARM. A VMCF subfunction is indicated by a particular subfunction code
in the VMCPFUNC field in the parameter list.
Note: Before you can use any other VMCF subfunction, you must use the AUTHORIZE subfunction for communications. Before you can communicate with
another user, that user must also have used the AUTHORIZE sub function.
A special external interrupt (code X'4001 ') is used by module DMKVMC to notify
one virtual machine of a pending transfer of data. This interrupt is also used to
synchronize sending and receiving of data.
Along with this interrupt, the virtual machine receives a message header that is
logged into a preassigned virtual storage area. This message header is used to
define the type of request and to provide data transfer information, such as length
of data. The message header is also used to notify the originator of a transaction
of the success or failure of the transaction. In this case, the message header
includes such information as residual counts and data transfer return codes.
Figure 6 on page 84 lists the VMCF sub functions and gives a brief description of
each. The subfunctions are described in detail in the section "Descriptions of
VMCF Subfunctions". Messages and data are directed to other virtual machines logically via the userid.
Data is transferred in up to 2048-byte blocks from the sending virtual machine's
storage to the receiving virtual machine's storage. The amount of data that can be
moved in a single transfer is limited only by the sizes of virtual machine storage of
the respective virtual machines. Use of real storage is minimal. Only one real stor­
age page per virtual machine (a total of two pages, one for the sender and one for
the receiver) need to be locked during the data transfer.
The special message facility uses VMCF to send messages from one virtual
machine storage area to another virtual machine storage area. For a description of
the special message facility and how it uses VMCF, see "Special Message Facility" in this section.
The Virtual Machine Communication Facility 83
Function Code Comments AUTHORIZE Control Initializes VMCF for a given virtual machine. Once AUTHOR- IZE is executed, the virtual machine can execute other VMCF
subfunctions and receive messages or requests from other users. UNAUTHORIZE Control Terminates VMCF activity. SEND Data Directs a message or block of data to another virtual machine. SEND/RECV Data Directs a message or block of data to another virtual machine,
and requests notification of a reply. SENDX Data Directs data to another virtual machine on a faster but more
restrictive protocol than the SEND subfunction.
RECEIVE Data Allows you to accept selective messages or data sent via a SEND or SEND /RECV subfunction.
CANCEL Control Cancels a message or data transfer directed to another user but
not yet accepted by that user.
Allows you to direct data back to the originator of a REPLY Data SEND /RECV subfunction, simulating full duplex communi-
cation. QUIESCE Control Temporarily rejects further SEND, SENDX, SEND/RECV, or
IDENTIFY requests from other users. RESUME Control Resets the status set by the QUIESCE subfunction and allows
execution of subsequent requests from other users.
IDENTIFY Control Notifies another user that your virtual machine is available for
VMCF communication.
REJECT Control Allows you to reject specific SEND or SEND/RECV requests
pending for your virtual machine.
Figure 6. Virtual Machine Communication Facility (VMCF) Subfunctions IThe word "Data" in this column indicates a data transfer sub function whereas the
word "Control" indicates a VMCF control subfunction.
Using the Virtual Machine Communication Facility
The following discussion presents ideas and suggestions for using the Virtual
Machine Communication Facility (VMCF).
84 VM/SP System Programmer's Guide
Previous Page Next Page