Page of GC20-1807-7 As Updated April 1, 19S1 by TNL GN25-0S29 The DMKDRDMP routine searches the system chain of spool input files for the dump file belonging to th€ user issuing the DIAGNOSE instruction. The first (or next) record from the dump file is provided
to the virtual machine via and the condition code is set to
zero. The dump file is closed via VM/370 console function CLOSE. DIAGNOSE Code X'38' --Read System Symbol Table Execution of DIAGNOSE Code X'3S' causes the routine DMKDRDSY to read the
system table into storage. The register specified as Rx contains the
address of the page buffer to contain the symbol table. DIAGNOSE Code X'3C' --VM/370 Directory
Execution of DIAGNOSE Code X'3C' allows a user to dynamically update the V8/370 directory. The register specified as Rx contains the first 4 bytes of the volume identification. The first two bytes of Ry contain
the last 2 bytes of the volume identification. The routine DKKUDRDS dynamically updates the directory. I DIAGNOSE Code X'48' -- Issue SVC 76 From a Second , Level VM/370 Virtual Machine
A second level VM/370 operating system issues SVC 76 using this DIAGNOSE. SVC 76 handles IIC error recording for virtual operating
systems. For instance, a virtual machine issues SVC 76 to record data
about hardware errors that occur on devices dedicated to it. Rl is the Rx register. The By register is not used in this DIAGNOSE. R1 must contain either of two values: X'04' ind1cates an SVC 76 request from a VM/370 virtual machine X' OS' indicates that a virtual machine issued DIAGNOSE X' 48'
CP checks first for the X'04' value. If it is present, CP sets VMSPMFLG in the virtual machine's VMBLOK to X'04' and processes the SVC 76 request on behalf of the virtual machine.
If R1 contains a X'08' value, CP sets
machine's VMBLOK to X'OS'. It then reflects
virtual machine. The virtual machine then
recording. VMSPMFLG the SVC handles
in the virtual
76 back to the
its own error
For more information on SVC 76 and I/O error recording procedures,
refer to .!M/370 OLTSEP End Be£2!:.sing Guide, GC2Q-1S09. DIAGNOSE Code X'4C' --Generate Accounting
Records for the Virtual User
This code can be issued only ty a user with the account option (ACCT) in
his directory.
Rx contains the virtual address of either a 24-byte parameter list
identifying the "charge to" user, or a variable length data area that is
to be punched into the accounting card. The interpretation of the Part 2. Control Program (CP) 197
Page of GC20-1807-7 As Updated April 1, 1981 by TNL GN25-0829
ad dress is based on a hex adecimal code su pplied in R y. If th e virt ua I address represents a parameter list, it must be doubleword aligned; if
it represents a data area, the area must not cross a page boundary. If
Rx is interpreted as pointing to a parameter list and the value in Rx is
zeros, the accounting card is punched with the identification of the
user issuing the DIAGNOSE instruction.
Ry contains a hexadecimal code interpreted by DMKHVC as Cod,g 0000 0004 0008 OOOC 0010 Rx .12.Qints 12: a parameter list containing only a userid.
a parameter list containing a use rid and account a parameter list containing a userid and distribution
number.
a parameter list containing a userid, account number, and
distribution numter.
a data area containing up to 70 bytes of user information to
be transferred to the accounting card starting in column
9.
Note: If Ry contains X'0010', By cannot be register 15.
Ry+1 contains the length of the data area pointed to by Rx. If Rx
points to a parameter list (By not equal to X'0010'), Ry+l is ignored. DMKHVC checks the VMACCOUN flag in VMPSTAT to verify that the user
has the account option and if not, returns control to the user with a
condition code of one.
If By contains a code of X'0010', DMKHVC performs the following
checks: If the address specified in Bx is negative or greater than the size
of the user's virtual storage, an addressing exception is generated. If the combination of the address in Rx and the length in Ry+1
indicates that the data area crosses a page boundary, a specification
exception is generated. If the value in Ry+l is zero, negative, or greater than 70, a
specification exception is generated.
If both the virtual aodress and the length are valid, DMFREE is
called to obtain storage for an account buffer (ACNTBLOK) which is then
initialized to blanks. The userid of the user issuing the DIAGNOSE instruction is placed in columns 1 through 8 and an accounting card
identification code of "CO" is placed in columns 79 and 80. The user
data pointed to by the address in Rx is moved to the accounting card
starting at column 9 for a length equal to the value in Ry+1. A call to DMKACOQU queues the ACNTBIOR for real output. If a real punch is
available, DMKACOPU is called to punch the card; otherwise, the buffer
is stored in main storage until a punch is free. DMKHVC then returns
control to the user with a condition code of zero.
If By contains other than a X'0010' code, control is passed to DMKCPV to generate the card. passes control to DMKACO to complete the
"charge to" information; either from the User Accounting Block (ACCTBLOK), if a pointer to it exists, or from the user's VKBLOK. DMKCPV then punches the card and passes control back to DMKHVC to
release the storage for the ACCTBIOK, if one exists. DMKHVC then checks
the parameter list address for the following conditions: If zero, control is returned to the user with a condition code of
zero.
198 IBM VM/370 System programmer's Guide
Previous Page Next Page