DASD calculation services return, reason, and status codes

DASD calculation 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 DASD calculation services has completed successfully; in this case register 0 contains reason code 0. A nonzero return code indicates an error condition.

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

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

Table 1. Nonzero Return Codes and Applicable Reason and Status Codes
Return Code Description
4 (X'04') At least one data set information request had a nonzero status code.
Reason Code:
Register 0 contains the number of the first data set information request whose status code was nonzero.
The possible values of the status code are listed in hexadecimal below:
X'00'
Completed processing of request without error.
X'04'
Invalid return code or value received from precalculation exit (IGBDCSX1); processing continues with DCS defaults.
X'08'
Invalid return code or value received from postcalculation exit (IGBDCSX2); processing continues with DCS defaults.
X'0C'
Both installation exits passed invalid data to DCS; processing continues with DCS defaults.
X'10'
Called routine TRKCALC returned with error for this data set request.
X'14'
Insufficient information supplied for a data set information request. No calculations performed.
X'18'
DSCB list is invalid.
X'1C'
Data set is a storage index. No calculations performed.
X'28'
No DSCB list is supplied for a data set space request.
16 (X'10') Return area provided is too small. DCS checks the size of the return area before processing and determines if it is large enough to contain the requested output. No processing is performed.
Reason Code:
Register 0 contains the size of the return area required.
20 (X'14') Caller provided an invalid value in the parameter list. No processing is performed.
Reason Code:
The user error is identified by the following hexadecimal values in register 0:
X'00'
Size of parameter list is invalid.
X'04'
Parameter list is not owned by the caller.
X'08'
Device specification is invalid.
X'0C'
RTNAREA is not specified (address is zero).
X'10'
RTNAREA is not owned by caller.
X'14'
PDAREA is not specified (address is zero).
X'18'
PDAREA is not owned by caller.
X'1C'
PDAREA is too small.
X'20'
DCSDS table is not owned by caller.
X'24'
No requests are specified.
X'28'
Parameter list level is invalid.
28 (X'1C') Abend is detected with RETRY parameter specified. See the PDA for more error information.
32 (X'20') Storage is unavailable.
Reason Code:
Register 0 contains the return code from the GETMAIN routine.
40 (X'28') Error is encountered in call to DIS.
Reason Code:
Register 0 contains the DIS return code.
44 (X'2C') Error is encountered in call to TRKCALC for a globally used value (for example, not data set specific).
Reason Code:
Register 0 contains the TRKCALC return code.