HPlogo MPE/iX Intrinsics Reference Manual > Chapter 8 Command Definitions (HPMERGEEND-LOGSTATUS)

HPVOLINFO

MPE documents

Complete PDF
Table of Contents
Index

Edition 7 E0701 ♥
Edition 7 E0300
Edition 6 E0195

Returns volume information.

Up to six items of information can be retrieved. They must be specified in pairs (itemnum, item) and separated by commas.

Syntax



             I32     I16V             *
  HPVOLINFO (status, volspecifiernum, volspecifier
              I16V     *
            [,itemnum, item] [...]);

Parameters


status

32-bit integer (optional)

Returns the status of the HPVOLINFO call. If no errors or warnings are encountered, status returns 32 bits of zero. If errors or warnings are encountered, status is interpreted as two 16-bit fields.

Bits (0:16) comprise status.info. A negative value indicates an error. A positive value indicates a warning.

Bits (16:16) comprise status.subsys. This value defines the subsystem that set the status information. On MPE/iX the volume management identification number is 163. On MPE V, this field contains a 0 (zero).


NOTE: It is good programming practice to specify status and check its value after the intrinsic call. If you do not specify status and an error condition is encountered, HPVOLINFO causes the calling process to abort.

The error (negative) / warning (positive) values of status.info that can be returned from a call to HPVOLINFO are given here.

Values marked with an asterisk (*) are returned by the MPE/iX version of HPVOLINFO only.

ValueMeaning
0No errors or warnings (successful call).
150Array passed in cannot hold all names--list truncated.
151File label is unreadable.
152*Parts of the set or class are not mounted. Data was gathered on the portion of the set or class that was mounted, so the data may be incomplete.
-150Invalid itemnum.
-151Missing itemnum or item (not paired).
-152Required parameter omitted.
-153Parameter address out of bounds.
-154Split stack calls not allowed.
-155LDEV, volume set/class, volume not mounted.
-156Invalid volume specifier number.
-157Invalid volume specifier.
-158LDEV not a disk LDEV.
-159Device class not configured for volumes.
-160Device class does not map into a volume class.
-161Free space range sizes not in ascending order.
-162Invalid number of free space ranges specified.
-163Volume class cannot be specified with system set.
-164Error while scanning the directory.
-165Volume label is unreadable.
-166Disk free space map is bad.
-167Allocation is disabled for disk free map.
-168Defective tracks table is unreadable.
-169Disk I/O error.
-170Virtual memory is only valid on system volumes.
-171Directory size is not valid for specified volume.
-172Spoolfiles are valid only on system volumes.
-173Item number is valid only on MPE/iX systems.
-174Item number is valid only on MPE V systems.
-175List length specified is invalid.
-176Item number / volume specifier number combination is illegal.
-177Item is not yet implemented.
-178Volume table is in an inconsistent state.
-179Unrecognized drive type.
-180*Physical I/O error.
-181*An unexpected error was detected. Check the error stack to determine the exact error.
-182*An error was detected in the label management subsystem. Check the error stack to determine the exact error.
-183*Disk access error. Check the error stack to determine the exact error.
-184*A mirrored volume that was specified is disabled.
-185*The volume set specified is not a volume set on the system.
-186*The volume class specified is not present in the volume set specified.
-187*The member volume specified is not present in the volume set specified.

volspecifiernum

16-bit signed integer by value (optional)

A 16-bit integer indicating which volume specifier is to be used to obtain information from HPVOLINFO. The default value for volspecifiernum is 0 (zero) if it is not included by the caller. This parameter is used in conjunction with the volspecifier parameter.

The following are the valid volume specifier numbers:

ValueMeaning
0Volume specifier is ignored. Using 0 (zero) is the same as specifying all the volumes on the system.
1Volume specifier is the logical device number of the volume for which information is to be obtained.
2Volume specifier is a volume set name.
3Volume specifier is a volume set/volume class name pair.
4Volume specifier is a volume set/volume name pair.
5Volume specifier is a device class name.

volspecifier

Type varies (optional).

The volspecifier is optional when volspecifiernum is 0 (zero).

However, for a volspecifiernum of 1, 2, 3, 4, or 5, you must specify a volspecifier parameter.

On MPE V, you must declare volspecifier as a byte array.

The data type of the volspecifier depends on the volspecifiernum:

volspecifiernumvolspecifier
0Ignored
116-bit signed integer
2, 3, 4, 5Character array

When 0 (zero) is used as the volspecifiernum, the volspecifier is ignored. A volspecifiernum of 0 (zero) refers to all the volumes on the system. This includes all system and nonsystem volumes.

When 1 is used as the volspecifiernum, the volspecifier must be an LDEV number that corresponds to a configured and mounted volume. An LDEV number can be any number from 1 through 999.

For character specifiers, the first character determines the delimiter character for the parameter. The delimiter must be printable; it cannot be alphanumeric or one of the special characters ". , :" or "_" as explained below. For example, to pass the volume set MVSN1, you may use % as the delimiter:


   %MVSN1%

itemnum

16-bit signed integer by value (optional).

This is the cardinal number of the item desired. It specifies which item value is to be returned. See Item and Itemnum Pairs.

item

Type varies (optional).

On MPE V, the item must be declared as a byte array. The actual type of the item is specified by the corresponding itemnum. See Item and Itemnum Pairs.

Operation Notes


  • For volspecifiernum of 3 or 4, the volume set name and the volume class or volume name must be separated by a colon:

    
       %SET:CLASS%
    
    
    A colon cannot be used as a delimiter.

  • Since a volume set or class can be fully qualified on MPE V, periods are allowed in the name. Because periods and underscores are allowed in an MPE/iX name, these characters cannot be used as delimiters.

  • For volspecifiernum of 2 or 3 on MPE V (private volumes), a volume set/class name may be partially or fully qualified:

    
       VSETNAME.GROUP.ACCT
    
       CLASSNAM.GROUP.ACCT
    
    
    Each field of the name must consist of one to eight alphanumeric characters. The first character must be a letter. The name may have up to 55 characters:
    
       %SETxxxxx.GROUPxxx.ACCOUNTx:CLASSxxx.GROUPxxx.ACCOUNTx%
    
    
    This name has six 8-character fields, four periods, a colon, and two delimiters. When the volume set or class name is not fully qualified, it refers to the volume set or class in the logon group/account.

  • On MPE/iX, a valid volume set or class name may contain as many as 32 characters. The first character must be a letter. The rest may be any combination of alphanumeric characters, including the underscore "_" and the period ".".

  • On MPE/iX, the name of the system volume set is MPEXL_SYSTEM_VOLUME_SET. The system volume set on MPE V does not have a predefined name; thus, the name MPEXL_SYSTEM_VOLUME_SET is used for compatibility with MPE/iX.

    On both systems, this is the volume set name returned for items #3 and #12.

  • When the system volume set name is used on MPE V, it must not be followed by a class name Refer to the discussion for volspecifiernum 5, below)

    On MPE V, group and account names cannot be used to partially or fully qualify the set or volume name when the system volume set name is specified.

  • For volspecifiernum 4 on MPE V, a volume name consists of as many as eight alphanumeric characters. The first character must be a letter. For private volumes, names may be partially or fully qualified (vname.group.acct). Each field of the name must be one to eight alphanumeric characters, the first of which must be a letter. The maximum number of characters allowed is 55.

    
       %SETxxxxx.GROUPxxx.ACCOUNTx:NAMExxxx.GROUPxxx.ACCOUNTx%
    
    
    This name has six 8-character fields, four periods, a colon, and two delimiters.

    When the volume name is not fully qualified, it refers to the volume name in the logon group and/or account.

  • For volspecifiernum 4 on MPE/iX, the volume name consists of any string of one to 16 alphanumeric characters, including the underscore and the period. The first character must be a letter.

  • On MPE V, there is no volume class for the system volume set. In order to access a subset of the system volume set, devices classes are used.

  • On MPE/iX, volume classes exist for both system and nonsystem volume sets. Volume classes take the place of device classes.

  • The volspecifiernum 5, for items #6 and #7, provides compatibility between MPE/iX and MPE V. Specifier 5 passes the device class of a group of volumes as they apply to the I/O configuration. The maximum number of characters allowed in the string is 8. On MPE V, specifier 5 must refer to a device class that is configured to a group of volumes.

  • ON MPE/iX, when a device class name is specified, a configured and mounted volume class with the same name must exist in the system volume set. Data is returned based on this volume class in the system volume set if it exists. Otherwise, an error results.

Special Considerations


  • You do not need special capabilities to use the HPVOLINFO intrinsic.

  • Split-stack calls are illegal.

  • When an error is returned, the values in the item parameters are all undefined. It is not guaranteed that the data returned in an item is meaningful if any negative status value is returned.

  • On MPE V, real values are accepted from the caller and returned to the caller in 64-bit Hewlett-Packard 3000 format. This is the default format for MPE V.

  • On MPE/iX, real values are accepted from the caller and returned to the caller in the format that is the default mode of the caller.

    If the intrinsic is called from compatibility mode, any real values specified to HPVOLINFO must be in 64-bit Hewlett-Packard 3000 format, and any real values returned by HPVOLINFO will be in that format.

    If the intrinsic is called from native mode, any real values specified to HPVOLINFO must be in 64-bit IEEE format, and any real values returned by HPVOLINFO will be returned in that format.

  • If the system is highly active while this intrinsic is called, some of the item values returned may not reflect the expected results. For example, when HPVOLINFO is called to return the disk space used by permanent files, a value is returned. But if immediately after the value is returned, a process on the system purges a file (FCLOSE a file with a disposition of 4), the value does not reflect this difference.

  • ON MPE V, a set or class is considered to be logically mounted if all of its members are logically mounted (that is, the LMOUNT or MOUNT command was used).

  • On MPE/iX, if the volume specifier is a set or class, then at least the master volume must be logically mounted (that is, the volume must be in a master or member state). If the volume specifier is a logical device number, or a volume name, both the volume specified and the master volume (of the set enclosing the volume specified) must be logically mounted.

  • If the volume specifier is a logical device number, it must be a member of a set or class that is logically mounted. If the volume specifier is a volume set name, the set must be logically mounted. If the volume specifier is a volume class name, the class must be logically mounted. If the volume specifier is a volume name, that volume must be a member of a set or class that is logically mounted. When the volume specifier is a device class, all of the logical device numbers in the specified device class must be members of logically mounted sets/classes. All the volumes on the system, whether they are logically mounted or not, may be specified by using volspecifiernum 0 (zero).

  • If the volumes for volspecifiernum 1, 2, 3, 4, 5 are not logically mounted as specified above, the HPVOLINFO intrinsic returns a VOLUME NOT MOUNTED error.

    If the caller chooses to continue with the same specifier, the LMOUNT command (MPE V) or the VSOPEN command MPE/iX can be used with the COMMAND or HPCICOMMAND intrinsic to logically mount the appropriate volume sets or classes.

    If a volume is taken offline while the intrinsic is accessing it, the process hangs until the volume is online again. I/Os cannot complete to the disk when a volume is offline.

  • On MPE/iX, mirrored disks maintain identical copies of the same information on two disks. Consequently, the values returned by this intrinsic reflect information from only one of the volumes in a mirror disk pair. When retrieving an LDEV number (item #13) using a volume name that is associated with a mirrored disk pair, only one of the LDEV numbers of the mirrored pair is returned. Which one is returned is random. Be aware that in this situation, the LDEV number returned may be different across system startups. Later use of the LDEV numbers returned for mirrored disks are guaranteed to provide accurate information for the mirrored volume set.

  • On MPE/iX, if information is requested for the split backup volume set, the information returned is for the split user volume.

    Table 8-1 Information Returned

    Information Returned Item#
    Disk space used by permanent files, in sectors32, 33
    Disk space used by temporary files, in sectors(reserved: 34, 35)
    Drive type8
    File label overhead, in sectors MPE/iX26, 27
    Free space area, largest contiguous, in sectors42, 43
    Free space distribution array36, 37
    Free space distribution, in sectors per range38, 39
    Free space, total, in sectors40, 41
    Logical device number13
    Member volume names, list7
    Member volumes, number of6
    Overhead, directory space, in sectors24, 25
    Overhead, MPE total, in sectors16, 17
    Overhead, transaction management MPE/iX28, 29
    Overhead, transient space, in sectors MPE/iX18, 19
    Sector size, in bytes9
    Spoolfile disk space usage, in sectors30, 31
    Transient space, configured maximum, MPE/iX, in sectors20, 21
    Virtual memory overhead, in sectors MPE V22, 23
    Volume capacity, in sectors14, 15
    Volume class names, list5
    Volume class names, number of4
    Volume name11
    Volume sets, list3
    Volume sets, number of2
    Volume set name12
    Volume type10

Itemnum and Item Pairs


All item parameters are passed by reference.

Table 8-2 Variable Conventions

Convention Meaning
I1616-bit signed integer
I3232-bit signed integer
I6464-bit signed integer
R6464-bit signed real
CACharacter array
I64A64-bit signed integer array
R64A64-bit signed real array

Item# Item Type Applicable Volume Specifiers
2Number of volume setsI320
3List of volume set namesCA0
4Number of volume classnamesI321, 2, 4
5List of volume class namesCA1, 2, 4
6Number of member volumesI322, 3, 5
7List of member volume namesCA2, 3, 5
8Drive typeCA1, 4
9Sector size in bytesI321, 4
10Volume typeI321, 4
11Volume nameCA1
12Volume set nameCA1
13Logical device numberI164
14Volume capacity in sectorsI641, 2, 3, 4
15Volume capacity in sectorsR641, 2, 3, 4
16Total MPE overhead in sectorsI641, 2, 3, 4
17Total MPE overhead in sectorsR641, 2, 3, 4
18MPE/iX transient space overhead in sectorsI641, 2, 3, 4
19MPE/iX transient space overhead in sectorsR641, 2, 3, 4
20Configured maximum MPE/iX transient space in sectorsI64 1, 2, 3, 4
21Configured maximum MPE/iX transient space in sectorsR64 1, 2, 3, 4
22MPE V virtual memory overhead in sectorsI641, 2, 4
23MPE V virtual memory overhead in sectorsR641, 2, 4
24Directory space overhead in sectorsI641, 2, 3, 4
25Directory space overhead in sectorsR641, 2, 3, 4
26MPE/iX file label overhead in sectorsI641, 2, 3, 4
27MPE/iX file label overhead in sectorsR641, 2, 3, 4
28MPE/iX transaction management overheadI641, 2, 3, 4
29MPE/iX transaction management overheadR641, 2, 3, 4
30Spoolfile disk space usage in sectorsI641, 2, 3, 4
31Spoolfile disk space usage in sectorsR641, 2, 3, 4
32Disk space used by permanent files in sectorsI641, 2, 3, 4
33Disk space used by permanent files in sectorsR641, 2, 3, 4
34(Reserved for) Disk space used by temporary files in sectorsI641, 2, 3, 4
35(Reserved for) Disk space used by temporary files in sectorsR641, 2, 3, 4
36Free space distribution arrayI64A1, 2, 3, 4
37Free space distribution arrayR64A1, 2, 3, 4
38Free space distribution sectors per rangeI64A1, 2, 3, 4
39Free space distribution sectors per rangeR64A1, 2, 3, 4
40Total free space in sectorsI641, 2, 3, 4
41Total free space in sectorsR641, 2, 3, 4
42Largest contiguous free space area in sectorsI641, 2, 3, 4
43Largest contiguous free space area in sectorsR641, 2, 3, 4

3kRanger Note:
For items #3,5,7: item is a record described as this C structure.
num_names must contain a non-negative value describing the size of names.
  struct {
    int  num_names;
    char names [num_names][32];
  };

Related Information


Intrinsics HPDEVCONTROL, HPDEVCREATE
Manuals Volume Management Reference Manual




HPUNLOADCMPROCEDURE


INITUSLF