Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829 RECEIVE allows you to selectively accept messages or data sent via the SEND or SEND/RECV subfunctions. You must specify in the user parameter
list (VKCPARK) the virtual address and length of the RECEIVE buffer.
The parameter list also contains the message ID of the message to be
received and userid of the yirtual machine that originated the SEND or SEND/RECV request. When a virtual machine has more than one message
pending, the RECEIVE function can be executed to select messages in any
order by message ID. You can execute the REJECT function in order to reject messages sent
by other virtual machines. The REJECT subfunction terminates the SEND or SEND/RECV request (see "REJECT: DIAGNOSE Code X'68' Subfunction Code X' 00 11' ") You can execute the RECEIVE subfunction in response to a SEND/RECV request and then execute a REJECT subfunction rather than a REPLY. The
user doubleword passed back with the REJECT subfunction could indicate "RESEND", for example, if the original data was not received correctly
(depending on how you want to use the protocol). REPLY allows you to direct data back to the sender of a SEND/RECV subfunction. (This simulates full duplex communication.) The REPLY subfunction is used with the SEND/RECV subfunction. A user who receives
a SEND/RECV external interrupt normally responds by executing the RECEIVE subfunction. The RECEIVE subfunction causes data to be
transferred from the source virtual storage to the sink virtual storage.
The sink virtual machine can then respond with the REPLY subfunction
causing data to be transferred from specified sink virtual storage to
the source virtual storage. The REPLY subfunction causes a response
external interrupt to be reflected to the source virtual machine.
The user parameter list (VMCPARM) identifies the virtual buffer
address and length of reply data. When the REPLY subfunction is
executed, the user parameter list (VMCPARM) also contains the message ID
and the userid of the virtual machine to receive the reply.
The REPLY subfunction can be executed
indicating no response. You can transmit
otherwise) usinq the user doubleword. with a zero data length
a reply {zero length or
A reply can be executed in response to a SEND/RECV request without
executing the RECEIVE subfunction. This indicates that you do not want
to receive the messaqe but may want to send a reply. A reply of zero
length could be executed simply to terminate the SEND/RECV request. The
application of the REPLY subfunction is a user decision. It must be
used to terminate a SEND/RECV request, however, unless the REJECT
subfunction is executed (see "REJECT: DIAGNOSE Code x'68' Subfunction
Code X' 0011''') The REPLY subfunct ion is com plete when the source
virtual machine receives the external interrupt response. A REPLY subfunction cannot be executed in response to a SEND request
(this is a protocol violation).
158 IBM VM/370 System Programmer's Guide
Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829
Invoking VMCF Subfunctions VMCF subfunctions are invoked by means of: DIAGNOSE code X'68' subfunction codes The VMCPARM parameter list Extecnal interrupt code X'4001' The external interrupt message header DIAGNOSE CODE X'68' All VKCF subfunctions are invoked from within assembler language
programs by means of DIAGNOSE code X'68': 83
Rx
Ry CODE <-------- 4 bytes ------->
83 I Rx I Ry , CODE is X'83' and interpreted by the assembler as the DIAGNOSE instruction. There is no mnemonic for DIAGNOSE. specifies a register containing the address of the VKCPARM parameter list.
is a register that contains a return code.
is X'0068' and specifies that you are requesting execution of
a VMCF. THE VMCPARM PARAMETER LIST The Rx reqister of DIAGNOSE X'68' contains the address of a parameter
list (VKCPARM). This parameter list is used to specify the VKCF subfunction to be executed, along with other information required by VKCF to execute that function. The address of VMCPARK must be
doubleword-aligned. The following is the format of the VKCPARM parameter list and a description of each of the fields in that list. Part 2. Control Program (CP) 159
Previous Page Next Page