DIAGNOSE INSTRUCTION IN A VIRTUAL MACHINE The DIAGNOSE instruction cannot be used in a virtual aaChine for its normal function. If a virtual aachine atteapts to execute a DIAGIOSE instruction, a program interrupt returns control to CP. Since a DIAGNOSE instruction issued in a virtual aachine results only in
returning control to CP and not in performing normal DIAGNOSE functions,
the instruction is used for communication between a virtual aachine and
CP. The machine language format of DIAGNOSE is:
83
Rx Hy <------------- 4 bytes ------------->
, I 83 I Rx I Ry I CODE is X'83' and interpreted by the asseabler as the DIAGIOSE instruction. There is no mnemonic for DIAGNOSE. specifies a register containing the address of the VRePARR parameter list.
is a register that contains a return code. CODE is X'68' and specifies that you are requesting execution of a VMCF. The operand storage addresses, passed to the DIAGNOSE interface in Rx and Ry, must be real addresses to the virtual machine issuing the DIAGNOSE. The code is a two-byte hexadecimal value that CP uses to deteraine
what function to perform. The codes defined for the general VR/370 user
are described in this section. The code aust be a multiple of 4. Codes X'OO' through X'FC' are reserved for IBM use, and codes X'100' through X'1FC' are reserved for users.
Because DIAGNOSE operates differently in a virtual aachine than it
does in a real machine, a program should determine that it is operating
in a virtual machine before issuing a diagnose instruction, and prevent
execution of a DIAGNOSE when in a real machine.. The Store Processor ID (STIDP) instruction provides a prograa with inforaation about the
processor in which it is executing, including the processor version
nuaber. If STIDP is issued froa a virtual aachine, the version nuaber
will be X'FF' in the first byte of the CPUID field. A virtual machine issuing a diagnose instruction should run with
interrupts disabled. This prevents loss of status information
pertaining to the diagnose operation such as condition codes and sense
data.
CP Introduction 1-49
£2de Execution of DIAGNOSE code X'OO' allows a virtual machine to examine the V"/370 extended-identification code. For example, an OS/VS1 virtual machine issues a DIAGNOSE code X'OO' instruction to determine if the
version of V"/370 under which it is executing supports the V!/VS Handshaking feature. If the extended-identification code is returned to VS1, V!/370 supports handshaking; otherwise, it does not.
The register specified as Rx contains the doubleword aligned virtual
storage address where the V!/370 extended-identification code is to be
stored. The Ry register contains the number of bytes to be stored
entered as an unsigned binary number.
If the V"/370 system currently executing does not support the DIAGNOSE code X'OO' instruction, no data is returned to the virtual
aachine. If it does support the DIAGNOSE code X'OO' instruction, the
following data is returned to the virtual machine (at the location
specified by Rx): lield System Name Version Number Version Code !CEL Processor
Address Userid Program Product Bit Map The first byte is the
version number, the second
byte is the level, and the third
byte is the PLC (Program Level
Change) number. V!/370 executes the STIDP (Store Processor ID) instruction
to determine the version
code. V!/370 executes the STIDP instruction to determine
the maximum length of the "CEL ("achine Check Extended
Logout) area.
3 bytes, hexadecimal
1 byte, hexadecimal
2 bytes, hexadecimal V!/370 executes the ST1P 2 bytes, hexadecimal (Store Processor Address) instruction
to determine the processor
address.
The userid of the virtual machine issuing the DIAGNOSE. Reserved for IBM use
8 bytes, EBCDIC
8 bytes, hexadecimal
If V"/370 is executing in a virtual machine, another 24 bytes, or
less, of extended identification data is appended to the first 24 bytes
described above. Up to five nested levels of V!/370 virtual machines are supported by this diagnose instruction resulting in a maximum of 120 bytes of data that can be returned to the virtual machine that initially
issued the diagnose instruction. Upon return, Ry contains its original value less the number of bytes
that were stored. No completion code is returned, and the condition code remains unchanged. 1-50 IBM VM/370 System Logic and Problem Deteraination--Volume 1
Previous Page Next Page