Use the UCBINFO DEVCOUNT macro to obtain a count of the UCBs for a device class.
The standard form of the DEVCOUNT option of the UCBINFO macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede UCBINFO. |
UCBINFO | |
␢ | One or more blanks must follow UCBINFO. |
DEVCOUNT | |
,COUNT=count addr | count addr: RS-type address or register (2) - (12). |
,GROUP=DEVICELASS | |
,DEVCLASS=ALL | Default: ALL |
,DEVCLASS=CHAR | |
,DEVCLASS=COMM | |
,DEVCLASS=CTC | |
,DEVCLASS=DASD | |
,DEVCLASS=DISP | |
,DEVCLASS=TAPE | |
,DEVCLASS=UREC | |
,GROUP=OTHER | |
,DEVGROUP=PAVBASE | Default: PAVBASE |
,DEVGROUP=PAVALIAS | |
,SUBCHANNELSET=ID | |
,SCHSET=schset | schset RS-type address or register (2) - (12). |
,SCHSET=0 | Default: 0 |
,SUBCHANNELSET=ALL | |
,IOCTOKEN=ioctoken addr | ioctoken addr: RX-type address or register (2) - (12). |
,PLISTVER=IMPLIED_VERSION | |
,PLISTVER=MAX | Default: IMPLIED_VERSION |
,PLISTVER=plistver | plistver: 2 |
,RETCODE=retcode addr | retcode addr: RX-type address or register (2) - (12). |
,RSNCODE=rsncode addr | rsncode addr: RX-type address or register (2) - (12). |
The parameters are explained as follows:
DEVICECLASS indicates that the UCB count is based on device classes.
OTHER indicates that the UCB count is not based on device classes.
If you set the input IOCTOKEN (specified by ioctoken addr) to binary zeros, UCBINFO sets IOCTOKEN to the current I/O configuration token.
If you can tolerate the size change, IBM recommends 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; in this way, MAX ensures that the parameter list does not overwrite nearby storage.
When the UCBINFO DEVCOUNT macro returns control to your program, GPR 15 (or retcode addr, if you coded RETCODE) contains a return code, and GPR 0 (or rsncode addr, if you coded RSNCODE) contains a reason code.
Hexadecimal Return Code | Hexadecimal Reason Code | Meaning and Action |
---|---|---|
00 | None | Meaning: The DEVCOUNT function completed successfully. Action: None. |
08 | 01 | Meaning: Program error. A caller in AR
mode specified an ALET that was not valid. Action: Correct the ALET and reissue 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 | 03 | Meaning: Program error. The UCB address
provided by the caller does not represent a valid UCB. Action: Correct the UCB address and reissue the macro. |
08 | 05 | Meaning: Program error. An error occurred
when the system referenced the caller-supplied area specified in the
IOCTOKEN parameter. This reason code is valid only for callers using
the IOCTOKEN parameter. Action: Correct the IOCTOKEN parameter. |
08 | 0B | Meaning: The value specified on the
SCHSET keyword is not valid. Action: Enter the correct value on the SCHSET keyword. |
0C | None | Meaning: Environmental error. The I/O
configuration token supplied through the IOCTOKEN parameter is not
current. This return code is valid only for callers using the IOCTOKEN
parameter. Action: Obtain the current I/O configuration token by issuing an IOCINFO macro or by setting the input IOCTOKEN parameter in the UCBINFO macro to zero. |
20 | None | Meaning: System error. An unexpected error
occurred. Action: Supply the return code to the appropriate IBM support personnel. |
UCBINFO DEVCOUNT,COUNT=CTAREA,DEVCLASS=DASD, X
RETCODE=INFORTCD,RSNCODE=RSNCD
.
.
.
DS 0D
CTAREA DS F
INFORTCD DS F
RSNCD DS F