IOSCUINF — Control unit information service

Description

The IOSCUINF macro provides data of the specific control unit according to requests and also gives user the ability to reset high watermark measurements.

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Problem or Supervisor state. Any PSW key.
Dispatchable unit mode: Task or SRB mode
AMODE: 31-bit
ASC mode: Primary
Interrupt status: Enabled or disabled for I/O and external interrupts

Programming requirements

None.

Restrictions

  • Callers cannot hold any locks that prevent the IOSCUINF service from obtaining the IOSYNCH lock.
  • The LINKAGE=BRANCH option is limited to callers that meet all of the following criteria:
    • supervisor state key 0
    • 31-bit addressing mode
    • Primary ASC mode
    • The parameter list resides in fixed or DREF storage
  • No information is returned either by a control unit number specified for the CU keyword or by a token NED specified for the TOKENNED keyword in the CTC device.

Input register information

Before issuing the IOSCUINF macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.

Output register information

The contents of registers 14 through 1 are altered during processing.

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code
1
Used as a work register by the system
2-13
Unchanged
14
Used as a work register by the system
15
Return code

Performance implications

None.

Syntax

The standard form of the IOSCUINF macro is written as follows:

Syntax Description
   
   name name: symbol. Begin name in column 1.
   
One or more blanks must precede IOSCUINF.
   
IOSCUINF  
   
One or more blanks must follow IOSCUINF.
   
[,xlabel] An optional symbol, starting in column 1, that is the name on the IOSCUINF macro invocation. DEFAULT: No name
   
CU=cu cu: The name (RS-type) of a halfword input.
,TOKENNED=tokenned tokenned: RX-type address or register (2) - (12).
,CLASS  
   [,CUCLASS=ALL|TAPE|COMM|DASD|DISP|UREC|CHAR] Default: ALL
,GROUP  
   [,CUGROUP=PAV|HYPERPAV] Default: PAV
Note: Specify only one of the above keywords: CU, TOKENNED, CLASS, or GROUP.
   
,OUTPUT_AREA=output_area output_area: RS-type address or register (2) - (12).
[,RESET_MEASURES] Default: None
Start of change[,PATHINFO]End of change Start of changeDefault: NoneEnd of change
[,LINKAGE=SYSTEM|BRANCH] Default: SYSTEM
   
[,RETCODE=retcode] retcode: RS-type address or register (2) - (12).
[,RSNCODE=rsncode] rsncode: RS-type address or register (2) - (12).
   
[,PLISTVER=plistver|IMPLIED_VERSION] Default: IMPLIED_VERSION
   
[,MF=S] Default: MF=S
[,MF=(L,mfctrl,mfattr, 0D)]  
[,MF=(E,mfctrl,COMPLETE)]  
   

Parameters

In the following set of mutually exclusive keywords, only one keyword must be specified.
CU=cu
The name (RS-type) of a halfword input that contains the number of the physical control unit that the data is to be retrieved from.
TOKENNED=tokenned
The name (RS-type) of a 32-character input of the token NED that is the worldwide-unique identifier for the subsystem to which information is to be returned.
CLASS
Indicates that a control unit class is specified.
CUCLASS=ALL|TAPE|COMM|DASD|DISP|UREC|CHAR
An optional keyword input that specifies a control unit class for which the data is to be retrieved.

Default: ALL.

CUCLASS=ALL
Requests data for all control units in the I/O configuration except for those in the CTC device class.
CUCLASS=TAPE
Requests data for TAPE device class.
CUCLASS=COMM
Requests data for communications device class.
CUCLASS=DASD
Requests data for DASD device class.
CUCLASS=DISP
Requests data for display device class.
CUCLASS=UREC
Requests data for unit record device class.
CUCLASS=CHAR
Requests data for character reader device class.
GROUP
Indicates that a group is specified.
CUGROUP=PAV|HYPERPAV
An optional keyword input that specifies a control unit group for which the data is to be retrieved.

DEFAULT: PAV.

CUGROUP=PAV
Requests data for parallel access volume (PAV) control units.
CUGROUP=HYPERPAV
Requests data for hyper parallel access volume (HYPERPAV) control units.
End of the mutually exclusive keywords.
OUTPUT_AREA=output_area
A required pointer output that contains the address of the requested data. The data is mapped by IOSDCUIN. The OUTPUT_AREA is obtained by the service and must be released by the caller.

To code: Specify the RS-type address of a fullword field, or register (2) - (12) (ASM only).

RESET_MEASURES
Indicates that the high watermarks are to be reset for those control units that the data was collected for.

DEFAULT: NONE.

Start of changePATHINFOEnd of change
Start of changeIndicates that path information is to be returned for the control units for which data was collected. The path information includes the CU number, the interface id, the tag, the CHPID, the link address, and the WWPN for each path attached to the control unit.

DEFAULT: NONE.

End of change
LINKAGE=SYSTEM|BRANCH
An optional keyword input that indicates whether a program call is issued or a branch-entry linkage is generated for the routine invocation.

DEFAULT: SYSTEM.

LINKAGE=SYSTEM
Requests program call invocation.
LINKAGE=BRANCH
Requests branch-entry invocation. See Restrictions for the restrictions on branch-entry invocation.
,RETCODE=retcode
An optional output parameter into which the return code is to be copied from GPR 15.

To code: Specify the RS-type address of a fullword field, or register (2) - (12) (ASM only).

,RSNCODE=rsncode
An optional output parameter into which the reason code is to be copied from GPR 0.

To code: Specify the RS-type address of a fullword field, or address in register (2) - (12) (ASM only).

,PLISTVER=plistver|IMPLIED_VERSION
An optional byte input decimal value in the "1-1" range that specifies the macro version. PLISTVER is the only parameter allowed on the list form of MF. This parameter determines which parameter list the system generates. PLISTVER is an optional input parameter on all forms of the macro, including the list form. When using PLISTVER, specify it on all macro forms used for a request and with the same value on all of the macro forms. The values can be:
  • IMPLIED_VERSION, which is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default.
  • MAX, if you want the parameter list to be the largest size currently possible. This size might grow from release to release and affect the amount of storage that your program needs.

    If you can tolerate the size change, IBM® suggests that you always specify PLISTVER=MAX on the list form of the macro. Specifying MAX ensures that the list-form parameter list is always long enough to hold all the parameters you might specify on the execute form, when both are assembled with the same level of the system. In this way, MAX ensures that the parameter list does not overwrite nearby storage.

  • 1, if you use the currently available parameters.
To code: Specify one of the following:
  • IMPLIED_VERSION
  • MAX
  • 1
,MF=S
,MF=(L,list addr)
,MF=(L,list addr,attr )
,MF=(L,list addr,0D )
,MF=(E,list addr)
MF=(E,list addr,COMPLETE
An optional keyword input that specifies the macro form.

Use MF=S to specify the standard form of the macro, which builds an inline parameter list and generates the macro invocation to transfer control to the servIice. MF=S is the default.

Use MF=L to specify the list form of the macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. Only the PLISTVER parameter may be coded with the list form of the macro.

Use MF=E to specify the execute form of the macro. Use the execute form together with the list form of the macro for applications that require reentrant code. The execute form of the macro stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.

,list addr
The name of a storage area to contain the parameters. For MF=S and MF=E, this can be an RS-type address or an address in register (1) - (12).
,attr
An optional 1- 60-character input string that you use to force boundary alignment of the parameter list. Use a value of 0F to force the parameter list to a word boundary, or 0D to force the parameter list to a doubleword boundary. If you do not code attr, the system provides a value of 0D.
,COMPLETE
Specifies that the system is to check for required parameters and supply defaults for omitted optional parameters.

ABEND codes

None.

Return and reason codes

The following table contains hexadecimal return and reason codes, the equate symbols associated with each reason code, and the meaning for each return and reason code.

Table 1. Return and Reason Codes for the IOSCUINF Macro
Return Code Reason Code Meaning and Action
00 None

Explanation: IOSCUINF request successful.

04 None

Explanation: Find no control units that match the requested criteria.

08 xxxx0001

Explanation: Can not use this service in AR ASC mode.

Note: The OUTPUT_AREA was not returned by the service and should not be released by the caller.
08 xxxx0002

Explanation: The selection code is not valid.

Note: The OUTPUT_AREA was not returned by the service and should not be released by the caller.
20 None

Explanation: An unexpected error occurred.

Note: The OUTPUT_AREA was not returned by the service and should not be released by the caller.