Device information services return, reason, and response codes

Device information services passes a return code and a reason code to the caller in registers 15 and 0 respectively. Return code 0 in register 15 indicates that device information services has completed successfully; in this case register 0 contains reason code 0. A nonzero return code indicates an error condition that caused termination before processing was complete.

As cited in the following table, a response code may be associated with a nonzero return code. The response code is passed back in an information return area pointed to by the device information services parameter list. This field is not normally accessible to you, because the call to device information services is normally by an internal system call.

Table 1 describes nonzero return codes and their reason codes and response codes if applicable.

Table 1. Nonzero Return Codes and Applicable Reason and Response Codes
Return Code Description
4 (X'04') Request was completed, but one or more entries in the return area contain a nonzero response code.
Reason Code:
Register 0 contains the address of the first entry containing a nonzero response code.

The following values are the possible values of the response code:

X'01'
Volume serials on device are requested, but device is not tape or DASD.
X'02'
Volume attributes of device are requested, but device is not tape or DASD.
X'04'
Device name is requested, but IEFEB4UV cannot find the corresponding look-up value in the EDT.
X'08'
Tracks or cylinders are requested, but device is not DASD.
Note: These response codes are bit-oriented. A combination of bits indicate multiple errors.
8 (X'08') Request could not be completed with the return area provided. A RESUME may be used to continue from the last completed UCB.
Reason Code:
Register 0 contains a resume value.
12 (X'0C') Request could not be completed with the return area provided and one or more entries in the return area contain a nonzero response code. A RESUME may be used to continue from the last completed UCB.
Reason Code:
Register 0 contains a resume value.
16 (X'10') Caller provided an invalid parameter in the parameter list.
Reason Code:
The user error is identified by the following hexadecimal
X'04'
Storage for the parameter list is not owned by the caller.
X'08'
Size of the parameter list is invalid.
X'0C'
Storage for the return area is not provided or is not owned by the caller.
X'10'
Storage for the volume serial list is not owned by the caller.
X'14'
Storage for the device number list is not owned by the caller.
X'18'
Storage for the PDA is not provided, is not owned by the caller, or is too small.
X'1C'
Storage for the return area is too small to contain at least a header and one entry.
X'20'
A bad resume code was passed.
X'24'
No matches: search arguments given are too restrictive.
X'28'
No requests are specified.
X'2C'
Parameter list level is invalid.
X'30'
Conflicting feature request.
X'34'
Device number passed is invalid.
X'38'
Device number range passed is invalid.
X'3C'
A release call was made, but there was no storage to free.
20 (X'14') An internal or system error is encountered. Register 0 contains more specific information about the error.
Reason Code:
The user error is identified by the following hexadecimal values in register 0:
X'04'
The JESCT pointer to the EDT is zero.
X'08'
The service level of device information services cannot coexist with that of the EDT.
24 (X'18') An error return code was received from common filter service.
Reason Code:
Register 0 contains the return code from common filter service.
28 (X'1C') An abend has occurred.
Reason Code:
Register 0 contains the abend code provided by RTM.
32 (X'20') A nonzero return code is returned from IEFEB4UV.
Reason Code:
Register 0 contains the IEFEB4UV return code.
36 (X'24') An error is found in call to DEVTYPE.
Reason Code:
Register 0 contains the return code from DEVTYPE.