The IOSCMXA macro obtains the address of the UCB common extension segment. To map the UCB common extension segment, use the UCBCMEXT DSECT of the IEFUCBOB mapping macro.
The IOSCMXA macro provides faster performance than the UCBLOOK macro; however, if the caller uses UCBLOOK to obtain several addresses in the same invocation, UCBLOOK might provide better performance than an IOSCMXA macro and an IOSUPFA macro. The UCBLOOK macro also validates input parameters and provides recovery. However, UCBLOOK cannot be used to obtain a captured UCB common extension address because UCBLOOK returns only actual UCB addresses.
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: | Any PASN, any HASN, any SASN |
AMODE: | 24- or 31-bit |
ASC mode: | Primary |
Interrupt status: | Enabled or disabled for I/O and external interrupts |
Locks: | The caller may hold locks, but is not required to hold any. |
Control parameters: | The input parameter must be in the primary address space. If the caller is disabled, the parameter list must reside in fixed or disabled reference (DREF) storage. |
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 deleted. (If the caller issues a UCBLOOK macro with the PIN parameter to pin the UCB, use the UCBLOOK UCBCXPTR parameter rather than the IOSCMXA macro.)
The caller must supply recovery to handle any unexpected errors, such as abends.
None.
Before issuing the IOSCMXA macro, the caller does not have to place any information into any register unless using it in register notation for a particular parameter, or using it as a base register.
None.
The standard form of the IOSCMXA macro is written as follows:
Syntax | Description |
---|---|
name | name: symbol. Begin name in column 1. |
␢ | One or more blanks must precede IOSCMXA. |
IOSCMXA | |
␢ | One or more blanks must follow IOSCMXA. |
UCBPTR=ucbptr addr | ucbptr addr: RX-type address or register (2) - (12). |
,UCBCXPTR=ucbcxptr addr | ucbcxptr addr: RX-type address or register (2) - (12). |
,RETCODE=retcode | retcode: RS-type address or register (2) - (12). |
,RSNCODE=rsncode | rsncode: RS-type address or register (2) - (12). |
The parameters are explained as follows:
To code:Specify the RS-type address of a fullword field, or register (2) — (12).
To code:Specify the RS-type address of a fullword field, or register (2) — (12).
None.
Hexadecimal Return Code | Hexadecimal Reason Code | Meaning and Action |
---|---|---|
00 | Meaning: Successful completion. Action: None. |
|
08 | 03 | Meaning: Program error. The UCB address
provided by the caller parameter does not represent a valid UCB. Action: Correct the UCB address and reissue the macro. |