The SENDX Protocol
The SENDX protocol defines a transaction calling for an expedited one-way transfer of data. Figure 1 shows the SENDX protocol visually. SENDX differs from the SEND protocol in that the target virtual machine need not issue the RECEIVE function; data is transferred from source virtual machine storage to target virtual machine storage at the same time the external interrupt from CP notifies the target virtual machine of the transaction. Data sent by the source virtual machine is placed in the external interrupt buffer of the target virtual machine.
Virtual machines using the SENDX protocol are responsible for specifying the user ID for the target virtual machine, a message ID, the address and length of the data being sent, and the external interrupt buffer address and data length for the target virtual machine. A virtual machine to be used as a target virtual machine with the SENDX protocol must specify this information through VMCPARM when that virtual machine issues the AUTHORIZE function. The data length specified must be at least as long as the maximum amount of data to be transferred during a transaction; it need not be limited to the usual 40-byte external interrupt buffer. Effective use of the SENDX protocol requires that VMCF users agree on a maximum size for SENDX data and then issue the AUTHORIZE function with the appropriate external interrupt buffer size.
If the target virtual machine has not provided enough SENDX buffer area in the external interrupt buffer, CP notifies the source virtual machine that the transaction 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.
