Privilege Class: B
Addressing Mode: 24-bit or 31-bit
DIAGNOSE code X'25C' is a privileged function provided
to allow applications access to the data in the CP user directory.
Applications should use the VMUDQ macro to invoke the functions contained
herein. For more information on the VMUDQ macro, refer to VMUDQ – VM User Directory Query.
Entry Values:
- Rx
- contains the address of the parameter list.
- Ax
- is used only in access-register mode in an XC virtual machine.
Ax contains the ALET of the address space containing the parameter
list.
- Ry
- contains the address of the data buffer. Register
0 selects the virtual machine's primary address space.
- Ay
- contains the ALET of the address space.
- Ry+1
- contains the size of the data buffer in bytes.
Exit Values:
- Rx
- is modified to contain the length in bytes of the results of the
query if successful or the number of bytes needed for the query if
the buffer length is not sufficient. Otherwise, it remains unchanged.
- Rx+1
- might or might not be used. See the description of the function
in the Table 1 for details.
- Ry and ARy
- remains unchanged, describing the location of the data buffer.
- Ry+1
- is modified to contain the length in bytes of the results of the
query.
Table 1. DIAGNOSE X'25C' Function List
| Function |
Description and Parameters |
| LSTMDISK |
Creates a list of MDISK definitions
based on, or qualified by, the owners to which they belong, virtual
device number, serial number of the volume, and the SSI member on
which they reside. An asterisk (*) can be used as a trailing
wild card to select a wider group of definitions. The list is built
in the buffer provided by the caller. Input Parameter
List: Consists of six doublewords as shown in the following example: *-------------------------------------------------------------*
0 | Length | ///////// Reserved ///////// |
|-------------------------------------------------------------|
8 | LSTMDISK |
|-------------------------------------------------------------|
16| *|userid|use* |
|-------------------------------------------------------------|
24| *|vdevno|vdev* |
|-------------------------------------------------------------|
32| *|volser|vols* |
|-------------------------------------------------------------|
40| *|systemid|sys* |
*-------------------------------------------------------------*
The
parameter list is a maximum of six doublewords
long. It must be on a doubleword boundary and must not span a page
boundary.
- length
- The length is a fullword containing the length in
bytes of the length field itself, the reserved field, and the parameter
string that follows. The length field must be one of the following
values: 16, 24, 32, 40, or 48.
- LSTMDISK
- is the name of the function to be performed by the DIAGNOSE. The
function must be LSTMDISK.
- * | userid | use*
- selects MDISK definitions that belong to the specified
user IDs. The user ID from a USER or IDENTITY directory statement
can be used. SUBCONFIG IDs cannot be specified. Definitions belonging
to multiple owner ID's are selected by the use of an asterisk (*).
An asterisk (*) by itself indicates that all definitions are to be
analyzed regardless of userid. An asterisk
(*) used as a trailing wild card selects definitions that belong to
a group of userids that begin with the specified
character combination. The value is left-justified in the field and
padded to eight characters with blanks. The default assumed if the
field is blank is an asterisk (*).
- * | vdevno | vdev*
- selects MDISK definitions that are defined to the specified virtual
device numbers. Multiple vdevnos are specified
by the use of the asterisk (*). An asterisk (*) by itself causes all
MDISK definitions to be selected regardless of vdevno.
An asterisk (*) used as a trailing wild card causes selection of MDISK
definitions found on the selected virtual devices where the combined
value indicates a range of addresses beginning with a common value.
A four-digit address is assumed; therefore, 000* would mean 0000 through
000F, and 04* would mean 0400 through 04FF. The value is left-justified
in the field and padded to eight characters with blanks. The default
assumed if the field is blank is an asterisk (*).
|
| LSTMDISK (cont'd.) |
- * | volser | vols*
- selects MDISK definitions that are found on the volume containing
the specified volume serial number. An asterisk (*) can be used as
a trailing wild card to select a range of volsers that
begin with a common set of characters. An asterisk (*) by itself indicates
that the definitions on all the volumes are to be analyzed. The value
is left-justified in the field and padded to eight characters with
blanks. The default assumed if the field is blank is an asterisk (*).
- * | systemid | sys*
- selects MDISK definitions that are found on the specified SSI member system.
An asterisk (*) can be used as a trailing wild card to select a range
of systems that begin with a common set of characters. An asterisk
(*) by itself indicates that the MDISK definitions on all member systems
are to be analyzed. The value is left-justified in the field and padded
to eight characters with blanks. If the field is blank, the default
assumed is blank, indicating that only the MDISK definitions on the
current system are to be analyzed. Specifying a system other than
by an asterisk or a blank is allowed only when an SSI-enabled directory
is in use.
Output Buffer Format: Consists of seven
blank-delimited fields containing the information indicated in the
example below: OWNERID- VDEV VOLSER DEVTYPE- START----- SIZE------ System
12345678 1234 123456 12345678 1234567890 1234567890 12345678
---------+---------+---------+---------+---------+---------+-------
User123 0191 ABC123 3390 0000000010 0000000200
User456 0191 CCC123 FB-512 0000000010 0000200000
User789 0222 CCC222 3380 0000000010 END
UserABC 0223 ABC223 3370 0000000000 0000200000 SYSTEMABC Notes:
- In the above example the
START field can contain either
the starting cylinder or block number. The SIZE field contains
the remaining number of cylinders or blocks. The non-device specific END in
the size field denotes the end of the volume. Also, the header lines
are not part of the returned data.
- If the MDISK was defined with a size of
END , then the size
returned in the output buffer is simply END .
- Temporary disks (T-disks) and virtual disks in storage are ignored
by the LSTMDISK function and are not included in the output buffer.
- If the MDISK is defined within a SUBCONFIG stanza,
the system ID to which the MDISK is restricted is included in the
output buffer. If the MDISK is defined within a user or identity stanza,
then no system ID is specified because the MDISK is not restricted
to a particular system.
|