When a virtual machine .odifies a TIC CCW, it is .odifying a virtual
channel progra.. CP has already translated that channel progra. and is
waiting to execute the real CCWs. The DIAGBOSE instruction, with code X'28', must be issued to inform CP of the change in the virtual channel program, so that CP can .ake the corresponding change to the real CCW before it is executed. In addition, when a BOP CCW is .odified to point
to a new list of CCWs, CP translates the new CCWs. To be sure that the DIAGBOSE instruction is recognized in ti.e to update the real CCW chain, the virtual .achine issuing the DIAGBOSE instruction should have a high favored execution value and a low
dispatching priority value. The CP SET co.mand should be issued: SET FAVORED xx SET PRIORITY nn
where xx has a high nu.eric value and nn has a low nu.eric value. The virtual .achine issuing the DIAGBOSE code X'28' .ust be in the
supervisor mode at the time it issues the DIAGBOS! instruction. When DIAGBOSE code 1'28' is issued, the Rx register contains the
address of the TIC or BOP CCW that was .odified by the virtual .achine.
The Ry register contains the device address in bits 16 through 31 •. Rx and Ry cannot be the sa.e register.. The addresses specified in the Bx register, the new address in the .odified TIC CCW, and the new CCW list
to which the .odified TIC CCW points .ust 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:
ce:O The real channel progra. was successfully .odified; register
15 contains a zero.
cc=l There was probably an error in issuing the DIAGBOSE instruction. Register 15 (R15) contains one of the following
completion codes:
R15=1 The sa.e register was specified for Rx and Ry. R15=2 The device specified by the Ry register vas not found.
R15=3 The address specified by the Rx register vas 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 vas not found.
R15=6 The CCW at the address specified by the Rx register is
not a TIC nor a BOP, or the CCW in the channel progra.
is not a TIC nor a BOP. R15=7 The new address in the .odified TIC CCW is not within
the user's storage space.
R15=8 The new address in the .odified TIC CCW is not
doubleword aligned.
cc=2 The real channel prograa cannot be .odified because a channel
end or device end already occurred. Register 15 contains a 9.
The virtual machine should restart the .odified channel
prograa.
CP Introduction 1-61
== Retuil DASD Star! 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. On return to the issuer of DIAGNOSE '2C':
If code '01' is specified: Register Rx will contain the DASD location (in V8/370 control program internal format) of the start of
the error recording area. Ry contains, in the low-order halfword,
the number of error recording cylinders.
If code '02' is specified: Register Rx will contain the DASD location of the first error record (in CCPD format). The value
actually points to the last frame record written, or record 2 if no
frame records present.
If code '04' is specified: Register Ry will contain a X'02' in the
low-order byte if frame records are present on the error recording
cylinders; 1'00' if no frame records present.
Bote: Codes '02' and '04' may both be specified (code '06') on invoking DIAGNOSE. Both an Rx and Ry value must be specified Code == Read Pag!! of LOGREC Execution of DIAGNOSE code X'30' allows a user with privilege class C,
E, or F to read one page of the system error recording area. The
register specified as Rx contains the DASD location (in V8/370 control program internal format) of the desired record. The Ry register
contains the virtual address of a page-size buffer to receive the data.
The D8KRPAGT routine supplies the page of data. The condition codes
returned are:
Condition
Code
---0----
1
2
3 Successful read, data available
End of cylinder, no data
I/O error
Invalid cylinder, outside recording area Code == SIs!U Duap ..§Rool File
A user with privilege class C or E can read the system spool file by issuing a DIAGBOSE code X'34' instruction. The register specified as Rx contains the virtual address of a page-size buffer to receive the data.
The Ry register, which must not be register 15, contains the virtual
1-62 IBM Y8/370 System Logic and Problem Deteraination--Volume 1
Previous Page Next Page