Execution of a DIAGNOSE code X'04' allows a user with command privilege
class C or E to examine real storage. The register specified as Rx
contains the virtual address of a list of CP (real) addresses to be examineda The Ry register contains the count of entries in the list.
Ry+1 contains the virtual address of the result field. The result field
contains the values retrieved from the specified real locations.
Note: The request and result tables must be in the same page of virtual
storage, and that page must be resident in real storage, at the time the DIAGNOSE is executed. This is guaranteed if the instruction itself is
also in the same page. In the attached processor environment, each processor has a prefix
register to relocate addresses between 0 and 4095 to another page frame in main storage. The prefix register enables each processor to use a
different page frame in order to avoid conflict with the other processor
for such activity as interrupt code recording. Thus, the range 0 through 4095 refers to different areas of storage, depending upon which
processor generates the address.
All references to main storage from either processor are handled as
if they were made on the main processor. Existing user programs remain
valid for performance data; in the attached processor environment, they
receive the statistics for the main processor.
References to the PSA of the attached processor may be made as
follows: first, retrieve the value of PREFIXB, the value of the prefix
register for the other processor (the attached processor in this case).
Next, specify addresses that are the sum of the value of PREFIXB and the PSA displacement. References to 0 through 4095 are made by summing the
value of PREFIXA and the PSA displacement to form the request address. Several system values that are processor independent are maintained in 0 through 4095, such as the restart PSi and the trace table vectors.
The execution of DIAGNOSE code X'OS' allows a program executing in
supervisor mode in a virtual machine to perform a CP com.and. The
register specified as Rx contains the address, in virtual storage, of the data area defining the CP command and parameters. The Ry register
contains flags in the high-order byte,-and contains the command length
(up to 132 characters) in the three low-order bytes. If the first bit
of the high-order bytes is on (X'SO'), it indicates that the virtual machine issuing the DIAGNOSE code X'OS' instruction wants CP to reject
passwords from the terminal for AUTOLOG and LINK commands. This will be
done only if the installation has elected to use the password
suppression facility (PSUPRS=YES parameter of the SYSJRL macro in DI!KSYS) • If the second bit of the high-order byte is on (X'40'), it indicates
that the virtual machine issuing the CP command requires the response to
that command to be returned to the virtual storage area specified by register Rx+1. The length of this area must be passed in register Ry+1.
The following example illustrates how DIAGNOSE code X'OS' would be
issued to perform the CP command, QUERY, to determine the number of
input and output spool files: CP Introduction 1-51
LA 6,C!!D LA 10,C!!DL DC X'83',X'61',XL2'OOOS' C!!D DC C!!DL EQU C'QUEBY FILES' *-C!!D If the high-order byte of the Ry register is an X'40', the output of
the command is returned to the user's virtual storage area; otherwise,
it is at the user's terminal. A completion code is returned to the user
as a value in the register specified as By. In the exaaple above, it
would be register 10. A completion code of 0 signifies noraal
coapletion. If there is an error, the coapletion code is the binary
value of the nuaeric portion of the error aessage. For instance, the
error message D!KCF!045E userid NOT LOGGED ON returns "045" in the By register. The condition code reaains unchanged.
If a CP coamand is to be executed, the instruction acts as a no-ope If
Ry contains a zero, CP is entered. The BEGIN coamand then returns
control to your prograa.
The user can have the response returned in a buffer rather than to his
console. He is entirely responsible for setting up the buffer,
providing the buffer address, and exaaining and processing the returned
response (contents of the buffer). To have the response returned in the
buffer, the user sets up registers as follows: Rx contains the virtual address of the CP console functions command and paraaeters. Rx.1 contains the virtual address of the buffer to receive the
response.
Ry contains the length of the CP console function coaaand (up to
132 characters) with an X'40' in the high-order byte.
Ry+1 contains the length of the response buffer (a positive nuaber
not greater than 8192).
Neither Rx nor By can be register 15; Bx and Ry cannot be consecutive
registers. When returned in a buffer, the DIAGNOSE code X'08' output will also have
the following successful or unsuccessful conditions set: I • I If the response fits into the user's buffer, the condition
set to zero and the number of response characters returned
user's buffer is returned in By.1. code is
in the I I. If the response does not fit in the user'S buffer, the condition code I is set to one, and the aaount of overflow (number of response bytes I that would not fit in the user's buffer) is returned in register I By.1. 1-52 IBM VM/370 System Logic and Problem Deteraination--Voluae 1
Previous Page Next Page