IEFDDSRV — DD service

Description

Use the IEFDDSRV macro to obtain or modify DD-related information to its caller. The IEFDDSRV service currently performs the following functions:
RETRIEVE DEVENTRY
Returns the unit control block (UCB) addresses of the devices allocated to the input DD request. For DDs that are allocated with the NOCAPTURE option, the addresses of the actual UCBs are returned; otherwise, the addresses of the captured UCBs are returned for above 16MB devices, and the addresses of the actual UCBs are returned for below 16MB devices.
EXTRACT TYPE=DEVIOENTRY
Returns the UCB addresses and selected I/O information of the devices allocated to the input DD request. Regardless of options specified on the allocation request, the 31-bit addresses of the actual UCBs are returned for all devices.
MODIFY TYPE=FEATURE
Sets the allocation feature according to the input specification. This function only affects future allocation requests, and does not affect existing batch and dynamic allocations that are initiated before the MODIFY FEATURE request.
MODIFY TYPE=ALLOCATION
Updates an outstanding DD allocation in all of the associated allocation and scheduler component control blocks, such as the TIOT, SIOT, and so on.

Environment

The requirements for the caller are:

Environmental factor Requirement
Minimum authorization: Problem or Supervisor state and any PSW key
Dispatchable unit mode: Task
Cross memory mode: PASN=HASN=SASN for MODIFY TYPE=ALLOCATION. For all other functions, any PASN, any HASN, any SASN.
AMODE: 24- or 31-bit
ASC mode: Primary or Access register (AR)
Interrupt status: Enabled for I/O and external interrupts.
Locks:
  • For RETRIEVE DEVENTRY and EXTRACT TYPE=DEVIOENTRY:

    Authorized callers may hold the local lock.

    Non-authorized callers cannot hold any locks.

  • For MODIFY:

    No locks may be held.

Control parameters: Control parameters must be in the primary address space.

Programming requirements

  • For RETRIEVE DEVENTRY and EXTRACT TYPE=DEVIOENTRY:
    If your program is authorized, there are certain situations when your program must provide or inherit serialization on the SYSZTIOT resource before using UCB addresses that are returned from the IEFDDSRV macro. The situations are one of the following:
    • You code the DDNAME parameter.
    • You code the DSABPTR parameter and your program does not have a DCB or ACB that has been open to the DD name since your program got the DSAB address.

    If an authorized caller supplies the address of a DCB or ACB, this serialization is not necessary, and the returned UCB information remains valid until the DCB or ACB is closed. This serialization is also not necessary if your program codes DSABPTR and has a DCB or ACB that has been open since the program got the DSAB address.

    For unauthorized callers, this service ensures that the TIOT resource is properly serialized during its execution.

    For more information, see "Serialization of Resources" under "Programming considerations for using the DYNALLOC macro" in z/OS MVS Programming: Authorized Assembler Services Guide.

  • For MODIFY ALLOCATION and MODIFY FEATURE:

    An authorized caller may hold exclusive serialization on the SYSZTIOT resource. If not provided, the IEFDDSRV service obtains and holds the resource while performing the requested function, and releases it before returning to the caller. Authorized callers holding SYSZTIOT shared will be failed with return code 12, reason 12 (DDSRV_TIOTENQ_FAIL).

    For unauthorized callers, the IEFDDSRV service obtains and releases the necessary SYSZTIOT serialization on behalf of the caller. For more information, see "Serialization of Resources" under "Programming considerations for using the DYNALLOC macro" in z/OS MVS Programming: Authorized Assembler Services Guide.

Restrictions

In cross-memory mode:
  • For RETRIEVE DEVENTRY, EXTRACT TYPE=DEVIOENTRY and MODIFY TYPE=FEATURE:

    When running in cross-memory mode, the DSAB/TIOT information is obtained from the user's home address space.

  • For MODIFY TYPE=ALLOCATION:

    Cross-memory mode is not supported.

Using the returned UCBs:
  • For RETRIEVE DEVENTRY:

    The user must ensure that the UCBs are not dynamically deleted.

    The returned UCB addresses may be either 31-bit accessible actual UCB addresses or 24-bit accessible actual or captured UCB addresses. A captured UCB address is only valid in the address space in which it is originally allocated. The returned UCB addresses are only valid if the devices remain allocated after the execution of the DD service.

    In some cases, this service may not return a device UCB, but instead may return a zero UCB address or the address of a dummy UCB. This may occur for DDs that represent DD DUMMY requests, VIO data sets, SYSOUT data sets, in-stream data sets, and some SMS-managed data sets. A dummy UCB can be identified using the UCBDUMMY field in the UCB. A dummy UCB may not have all of the UCB segments that a device UCB may have and not all services that are used for processing device UCBs may support dummy UCBs.

  • For EXTRACT TYPE=DEVIOENTRY:

    The user must ensure that the UCBs are not dynamically deleted.

    The returned UCB addresses are always uncaptured UCB addresses and remain valid unless the UCBs are dynamically deleted.

    In some cases, this service may not return a device UCB, but instead may return a zero UCB address or the address of a dummy UCB. This may occur for DDs that represent DD DUMMY requests, VIO data sets, SYSOUT data sets, in-stream data sets, and some SMS-managed data sets. A dummy UCB can be identified using the UCBDUMMY field in the UCB. A dummy UCB may not have all of the UCB segments that a device UCB may have and not all services that are used for processing device UCBs may support dummy UCBs.

  • This macro supports multiple versions. Some keywords are unique to certain versions. See the PLISTVER parameter description.

Input register information

There are no input register requirements for issuing the IEFDDSRV macro.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code
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 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 IEFDDSRV macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede IEFDDSRV.
   
IEFDDSRV  
   
One or more blanks must follow IEFDDSRV.
   
RETRIEVE  
,DEVENTRY  
,DDNAME=ddname ddname: RS-type address or register (2) - (12) ASM only.
,DSABPTR=dsabptr dsabptr: RS-type address or register (2) - (12) ASM only.
,DCBPTR=dcbptr dcbptr: RS-type address or register (2) - (12) ASM only.
,ACBPTR=acbptr acbptr: RS-type address or register (2) - (12) ASM only.
,SUBPOOL=subpool subpool: RS-type address, or register (2)-(12) ASM only.
  Default: SUBPOOL=0
,DEVAREA=devarea devarea: RS-type address or register (2) - (12).
,LOC=BELOW Default: LOC=BELOW
,LOC=ANY  
   
EXTRACT  
,TYPE=DEVIOENTRY Default: TYPE=DEVIOENTRY
,DDNAME=ddname ddname: RS-type address or register (2) - (12) ASM only.
,DSABPTR=dsabptr dsabptr: RS-type address or register (2) - (12) ASM only.
,DCBPTR=dcbptr dcbptr: RS-type address or register (2) - (12) ASM only.
,ACBPTR=acbptr acbptr: RS-type address or register (2) - (12) ASM only.
,SUBPOOL=subpool subpool: RS-type address, or register (2)-(12) ASM only.
  Default: SUBPOOL=0
,DEVIOAREA=devioarea devioarea: RS-type address, or register (2)-(12).
   
MODIFY  
,TYPE=ALLOCATION Default: TYPE=ALLOCATION
  ,DDNAME=ddname ddname: RS-type address or register (2) - (12) ASM only.
  ,DSABPTR=dsabptr dsabptr: RS-type address or register (2) - (12) ASM only.
  ,NEWDDNAME=newddname newddname: RS-type address, or register (2)-(12).
,TYPE=FEATURE  
  ,DSENQMGMT=NO_CHANGE  
  ,DSENQMGMT=MEMORY  
,TCBPTR=tcbptr tcbptr: RS-type address, or register (2)-(12).
   
,RETCODE=retcode  
,RSNCODE=rsncode  
   
,PLISTVER=IMPLIED_VERSION  
,PLISTVER=MAX  
,PLISTVER=0  
,PLISTVER=1  
   
,MF=S Default: MF=S
,MF=(L,list addr)  
,MF=(L,list addr,attr)  
,MF=(L,list addr,0D)  
,MF=(E,list addr)  
,MF=(E,list addr,COMPLETE)  
,MF=(E,list addr,NOCHECK)  
   

Parameters

The parameters are explained as follows:

name
An optional symbol, starting in column 1, that is the name on the IEFDDSRV macro invocation. The name must conform to the rules for an ordinary assembler language symbol.
RETRIEVE
EXTRACT
MODIFY
An optional input parameter.
RETRIEVE
Retrieve DD related information.
EXTRACT
Extract DD related information.
MODIFY
Modify an existing allocation or feature.
,DEVENTRY
A required input parameter when RETRIEVE is specified.
,DEVENTRY
Obtain the UCB address for the devices allocated to the request.

To code: Specify a value.

,DDNAME=ddname
,DSABPTR=dsabptr
,DCBPTR=dcbptr
,ACBPTR=acbptr
A required input parameter when RETRIEVE and DEVENTRY are specified.
,DDNAME=ddname
One of a set of mutually exclusive keys. It is the name of an 8 character input that is left justified and padded with blanks. A DDNAME of all blanks is invalid. The DSAB/TIOT chain selected is the one associated with the current TCB, unless overridden by the TCBPTR parameter.

To code: Specify the RS-type address of an 8-character field.

,DSABPTR=dsabptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the DSAB associated with a DD name.

To code: Specify the RS-type address of a pointer field.

,DCBPTR=dcbptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the DCB associated with a DD name. When DCBPTR defines an open DCB, specifying TCBPTR has no effect and the current TCB is used. When DCBPTR defines a closed DCB, the DSAB chain selected is determined by the desired TCB, which is either the current TCB (if TCBPTR is zero) or the TCB pointed to by TCBPTR. Do not use the DCBPTR option for a DCB in a DCB OPEN or ABEND exit routine call for that DCB.

To code: Specify the RS-type address of a pointer field.

,ACBPTR=acbptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the ACB associated with a DD name. If this ACB is OPEN, the DSAB pointer is retrieved from the DEB extension associated with it. If this ACB is not OPEN, the DD name is taken from the DCBDDNAM field in the DCB, and the DSAB address corresponding to this DD name is retrieved. When ACBPTR defines a DCB associated with an OPEN DD, ACBPTR is mutually exclusive with TCBPTR. The specified TCBPTR is ignored and the current TCB is used. When ACBPTR defines a ACB associated with a CLOSED DD, the DSAB chain selected is determined by the desired TCB, which is either the current TCB (if TCBPTR is zero) or the TCB pointed to by TCBPTR.

To code: Specify the RS-type address of a pointer field.

,SUBPOOL=subpool
,SUBPOOL=0
When RETRIEVE and DEVENTRY are specified, an optional input parameter that indicates which subpool to obtain the device area storage in. If this parameter is not specified, subpool 0 is used. The default value is 0.

To code: Specify the RS-type address, or address in register (2)-(12), of a one-byte field.

,DEVAREA=devarea
The name of a required pointer output that contains the address of the device output area. This area is obtained in the user's key and the subpool specified by the user (or subpool 0, if not specified). If the DD name is specified or obtained from a closed DCB, all the devices allocated to the requested DD and its concatenated groups are returned. If the DSAB pointer is specified or obtained from an opened DCB, only devices allocated to the requested DSAB are returned. The device area format is as follows:
  • An 8 byte header containing
    • A 1-byte field indicating the subpool in which the storage resides.
    • A 3-byte field containing the size of the device area (including the header).
    • A 4-byte field containing the number of device entry lists returned (a device entry list is returned for each DD in the concatenated group).
    • An array of the device list addresses.
  • An array of the device entry lists. Each list has the following format:
    • A 4-byte field containing the number of device entries in the list.
    • An array of 4-byte entries containing the UCB addresses.
The device area is mapped by mapping macro IEFDISMP.

If IEFDDSRV returns with return code 0 and reason code 0, the system has obtained a storage area of the appropriate size in the requested key and subpool, and placed its address in devarea. You are responsible for releasing this storage. If the return code and reason codes are not 0, the system has not obtained the storage area; do not attempt to release the storage.

To code: Specify the RS-type address, or address in register (2)-(12), of a pointer field.

,LOC=BELOW
,LOC=ANY
When RETRIEVE and DEVENTRY are specified, an optional parameter that indicates whether the DD Service should search all the DSABs or only those residing below the 16-megabyte line. This parameter is ignored for requests other than RETRIEVE DEVENTRY. The default is LOC=BELOW.
,LOC=BELOW
Requests that the DD Service search only those DSABs residing below the 16-megabyte line.
,LOC=ANY
Requests that the DD Service search all the DSABs.
,TYPE=DEVIOENTRY
An optional parameter when EXTRACT is specified. The default is TYPE=DEVIOENTRY.
,TYPE=DEVIOENTRY
Obtain the UCB address and selected I/O information for the devices allocated to the request.
Note: EXTRACT,TYPE=DEVIOENTRY is used to return I/O information, as opposed to RETRIEVE,DEVENTRY, which is used to retrieve information about devices allocated to a request. Although the two functions both return UCB information, due to the nature of the information they are meant to return, the two functions may return different device information. For example, a DD that was dynamically allocated with DD-level accounting suppressed via the S99DASUP flag in macro IEFZB4D0 will not have any device information returned with EXTRACT,TYPE=DEVIOENTRY, but will have device information returned with RETRIEVE,DEVENTRY.
,DDNAME=ddname
,DSABPTR=dsabptr
,DCBPTR=dcbptr
,ACBPTR=acbptr
A required input parameter when EXTRACT and TYPE=DEVIOENTRY are specified.
,DDNAME=ddname
One of a set of mutually exclusive keys. It is the name of an 8 character input that is left justified and padded with blanks. A DDNAME of all blanks is invalid. The DSAB/TIOT chain selected is the one associated with the current TCB, unless overridden by the TCBPTR parameter.

To code: Specify the RS-type address of an 8-character field.

,DSABPTR=dsabptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the DSAB associated with a DD name.

To code: Specify the RS-type address of a pointer field.

,DCBPTR=dcbptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the DCB associated with a DD name. If this DCB is OPEN, the DSAB pointer is retrieved from the DEB extension associated with it. If this DCB is not OPEN, the DD name is taken from the DCBDDNAM field in the DCB, and the DSAB address corresponding to this DD name is retrieved. When DCBPTR defines a DCB associated with an OPEN DD, DCBPTR is mutually exclusive with TCBPTR. The specified TCBPTR is ignored and the current TCB is used. When DCBPTR defines a DCB associated with a CLOSED DD, the DSAB chain selected is determined by the desired TCB, which is either the current TCB (if TCBPTR is zero) or the TCB pointed to by TCBPTR.

To code: Specify the RS-type address of a pointer field.

,ACBPTR=acbptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the ACB associated with a DD name. If this ACB is OPEN, the DSAB pointer is retrieved from the DEB extension associated with it. If this ACB is not OPEN, the DD name is taken from the DCBDDNAM field in the DCB, and the DSAB address corresponding to this DD name is retrieved. When ACBPTR defines a DCB associated with an OPEN DD, ACBPTR is mutually exclusive with TCBPTR. The specified TCBPTR is ignored and the current TCB is used. When ACBPTR defines a ACB associated with a CLOSED DD, the DSAB chain selected is determined by the desired TCB, which is either the current TCB (if TCBPTR is zero) or the TCB pointed to by TCBPTR.

To code: Specify the RS-type address of a pointer field.

,SUBPOOL=subpool
,SUBPOOL=0
When EXTRACT and TYPE=DEVIOENTRY are specified, an optional input parameter that indicates which subpool to obtain the device I/O area storage in. If this parameter is not specified, subpool 0 is used. The default is 0.

To code: Specify the RS-type address, or address in register (2)-(12), of a one-byte field.

,DEVIOAREA=devioarea
When EXTRACT and TYPE=DEVIOENTRY are specified, a required output parameter that is to contain the address of the device output area. This area is obtained in the user's key and the subpool specified by the user (or subpool 0, if not specified). If the DD name is specified or obtained from a closed DCB, all the devices allocated to the requested DD and its concatenated groups are returned. If the DSAB pointer is specified or obtained from an opened DCB, only devices allocated to the requested DSAB are returned. The device area format is as follows:
  • An 8 byte header containing
    • A 1-byte field indicating the subpool in which the storage resides.
    • A 3-byte field containing the size of the device area (including the header).
    • A 4-byte field containing the number of device entry lists returned (a device entry list is returned for each DD in the concatenated group).
    • An array of the device I/O list addresses.
  • An array of the device I/O entry lists. Each list has the following format:
    • A 4-byte field containing the number of device I/O entries in the list.
    • An array of 20-byte entries containing the UCB addresses (4 bytes), the TCTTIOT block size (8 bytes), the number of EXCPs against this device (4 bytes), and the device connect time (4 bytes).
The device I/O area is mapped by macro IEFDISMP.
Note: The invoker is responsible for releasing the storage for the returned device I/O area.

To code: Specify the RS-type address, or address in register (2)-(12), of a pointer field.

,TYPE=ALLOCATION
,TYPE=FEATURE
When MODIFY is specified, an optional parameter to modify an existing allocation or feature. The default is TYPE=ALLOCATION.
,TYPE=ALLOCATION
Update a DD allocation using the information provided.
,TYPE=FEATURE
Update the allocation settings of the job as requested.
,DDNAME=ddname
,DSABPTR=dsabptr
A required input parameter when MODIFY and TYPE=ALLOCATION are specified.
,DDNAME=ddname
One of a set of mutually exclusive keys. It is the name of an 8 character input that is left justified and padded with blanks. A DDNAME of all blanks is invalid. The DSAB/TIOT chain selected is the one associated with the current TCB, unless overridden by the TCBPTR parameter.
Note: Multiple DDs with the same name are allowed, and all references to that DDNAME use the first DD found.

To code: Specify the RS-type address of an 8-character field.

,DSABPTR=dsabptr
One of a set of mutually exclusive keys. It is the name of a pointer input that contains the address of the DSAB associated with a DD name.

To code: Specify the RS-type address of a pointer field.

,NEWDDNAME=newddname
When MODIFY and TYPE=ALLOCATION are specified, a required input parameter, which is left justified and padded with blanks.
The following DD names are not allowed:
  • JOBLIB
  • STEPLIB (unless the program invoking IEFDDSRV is authorized)
  • A DD name of all blanks
  • Any DD name that is already in use
  • Any DD name that does not conform to the rules documented in the JCL reference.
In addition, the DD to be modified cannot be concatenated to a named DD and cannot be modified while the DD is OPEN.

To code: Specify the RS-type address, or address in register (2)-(12), of an 8-character field.

,DSENQMGMT=NO_CHANGE
,DSENQMGMT=MEMORY
When MODIFY and TYPE=FEATURE are specified, a required parameter that indicates how Allocation should manage ENQs on the data set name.
,DSENQMGMT=NO_CHANGE
Requests that no change be made to the data set ENQs management.
,DSENQMGMT=MEMORY
Requests that data set ENQs be managed in memory. Specifying this option causes the job to be non-restartable through the check-point/restart function from this point on. The SYSTEM MEMDSENQMGMT keyword in ALLOCxx must be set to ENABLE to allow the job or subsystem to use the memory-based data set ENQ management. Memory-based data set ENQ management is not available for ASID 1.
,TCBPTR=tcbptr
An optional input parameter that contains the address of the TCB associated with the task for which DSAB/TIOT information is desired. When DCBPTR or ACBPTR defines a DCB or ACB associated with an OPEN DD, DCBPTR is mutually exclusive with TCBPTR. The specified TCBPTR is ignored, and the current TCB is used.

To code: Specify the RS-type address, or address in register (2)-(12), of a pointer field.

,RETCODE=retcode
An optional output parameter into which the return code is to be copied from GPR 15. If you specify 15, GPR15, REG15, or R15 (within or without parentheses), the value is left in GPR 15.

To code: Specify the RS-type address of a fullword field, or register (2)-(12) or (15), (GPR15), (REG15), or (R15).

,RSNCODE=rsncode
An optional output parameter into which the reason code is to be copied from GPR 0. If you specify 0, 00, GPR0, GPR00, REG0, REG00, or R0 (within or without parentheses), the value is left in GPR 0.

To code: Specify the RS-type address of a fullword field, or register (0) or (2)-(12), (00), (GPR0), (GPR00), REG0), (REG00), or (R0).

,PLISTVER=IMPLIED_VERSION
,PLISTVER=MAX
,PLISTVER=0
,PLISTVER=1
An optional input parameter that specifies the version of the macro. PLISTVER determines which parameter list the system generates. PLISTVER is an optional input parameter on all forms of the macro, including the list form. When using PLISTVER, specify it on all macro forms used for a request and with the same value on all of the macro forms. The values are:
  • IMPLIED_VERSION, which is the lowest version that allows all parameters specified on the request to be processed. If you omit the PLISTVER parameter, IMPLIED_VERSION is the default.
  • MAX, if you want the parameter list to be the largest size currently possible. This size might grow from release to release and affect the amount of storage that your program needs.

    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, when both are assembled with the same level of the system. In this way, MAX ensures that the parameter list does not overwrite nearby storage.

  • 0, which supports all parameters except those specifically referenced in higher versions.
  • 1, which supports both the following parameters and those from version 0:
    • ALLOCATION
    • DEVIOAREA
    • DSENQMGMT
    • EXTRACT
    • FEATURE
    • MODIFY
    • NEWDDNAME
    • TYPE
To code: Specify one of the following:
  • IMPLIED_VERSION
  • MAX
  • A decimal value of 0, or 1
,MF=S
,MF=(L,list addr)
,MF=(L,list addr,attr)
,MF=(L,list addr,0D)
,MF=(E,list addr)
,MF=(E,list addr,COMPLETE)
,MF=(E,list addr,NOCHECK)
An optional input parameter that specifies the macro form.

Use MF=S to specify the standard form of the macro, which builds an inline parameter list and generates the macro invocation to transfer control to the service. MF=S is the default.

Use MF=L to specify the list form of the macro. Use the list form together with the execute form of the macro for applications that require reentrant code. The list form defines an area of storage that the execute form uses to store the parameters. Only the PLISTVER parameter may be coded with the list form of the macro.

Use MF=E to specify the execute form of the macro. Use the execute form together with the list form of the macro for applications that require reentrant code. The execute form of the macro stores the parameters into the storage area defined by the list form, and generates the macro invocation to transfer control to the service.

,list addr
The name of a storage area to contain the parameters. For MF=S and MF=E, the name can be an RS-type address or an address in register (1)-(12).
,attr
An optional 1- to 60-character input string that you use to force boundary alignment of the parameter list. Use a value of 0F to force the parameter list to a word boundary, or 0D to force the parameter list to a doubleword boundary. If you do not code attr, the system provides a value of 0D.
,COMPLETE
Specifies that the system is to check for required parameters and supply defaults for omitted optional parameters.
,NOCHECK
Specifies that the system is not to check for required parameters and is not to supply defaults for omitted optional parameters.

ABEND codes

None.

Return and reason codes

When the IEFDDSRV macro returns control to your program, GPR 15 (and retcode if you code RETCODE) contains the return code. If the value in GPR 15 is not 0, GPR0 (and rsncode if you code RSNCODE) contains the reason code.

The return and reason codes are mapped in macro IEFDISRC. The hexadecimal return and reason codes from the IEFDDSRV macro are as follows:

Table 1. Return and Reason Codes for the IEFDDSRV Macro
Return Code Reason Code Meaning and Action
X'00' Meaning: The requested function successfully completed.
Reason code
X'00'
Function completed.
X'08' Meaning: Invalid input parameter.
Reason codes
X'04'
The specified or obtained DD name is blank.
X'08'
The specified or obtained DSAB pointer is zero.
X'0C'
The specified DCB pointer is zero.
X'10'
An invalid subpool was specified.
X'14'
The specified ACB pointer is zero.
X'18'
The specified DSAB pointer is a 31-bit address, but LOC=ANY was not specified.
X'20'
The parameter list version and the parameter list length are not consistent.
X'24'
The parameter list version does not support the IEFDDSRV function requested.
X'28'
The parameter list version is higher than what is supported by IEFDDSRV.
X'2C'
The function in the parameter list is not supported by IEFDDSRV.
X'0C' Meaning: Invalid input parameter.
Reason codes
X'04'
The specified or obtained DD name is invalid.
X'08'
The specified or obtained DSAB pointer is invalid.
X'0C'
Failed to obtain the TIOT resource.
X'10'
Failed to obtain the lock.
X'14'
The specified TCB pointer is invalid.
X'1C'
The DSAB pointer obtained from the OPEN input DCB/ACB is a 31-bit address, but LOC=ANY was not specified.
X'20'
The TCTTIOT offset obtained from the DSAB is zero.
X'100'
The DD name cannot be modified while the DD is open.
X'104'
The requested feature has not been enabled by the installation.
X'108'
The requested new DD name does not follow the documented rules for a DDNAME.
X'10C'
The DD to be modified is concatenated to a named DD.
X'128'
The DD to be modified is in an inconsistent state and cannot be modified.
X'12C'
The requested feature is already set.
X'130'
The requested new DD name is already in use.
X'134'
The requested function is not allowed from ASID 1.
X'10' Meaning: System error: Recovery entered.

Action: Check the dump produced by the abend and supply it to the appropriate IBM support personnel.