z/OS V1R7.0-V1R12.0 MVS Device Validation Support
Previous topic | Next topic | Contents | Index | Contact z/OS | Library | PDF


UIM Executable Macros

z/OS V1R7.0-V1R12.0 MVS Device Validation Support
SA22-7586-01

The following executable macros are used by UIMs.

Executable Macro Name Executable Macro Function
CBDIGETM Obtains a contiguous virtual storage area
CBDIMSG Issues a message.
CBDIPPDS Puts an entry on or removes an entry from the HCD diagnostic stack.
CBDISIML Generates either a similar device list or an attachable device list.

CBDIGETM Executable Macro

The CBDIGETM macro obtains a contiguous virtual storage area, and clears it to hexadecimal zero.

The syntax of the CBDIGETM macro is as follows:

 
[label]  CBDIGETM {UNCOND|COND}
                   ,LENGTH=length|(reg)
                  [,SUBPOOL={pool_number|(reg)}]
                  [,BNDRY={DBLWD|PAGE}]
                   ,REQ=UIM
                  [,ADDRESS=address_variable]
                  [,RELATED=related value]
label
Specifies the label name that the system generates in the first instruction of the macro expansion.
UNCOND
Specifies an unconditional storage request. If there is not enough virtual storage, the active task terminates abnormally. UNCOND is the default.
COND
Specifies a conditional storage request. If there is not enough virtual storage, this macro provides return code 4.
LENGTH
Specifies requested virtual storage length in bytes. Length can range from 1 byte to 16 megabytes, automatically rounded up to the next multiple of 8. If you use register notation, make sure the designated register contains the length.
SUBPOOL
Specifies the subpool number from which virtual storage is allocated. Valid numbers are between 0 and 127. If you use register notation, make sure the designated register contains the subpool number. If this macro specifies a subpool, it allocates storage from that subpool. Otherwise, it allocates storage from the subpool assigned to the job step.
BNDRY
Specifies requested alignment:
DBLWD
Specifies alignment on a double word boundary.
PAGE
Specifies alignment at the start of a virtual page (a 4K boundary).
Note:
The default is DBLWD.
REQ
Must be UIM (specifies that a UIM is issuing the macro).
ADDRESS
Specifies the variable to contain the address of acquired storage.
RELATED
Specifies an optional character string that can identify related macro calls.
Registers used by the CBDIGETM macro:
Register 1
Parameter list address
Register 14
Linkage register
Register 15
Linkage register

Make sure the UIM has addressability to the UCA when issuing the CBDIGETM macro.

Note:
You must also include the CBDZGETM definition macro in the UIM. The CBDZGETM definition macro maps the GETM parameter list. The CBDIGETM executable macro builds the GETM parameter list.
Return Codes
Return Code Reason Code Description Message Abend / Reason Code
GETMOK GETMOK Request completed successfully - -
GETMWARN GETMSNAV Storage not available (conditional only; on unconditional request, a system abend occurs) CBDA056I -
GETMTERM GETMINVF

GETMINVS

GETMLEN0

Invalid function code

Invalid Subpool number

Zero length provided

CBDA011I

CBDA011I

CBDA011I

00F/00110011

00F/00110012

00F/00110015

Example
CBDIGETM   LENGTH=BUFFLEN,ADDRESS=BUFFADDR,REQ=UIM
       .
       .
       .
BUFFADDR   DC A(0)
BUFFLEN    DC F'80'

This example requests a dynamic storage area with a length of 80 bytes, with the address returned in variable BUFFADDR.

CBDIMSG Executable Macro

The CBDIMSG macro issues a message that appears on a terminal or in a message log.

The syntax of the CBDIMSG macro is as follows:

 [label]  CBDIMSG MID=message_id
                   [,VARn=(variable,{H|B|C})]
                   [,SEV=severity]
                    ,REQ=UIM
label
Specifies the label name that the system generates in the first instruction of the macro expansion.
MID
Specifies the message identifier. Make sure the message identifier is eight bytes long.
Note:
The CBDIMSG macro can only issue messages defined in the associated UIM data table (UDT). See UIM Data Tables (UDTs).
VARn
You can specify variables when defining a message. These variables cause substitutions in the message, just before it is displayed. Because many languages have different noun and verb sequences, message variables are numbered instead of sequenced. Specify a message variable by including an @n in the message text, where “n” is a number from 1 to 9.

This is a message text example: “Number of units must be @1 for the @2 device.”

Each variable may be as long as 255 bytes. Specify variable type as:

H
Specifies a hexadecimal field type.
B
Specifies a fixed binary field type.
C
Specifies a character field type.

If you omit the variable type, its default is C.

SEV
Specifies the message severity. The following severities are supported:
MSGINFO
informational message. This message has no effect on HCD processing or its return code.
MSGWARN
warning message. This message has no effect on HCD processing but will cause HCD to issue a return code of 4 (unless the UIM issues a message of higher severity).
MSGERR
error message. This message will prevent HCD from building any I/O configuration members, and will cause HCD to issue a return code of 8 (unless HCD issues a message of higher severity).
MSGTERM
severe error message. This message causes HCD to end its processing and issue a return code of 16. A UIM must never issue a severe error message.

This parameter is optional; the default is MSGERR.

REQ
Must be UIM (specifies that the macro call is issued by a UIM).

Make sure the UIM can address the UCA when the UIM issues the CBDIMSG macro.

Note:
You must also include the CBDZMSG definition macro in the UIM. The CBDZMSG definition macro maps the MSG parameter list. The CBDIMSG executable macro builds the MSG parameter list.
Example

To issue message CBDB805I:

CBDIMSG    MID=CBDB805I,VAR1=IODVUNIT,            *
     .     STMT=YES,REQ=UIM
     .
     .
CBDB805I   DC CL8'CBDB805I'

The message definition for CBDB805I must exist in the corresponding UDT.

The message definition in the sample UDT is:

         CBDZUDT MID=CBDB805I,ID=FEATURE,                               *
               TEXT='Features SHARED and SHAREDUP are mutually exclusive*
               e for device type @1.',                                  *
               HELP=CBDED05

In the actual message text @1 is replaced with the device unit type that is passed to the UIM through the IODV control block.

CBDIPPDS Executable Macro

The CBDIPPDS macro puts (pushes) an entry onto or removes (pops) an entry from the diagnostic stack.

The syntax of the CBDIPPDS macro is as follows:

 [label]   CBDIPPDS  {PUSH|POP}
                     ,DIAG=diag
                     ,REQ=UIM
                     [,RELATED=related]
label
Name of the label to be generated on the first instruction in the macro expansion.
PUSH
The designated diagnostic entry is to be put on the diagnostic stack. Either PUSH or POP must be specified.
POP
The designated diagnostic entry is to be removed from the diagnostic stack. Either PUSH or POP must be specified.
DIAG
Name of the diagnostic entry. This name must be specified on the label field of the CBDZDIAG macro.
REQ
Must be UIM (specifies that a UIM is issuing the macro).
RELATED
Specifies an optional character string that can identify related macro calls.

Make sure the UIM can address the UCA when the UIM issues the CBDIPPDS macro.

Note:
A UIM must invoke the CBDZDIAG definition macro to build the diagnostic stack entry that is to be pushed onto or popped from the diagnostic stack.
Example
CBDIPPDS    PUSH,DIAG=DIAGDATA,REQ=UIM
     .
     .
     .
CBDIPPDS    POP,DIAG=DIAGDATA,REQ=UIM
     .
     .
     .
DIAGDATA   CBDZDIAG MODNAME=CBDUC255,        *
           CSECT=CBDUC255,COMP=SC1XL,        *
           DESC=='UIM FOR DASD 33UU, 93UU',  *
           MODCAT=UIM

CBDISIML Executable Macro

The CBDISIML macro generates a list, by type and model, of either similar devices or devices attachable to a specific control unit type.

  • A similar device is a lookalike device, which you can define directly. For example, a 3178 device has the same characteristics as the 3270-X device, so you can define a 3178 as a 3178 directly.
  • An attachable device is a device that you can attach to a particular control unit.

The syntax of the CBDISIML executable macro is as follows:

label      CBDISIML  (device[,model])
                     [,(device,[model]),(...),]
                     [TYPE={DEV|CU}]

Specify the device list as positional parameters.

device
Specifies the device type.
model
Specifies the device model.
TYPE
Specifies the type of device list. The default is DEV.
DEV
Indicates that the list is a similar device list.
CU
Indicates that the list is an attachable device list.
Example
ATT39CC     CBDISIML   (33UU,1),                         *
                       (33VV,2),                         *
                       TYPE=CU

This example specifies a list of devices attachable to a specific control unit.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014