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

CPGCOMM(spool_waiting{=1}==>) There are one or more spool files waiting to be picked up

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

CPGCOMM(severed{=4}, (2,pathid),(16,userdata)==>) IUCV path has been severed

CPGCOMM(quiesced{=5}, (2,pathid),(16,userdata)==>) Other side has Quiesced this path.

CPGCOMM(resumed{=6}, (2,pathid),(16,userdata)==>) Other side has Resumed this path

CPGCOMM(message_complete{=7}, (2,pathid),(1,flags),(1,0), (4,msgid), (4,audit),(4,sourceclass),(4,tag),(4,count),(8,data)==>) Message has been completed

CPGCOMM(message_pending{=9}, (2,pathid),(1,flags),(1,0),(4,msgid), (4,targetclass), (4,data1),(4,msglength),(4,maxreplylen) ==>) Message pending

Please note that the order codes for: accepted=3, severed=4, quiesced=5, resumed=6, message_complete=7, message_pending=9 are one greater than the value in IPTYPE in the CP external interrupt data.

{ni}CPGCOMM(vmcf_interrupt{=10}, (40,VMCF-external-interrupt-header) ==>)

CPGCOMM(smsg{=11},(8,sender),message==>c) Special Message for your VM