April 1,1981
The following chart lists the DIAGNOSE Code X'24', the meaning
registers where data is returned cond ition
of each
codes CP can return
condition code, and .-- I , This register
contains information , If the condition
code equals Ry Ry+i2 Comments o x x
2 x x
3 X INormal completion I Undefined IThe virtual device
lexists but is not
lassociated with a Ireal device I Invalid device
laddress or the Ivirtual device Idoes not exist
lThe Ex register contains information only when DIAGNOSE Code X'24' specifies a virtual console whose address in unknown.
2If Ry is register 15, CP returns only virtual device infor­
mation: no information is returned in register Ry+1. DIAGNOSE Code X'28' -- Channel Program
the DIAGNOSE Code X'28' allows a virtual machine to correctly execute some
channel proqrams modified after the Start I/O (SIO) instruction is
issued and before the input/output operation is completed. The channel
command word (CCW) modifications allowed are: A Transfer in Channel (TIC) CCW modified to a No Operation (NOP) CCW A TIC CCW modified to point to a new list of CCis A NOP modified to a TIC CCW When a virtual machine modifies a TIC CCW, it is modifying a virtual
channel proqram. CP has already translated that channel program and is
waiting to execute the real CCws. The DIAGNOSE instruction, with Code X'28', must be issued to inform CP of the change in the virtual channel
program, so that CP can make the corresponding change to the real CCW before it is executed. In addition, when a NOP CCW is modified to point
to a new list of CCWs, CP translates the new CCWs. To be sure that the DIAGNOSE instruction is recognized in time to
update the real CCW chain, the virtual machine issuing the DIAGNOSE instruction should have a high favored execution value and a low
dispatching priority value. The CP SET command should be issued: SET FAVORED xx SET PRIORITY nn
194 IBM VM/370 SYstem Programmer's Guide
Aug 1, 1979
where xx has a high numeric value and nn has a low numeric value. The machine the DIAGNOSE Loue X;28; must be in the
supervisor mode at the time it issues the DIAGNOSE instruction. When DIAGNOSE Code X'28' is issued, the Rx register contains the
address of the TIC or NOP CCW that was modified by the virtual machine.
The Ry register contains the device address in bits 16 through 31. Rx
and Ry cannot be the same register. The addresses specified in the Rx
register, the new address in the modified TIC CCW, and the new CCW list
to which the modified TIC CCW points must all be addresses that appear
real to the virtual machine: CP knows these addresses are virtual, but
the virtual machine thinks they are real.
The condition codes (cc) and completion codes are as follows: cc=O The real channel program was successfully modified; register
15 contains a zero.
cc=1 There was probably an error in issuing the DIAGNOSE instruction. Register 15 (R15) contains one of the following
completion codes:
R15=1 The same register was specified for Rx and Ry.
R15=2 The device specified by the Ry register was not found.
R15=3 The address specified by the Rx register was not within
the user's storage space.
R15=4 The address specified by the Rx register was not
doubleword aligned.
R15=5 A CCW string corresponding to the device (Ry) and
address (Rx) specified was not found.
R15=6 The CCW at the address specified by the Rx register is
not a TIC nor a NOP, or the CCW in the channel program
is not a TIC nor a NOP. R15=7 The new address in the modified TIC CCW is not within
the user's storage space.
R15=8 The new address in the modified TIC CCW is not
doubleword aligned.
cc=2 The real channel program cannot be modified because a channel
end or device end already occurred. Register 15 contains a The virtual machine should restart the modified channel
program. DIAGNOSE Code X'2C' -- Return DASD Start of LOGREC Execution of DIAGNOSE Code X'2C' allows a user with privilege class C, E, or F to find the location on the disk of the error recording area,
the number of error recording cylinders, and the location of the first
error record.
The register specified as Rx contains a one-byte code in the
low-order byte, indicating the function to be performed: X'01' - Return the DASD location of the start of the error recording
area, and the number of error recording cylinders. X'02' - Return the HDRSTART value (DASD location of first error
record) X'04' - Return indication of whether there are frame records on the
error recording cylinders. Part 2. Control Program (CP) 195
Previous Page Next Page