Description

Use the IOCINFO macro to obtain the following I/O configuration information:

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Problem state, with any PSW key.
Dispatchable unit mode: Task or SRB
Cross memory mode: Any PASN, any HASN, any SASN
AMODE: 24- or 31- bit
ASC mode: Primary or access register (AR)
Interrupt Status: Enabled or disabled for I/O and external interrupts
Locks: The caller may hold locks, but is not required to hold any
Control parameters: Must be in the primary address space or be in an address/data space that is addressable through a public entry on the caller's dispatchable unit access list (DU-AL).

Programming requirements

If in AR mode, specify SYSSTATE ASCENV=AR before invoking the macro.

Restrictions

None.

Input register information

Before issuing the IOCINFO 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

When control returns to the caller, the general purpose registers (GPRs) contain:
Register
Contents
0
Reason code if GPR 15 contains a return code of 08; otherwise, used as a work register by the system
1
Used as a work register by the system
2-13
Unchanged
14
Used as a work register by the system
15
Return code
When control returns to the caller, the access registers (ARs) contain:
Register
Contents
0-1
Used as work registers by the system
2-13
Unchanged
14-15
Used as work registers by the system

Performance implications

None.

Syntax

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

Syntax Description
   
   name name: symbol. Begin name in column 1.
   
One or more blanks must precede IOCINFO.
   
IOCINFO  
   
One or more blanks must follow IOCINFO.
   
    IOCTOKEN=ioctoken addr ioctoken addr: RX-type address or register (2) - (12).
   
    ,DCMINFO=xdcminfo xdcminfo: RS-type address or register (2) - (12).
   
    ,CSSID=cssid addr cssid addr: RX-type address or register (2) - (12).
   
    ,MAXMBI=maxmbi addr maxmbi addr: RS-type address or register (2) - (12).
   
    ,IOFACILITIES=iofc addr iofc addr: RX-type address or register (2) - (12).
   
    ,IODFINFO=xiodfinfo xiodfinfo: RS-type address or register (2) - (12).
   
    ,RETCODE=retcode addr retcode addr: RX-type address or register (2) - (12).
   
    ,RSNCODE=rsncode addr rsncode addr: RX-type address or register (2) - (12).
   
    ,PLISTVER=xplistver  
   ,PLISTVER=IMPLIED_VERSION Default: IMPLIED_VERSION
   

Parameters

The parameters are explained as follows:

IOCTOKEN=ioctoken addr
Specifies the address of a 48-character area where the system returns the current MVS I/O configuration token.
,DCMINFO=xdcminfo
Specifies the address of an optional 32 character output area into which IOCINFO is to return Dynamic Channel Path Management (DCM) information which can be mapped by IOSDDCMI.
,CSSID=cssid addr
Specifies the address of a one byte output area where the system returns the default channel subsystem ID for the logical partition.
  • A return code of X'00', reason code of X'00' indicates that the program is running on a processor that supports multiple channel subsystems.
  • A return code of X'00', reason code X'01' indicates that the program is running on a processor that does not support multiple channel subsystems, and the CSS ID assigned is a zero.
,MAXMBI=maxmbi addr
Specifies the address of a halfword field where the system returns the maximum device measurement block index that is currently assigned.
,IOFACILITIES=iofc addr
Specifies the address of a required 256-byte output area into which the IOCINFO service returns the I/O facility information. This area is mapped by mapping macro IOSDIOFC.
,IODFINFO=xiodfinfo
Specifies the address of an optional 128 character output area into which IOCINFO is to return IODF information which is mapped by IOSDIODI.
,RETCODE=retcode addr
Specifies the fullword location where the system is to store the return code. The return code is also in GPR 15.
,RSNCODE=rsncode addr
Specifies the fullword location where the system is to store the reason code. The reason code is also in GPR 0.
,PLISTVER=xplistver
,PLISTVER=IMPLIED_VERSION
An optional byte input decimal value (with a value of 1) that specifies the macro version. PLISTVER is the only key allowed on the list form of MF and determines which parameter list is generated. Note that MAX may be specified instead of a number, and the parameter list will be of the largest size currently supported. This size may grow from release to release (thus possibly affecting the amount of storage needed by your program). If your program can tolerate this, IBM recommends that you always specify MAX when creating the list form parameter list as that will ensure that the list form parameter list is always long enough to hold whatever parameters might be specified on the execute form.

The default is IMPLIED_VERSION. When PLISTVER is omitted, the default is the lowest version which allows all of the parameters specified on the invocation to be processed.

ABEND codes

None.

Return and reason codes

When the system returns control to the caller, GPR 15 (and retcode addr, if you coded RETCODE) contains the return code. For return code X'08', the reason code is in GPR 0 (and rsncode addr, if you coded RSNCODE).

Hexadecimal Return Code Hexadecimal Reason Code Meaning and Action
00   Meaning: Successful completion.

Action: None.

00 00 Meaning: Successful completion from a CSSID parameter request. The program is running on a processor that supports multiple channel subsystems.

Action: None.

00 01 Meaning: Successful completion from a CSSID parameter request. The program is running on a processor that does not support multiple channel subsystems and the CSS ID assigned is a zero.

Action: None.

08 01 Meaning: Program error. An ALET in the parameter list is not valid. The caller might have inadvertently written over an area in the parameter list.

Action: Check to see if your program inadvertently overlaid the parameter list generated by the macro.

08 02 Meaning: Program error. The system could not access the caller's parameter list.

Action: Check to see if your program inadvertently overlaid the parameter list generated by the macro.

08 05 Meaning: Program error. An error occurred when the system referenced the user-supplied area specified in the IOCTOKEN parameter.

Action: Check to see if your program correctly specified the IOCTOKEN area.

08 09 Meaning: System error. This reason code is for IBM diagnostic purposes only.

Action: Record the reason code and supply it to the appropriate IBM support personnel.

08 0F Meaning: An error occurred referencing the user-supplied area that is specified in the IOFACILITIES parameter.

Action: Check to see if your program correctly specified the IOFACILITIES area.

20   Meaning: System error. This return code is for IBM diagnostic purposes only.

Action: Record the return code and supply it to the appropriate IBM support personnel.

24 07 Meaning: Program error. The system does not support the specified parameter.

Action: Check the parameters on the IOCINFO macro to make sure they are valid on your release of the system.