The IOSSPOF macro is used to check for I/O configuration redundancy of DASD devices or pairs of DASD devices. To do this IOSSPOF verifies that there are redundant hardware components such that given failure of a hardware component the availability of the device would be unaffected.
The requirements for the caller of IOSSPOF are:
Environmental factor | Requirement |
---|---|
Dispatchable unit mode: | Task mode. |
Minimum authorization: | Problem state. Any PSW key. |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | 31-bit or 64-bit If in AMODE 64, specify SYSSTATE AMODE64=YES before invoking this macro. |
ASC mode: | Primary |
Interrupt status: | The caller must be enabled for I/O and external interrupts. |
Locks: | The caller may not hold any locks. |
Control parameters: | Control parameters must be in the primary address space. |
None.
None.
Before issuing the IOSSPOF macro, the caller does not have to place any information into any general purpose register (GPR) or access register (AR) unless using it in register notation for a particular parameter, or using it as a base register.
Some callers depend on register contents remaining the same before and after issuing a service. If the system changes the contents of registers on which the caller depends, the caller must save them before issuing the service, and restore them after the system returns control.
None.
The standard form of the IOSSPOF macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IOSSPOF. |
IOSSPOF | |
␢ | One or more blanks must follow IOSSPOF. |
[,xlabel] | An optional symbol, starting in column 1, that
is the name on the IOSSPOF macro invocation. The name must conform
to the rules for an ordinary assembler language symbol. DEFAULT: No name. |
PERFORM_CHECK | |
,DEVN1=xdevn1 | xdevn1: RS-type address or register (2) - (12). |
[,SCHSET1=xschset1] | xschset1: RS-type address or register (2) - (12). |
[,DSN1=xdsn1] | xdsn1: RS-type address or register (2) - (12). |
[,DEVN2=xdevn2] | xdevn2: RS-type address or register (2) - (12). |
[,SCHSET2=xschset2] | xschset2: RS-type address or register (2) - (12). |
[,DSN2=xdsn2] | xdsn2: RS-type address or register (2) - (12). |
,VOLSER1=xvolser1 | xvolser1: RS-type address or register (2) - (12). |
[,DSN1=xdsn1] | xdsn1: RS-type address or register (2) - (12). |
[,VOLSER2=xvolser2] | xvolser2: RS-type address or register (2) - (12). |
[,DSN2=xdsn2] | xdsn2: RS-type address or register (2) - (12). |
,DEVLIST=xdevlist | xdevlist: RS-type address or register (2) - (12). |
,DEVCOUNT=xdevcount | xdevcount: RS-type address or register (2) - (12). |
[,DSNLIST=xdsnlist] | xdsnlist: RS-type address or register (2) - (12). |
,VOLLIST=xvollist | xvollist: RS-type address or register (2) - (12). |
,VOLCOUNT=xvolcount | xvolcount: RS-type address or register (2) - (12). |
[,DSNLIST=xdsnlist] | xdsnlist: RS-type address or register (2) - (12). |
[,SPOFAREA=xspofarea] | xspofarea: RS-type address or register (2) - (12). |
[,HCMSG=NO] | Default: NO |
[,HCMSG=YES] | |
[HANDLE=xhandle] | xvolser2: RS-type address or register (2) - (12). |
[,WTO=NO] | Default: NO |
[,WTO=YES] | |
[,IND_CHECKS=YES] | Default: YES |
[,IND_CHECKS=NO] | |
[,IND_CHECKS=ONLY] | |
[,SWITCH_CHECKS=YES] | Default: YES |
[,SWITCH_CHECKS=NO] | |
[,CU_CHECKS=YES] | Default: YES |
[,CU_CHECKS=NO] | |
[,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,xmfctrl,xmfattr, 0D)] | |
[,MF=(M,xmfctrl,COMPLETE|NOCHECK)] | |
[,MF=(E,xmfctrl,COMPLETE|NOCHECK)] | |
The parameters are explained as follows:
Default: 0 (Subchannel set zero).
Default: * No dataset will be displayed in any outputed messages.
Default: * Pair checking will not be done.
Default: 0 (Subchannel set zero).
Default: * No dataset will be displayed in any outputed messages.
Default: *
Default: *
Default: *
Default: *
Default: *
Default: NO.
Default: NO
Default: * Health checker messages will be issued as a REMOTE=NO call.
Default: YES.
Default: YES.
Default: YES.
Default: 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.
Default: S.
Default: COMPLETE.
Default: COMPLETE.
None.
Return codes, in hexadecimal, from the IOSSPOF macro are as follows:
Hexadecimal Return Code | Equate Symbol Meaning and Action |
---|---|
00 | Equate Symbol: SPOF_RC_Ok Meaning: No single points of failure detected. Action: None. |
04 | Equate Symbol: SPOF_RC_SomeChecksFailed Meaning: The service couldn't perform all checks specified, but no single points of failure were detected. Action: Some checks may fail due to switch devices not being online at the time of the check. All switch devices must be online to determine if control unit interfaces are single point of failure free. |
08 | Equate Symbol: SPOF_RC_SPOFFound Meaning: Single points of failure were detected. Action: Refer to IOSPFxxxI message for action.
|
0C | Equate Symbol: SPOF_RC_ProgramError Meaning: Program error. Action: None.
|
10 | Equate Symbol: SPOF_RC_EnvironError Meaning: Environmental error. Action: None.
|
20 | Equate Symbol: SPOF_RC_SystemError Meaning: System error. Action: None. |
Macro IOSDSPOF provides equate symbols for the return and reason codes.
Hexadecimal Return Code | Hexadecimal Reason Code | Meaning |
---|---|---|
00 | 00 | Always set. |
04 | 00 | Always set. |
08 | 00 | Single points of failure were detected, all devices are found. |
08 | 01 | Single points of failure were detected, and one or more of the devices specified are not found. |
0C | 01 | Incorrect parameter list version. |
0C | 02 | The number of devices specified through the DEVCOUNT parameter or volume serial numbers specified through the VOLCOUNT parameter is incorrect. |
0C | 03 | The caller is in an improper mode when invoked. |
0C | 04 | A device in the device list does not match the format '000sdddd' where '000s' is subchannel set and 'dddd' is the device number. |
0C | 05 | Abend accessing parameter list. |
10 | 01 | The IOSSPOF service is not available at this time. |
10 | 02 | The Health Checker service is not available at this time. |
20 | 00 | Always set. |