Description

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.

Note: If you input a captured UCB address, you receive the address of the captured UCB common extension segment.

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.

Environment

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.

Programming requirements

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.

Restrictions

None.

Input register information

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.

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code, if the return code is 08
1
Used as a work register by the system
2-13
Unchanged
14
Return address
15
Return code
When control returns to the caller, the ARs contain:
Register
Contents
0-1
Used as a work register by the system
2-13
Unchanged
14-15
Used as a work register by the system

Performance implications

None.

Syntax

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).
   

Parameters

The parameters are explained as follows:

UCBPTR=ucbptr addr
Specifies the address of a fullword field that contains the address of the UCB common segment. This address must be for the UCB, and not for a copy of the UCB.
,UCBCXPTR=ucbcxptr addr
Specifies the address of a fullword field in which the system returns the address of the UCB common extension segment. Use the UCBCMEXT DSECT of the IEFUCBOB mapping macro to map the UCB common extension segment.
,RETCODE=retcode
An optional output parameter into which the return code is to be copied from GPR 15.

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

,RSNCODE=rsncode
An optional output parameter into which the reason code is copied from GPR 0.

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

ABEND codes

None.

Return and reason codes

When the IOSCMXA macro returns control to your program:
  • GPR 15 (and retcode, when you code RETCODE) contains a return code
  • When the value in GPR 15 is not zero, GPR 0 (and rsncode, when you code RSNCODE) contains a reason code.
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.