Use the IOSDCXR macro to obtain the address of the unit control block (UCB) device class extension segment. For example, the DASD device class extension segment is mapped by the IECDDCE macro and the tape device class extension segment is mapped by the IECUCBCX macro.
Other macros provide addresses to other UCB segments. For example, UCBLOOK, IOSCMXA, and IOSCMXR provide the address of the UCB common extension segment. For guidance about obtaining UCB information, see z/OS MVS Programming: Authorized Assembler Services Guide.
The requirements for the caller are:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Problem state and any PSW key. |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | PASN=HASN=SASN |
AMODE: | 24- or 31-bit |
ASC mode: | Primary |
Interrupt status: | Enabled or disabled for I/O and external interrupts. |
Locks: | No locks held. |
Control parameters: | None. |
The caller must pass a valid captured or actual UCB address.
The caller must pin the UCB or otherwise guarantee that the UCB will not be dynamically deleted.
The caller must supply recovery to handle any unexpected errors, such as abends.
If you input a captured UCB address, the UCB must be captured in the primary address space.
Before issuing the IOSDCXR macro, the caller does not have to place any information into any access register (AR).
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 IOSDCXR macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IOSDCXR. |
IOSDCXR | |
␢ | One or more blanks must follow IOSDCXR. |
MF=(S) | Default: S |
The parameters are explained as follows:
None.
None.