paqe of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829
No completion code is returned, and the condition code remains
unchanged. DIAGNOSE Code X'04' -- Examine Real Storage Execution of a DIAGNOSE Code X'04' allows a user with command 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
examined. 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.
For each address in the list of CP addresses, VM/370 provides a
fullword of data obtained from the specified address in real storage. VK/370 stores this data into the result field identified by the Ry+1
register.
There is a one-to-one correspondence between entries in the list of
addresses and entries in the result field. For example, data obtained
from the address in the first entry of the address list is stored in the
first entry of the result field, data obtained from the second entry of
the address list is stored in the second entry of the result field, and
so forth.
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 paqe.
In the attached processor environment, each processor has a prefix
register to relocate addresses between 0 and 4095 to another page frame
in main storaqe. The prefix register enables each processor to use a
different paqe 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 PSW and the trace table vectors. DIAGNOSE Code X'08' -- Virtual Console Function DIAGNOSE Code X'08' enables a virtual machine running in supervisor
state to issue CP commands. The virtual machine must specify the
command, the command parameters, and whether CP is to return the command
response to the user's terminal or to a buffer. In addition to
returning the command response, CP sets a completion code in the Ry
register and may set a condition code. 18U IBM VM/370 Programmer's Gui1e
Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829 When DIAGNOSE Code X'08' is issued, the Rx and Ry registers must be
set up as follows:
Rx --Rx must point to the character string in virtual storage that
contains the CP commands and parameters. If the character
string contains mUltiple commands, each command and its
associated parameters must be separated from adjacent commands
by the value X'15'. Ry --The high-order byte contains flag bits; the other three bytes
specify, in bytes, the length of the CP commands and
parameters. The maximum allowable length is 132 characters. Set the flag bits as follows. If CP is to reject a password entered
on the same line as a LINK command, set the high-order bit to a value of
one (X'80'). CP rejects passwords only if the installation specified
password suppression during system generation. If CP 1S to return the command response in a buffer, set the second flag bit to a value of one (X'40'). If the Ry reqister contains the value X'OOOOOOOO', the DIAGNOSE Code
acts as a no-operation (NaP) instruction.
If the command response is to be returned in a buffer, Rx and Ry
cannot be consecutive registers nor can either be register 15. In
addition, the Rx+1 and Ry+1 registers must be setup as follows:
Rx+1 --Rx+1 must point to the buffer in virtual storage where CP is
to return the command response.
Ry+1 --Fy+1 must specify, in bytes, the length of the buffer. This
value must not exceed 8192.
If the command response is to be returned in a buffer, CP sets a
condition code and returns information as follows:
condition code 0 -- The request was successful. The Rx+1 register
points to the buffer that contains the command
response. The Ry+1 register specifies the length
of the response.
condition code 1 --The request was unsuccessful. The response does
not fit into the buffer. The Ry+1 register
contains a value that specifies how many bytes of
the response would not fit into the buffer.
If an error is encountered while processing DIAGNOSE Code X'08', CP prints an error message and sets a completion code in the Ry register.
The completion code is the hexadecimal representation of the numeric
portion of the error message. For example, if error message DMKCFM045E is issued, CP sets a completion code of X'002D' which is the hexadecimal
representation of 045. If CP is executing multiple commands and encounters an invalid
command, processinq stops and CP ignores the remaining commands.
Following are two examples X'08'. The first example shows
command. In this example the Note thatih a virtual
address (LRA) instruction must be
$howing how to specify DIAGNOSE Code
how a program-issues the QUERY FILES response is returned to the user's (VSl envitonment, a load real
used to load the Rx register. Part 2. Control Program (CP) 185
Previous Page Next Page