This is a description of a protocol, not the documentaion of some specific type of object that we have implemented. The COMMQ key {(commq)} obeys this protocol -- others may as well. A CPGCOMM key is kept by the VMGROUP object to be used when some signal is to sent to "your machine". This key is provided by the producer of a virtual machine, such as provided by (vmcommf), or by another system designed to play the role of a VM.
CPGCOMM(msg{=0},(8,tod),(8,sender),message==>c) Message for your VM
sender - The username of the sender
message - Text of message in EBCDIC
This operation returns when the CP simulator is able to receive another message.
Return codes:
?? - Message cannot be accepted because a previous message is still being processed.
CPGCOMM(connection_waiting{=2}==>) There are one or more pending IUCV connections.
CPGCOMM(accepted{=3}, (2,pathid),(2,msglim),(1,flags), (16,userdata) ==>) IUCV Connection Complete
Flags are:
X'40' - the path is initially quiesced.
X'80' - the connecting virtual machine can handle message data in the parameter list.
Userdata - passed as part of the accept operation.
pathid - The pathid used with the "IUCV Connect" operation on the VMCOMM key or the "IUCV Accept" operation on the IUCVPATH key.
Userdata - passed as part of the sever operation.
Userdata - passed as part of the quiesce operation.
Userdata - passed as part of the resume operation.
pathid - The pathid used with the "IUCV Connect" operation on the VMCOMM key or the "IUCV Accept" operation on the IUCVPATH key.
Flags are:
X'80' - Message data is included in the parameter string. The msglength is 8.
Other bits are zero.
audit - The IUCV audit trail for this message, left justified.
count - Residual count in buffer or of un-received message.
data - Used only if (flags & X'80'). Contains the reply.
Flags(x1) are:
X'20' - This is a priority message
X'80' -
If zero, message data is not included in the parameter string. Msglength has the length of the message, and data1 is not used.
targetclass(x4) - value passed by sender. Can be used for message selection
data1(x4) - Used only if (flags & X'80'). Contains part of the message.
msglength(i4) - Length of message to be sent.
maxreplylen(i4) - Maximum length of the expected reply.
{ni}CPGCOMM(vmcf_interrupt{=10}, (40,VMCF-external-interrupt-header) ==>)
message - Text of message in EBCDIC
This operation returns when the CP simulator is able to receive another special message.
Return codes:
?? - Message cannot be accepted because a previous message is still being processed.