IOSCMB — Locate the channel measurement block (CMB)

Description

The IOSCMB macro locates the channel measurement block (CMB) for a UCB and returns the data in either a 32 byte CMB format or a 64 byte ECMB format. This service eliminates the need for programs to know the format and location of the CMB.

Environment

Environmental factor Requirement
Minimum authorization: Supervisor state, zero PSW key
Dispatchable unit mode: Task or SRB
Cross memory mode: PASN=HASN=SASN
AMODE: 31-bit
ASC mode: Primary
Interrupt status: Enabled for I/O and external interrupts. If the caller is disabled, the parameter list (including any data areas pointed to from the parameter list) must be in fixed or DREF storage.
Locks: The caller is not required to hold any locks on entry.
Control parameters: Must be in the primary address space

Programming requirements

None.

Restrictions

If the invoker is disabled, the parameter list, which includes any data areas pointed to by the parameter list, must reside in fixed or DREF storage.

Input register information

Before issuing the IOSCMB macro, the caller must ensure that the following general purpose registers (GPRs) contain the specified information:
Register
Contents
13
Address of a 36–word save area

Output register information

When control returns to the caller, the GPRs contain:
Register
Contents
0
Reason code
1
Used as work registers 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-15
Unchanged

Performance implications

None.

Syntax

The IOSCMB macro is written as follows:

Syntax Description
   
   name name: Symbol. Begin name in column 1.
   
One or more blanks must precede IOSCMB.
   
IOSCMB  
   
One or more blanks must follow IOSCMB.
   
GET Default: GET
   
,UCBPTR=ucbptr addr ucbptr addr: Symbol, RX-type address, or register (2) - (12).
   
,CMBAREA=cmbarea addr cmbarea addr: Symbol, RX-type address, or register (2) - (12).
   
   ,CMBLEN=64 Default: CMBLEN=64
   ,CMBLEN=32  
   

Parameters

The parameters are explained below:

GET
Requests that the system locates the channel measurement block (CMB) for a UCB and return the data in either the old CMB format or the new ECMB format.
,UCBPTR ucbptr addr
Specifies a fullword containing the address of the UCB common segment whose CMB is to be returned.
,CMBAREAcmbarea addr
Specifies the address of a area to hold the the measurement block being returned. The area can be either 32–bytes or 64–bytes, depending on what you specify for CMBLEN.
,CMBLEN=64
,CMBLEN=32
Specifies whether the area pointed to by CMBAREA is:
  • 64 bytes and the channel measurement block info is to be returned in ECMB format, mapped by IRAECMB.
  • 32 bytes and the channel measurement block information is to be returned in CMB format, mapped by IRACMB

Return and reason codes

Table 1. Return Codes for the IOSCMB Macro
Hexadecimal Return Code Hexadecimal ReasonCode Meaning and Action
00 - - Meaning: Successful completion of the IOSCMB request.

Action None.

08 01 Meaning: The IOSCMB request could not complete. No CMB was assigned for the device.

Action: None; do not reissue this macro.

Example

None.