Special VMCl !nterrup! Whenever a source virtual machine uses VMCl to correspond with another
virtual machine (sink), the sink is notified of the pending communication via a special external interrupt (code X'4001'). When
this interrupt is unstacked and processed, a copy of the information in
the source's parameter list is passed to the sink in an external
interrupt buffer. The buffer is defined when a user allows virtual machine communication. The contents are referred to as the external
interrupt message header. When certain transactions (SEND, SEBD/RECV, SEBDX) have been completed, a final response external interrupt is passed back to the
source. The message header associated with this interrupt contains
residual counts pertaining to the transferred data and data transfer
return codes.
Figure 13 shows the relationship between the various VMCl control blocks
and data areas. When a virtual machine allows virtual machine communication, VMCl generates a master VMCBLOK and places it at the head
of a queue pointed to by the VMCPBT field of the user's VMBLOK. Tvo fields in this master VMCBLOK define the address (VMCVADA) and length (VMCLENA) of the user's external interrupt buffer. The length must include the maximum size of any potential SEBDX data in addition to the 40 bytes for the external interrupt message header. When a source virtual machine executes a VMCl subfunction, a VMCBLOK is built, initialized with data from the parameter list (VMCPARM), and
stacked on the VMCBLOK queue pointed to by the VMCPBT field in the
sink's VMBLOK. If an XIBTBLOK for a X'4001' external interrupt has not
already been stacked for the sink machine, DMKVMC builds one and stacks
it on the IINTBLOK queue pointed to by the VMPXIBT field in the sink's VMBLOK. VMCl external interrupts are assigned a sort code of X'71FllllF', giving them the lowest priority in the external interrupt
queue. Each virtual machine clears its own VMCl control blocks. Special Messages Facility The Special Message lacility allows users to send special messages to a
virtual machine via the SMSG command. In the Special Message environment, CP acts as a source machine with the receiver of special messages being the sink. This relieves the burden from the issuer of SMSG of having to perform authorization and other setup necessary for
sending messages to the receiving virtual machine. This is performed by CP. The issuer of SMSG is responsible for sending message text that is
meaningful to the receiving virtual machine. The format and handling of
special messages is entirely up to the receiving machine, which may be
one designed by the installation or prepared by others.
Before the receiving virtual machine can accept special messages, it must be running with the Special Message flag OB, and it must have
issued AUTHORIZE (via DIAGNOSE X'68') with CP. The authorization
includes supplying the External Interrupt Buffer address and size. To
ensure receiving the entire message, the receiving virtual machine 1-40 IBM VM/370 System Logic and Problem Determination--Volume 1
DIAGNOSE Instruction I X'83' I Rx I Ry I Rx VMBLOK = VMPXINT VMCPNT XINTBLOK Queue
1 X'4001' I X'0068' VMCPARM . VMCBL.,OK Queue -.,11 I. Master VMCBLOK - VMCVADA External Interrupt Buffer ---. (VMCMHDR) --------- Optional SENDX Data Buffer
Figure 13. VMCF Control Block Relationships
should specify the size as 169 bytes (roo. for a 40-byte header and a 120- to 129-byte aessage buffer, depending on the length of the co •• and
and userid).
Setting SMSG ON can be accoaplished by setting the S8SG flag on in
the VMCF paraaeter list when issuing an AUTHORIZE. It aay also issue
the CP co •• and SET S!SG ON. Either aethod sets the Special Bessage flag
on in the VMBLOK. When this is done, any other virtual aachine can
issue the SMSG co •• and to the userid of the receiving virtual aachine. CP Introduction 1-41
Previous Page Next Page