The VRADATA macro copies service information into a variable recording area (VRA), usually the system diagnostic work area (SDWAVRA). This information can later be recorded in the LOGREC data set if software errors occur. (See the SETRP macro, RECORD=YES parameter description, for more information on recording the SDWA data area.) The information copied into the VRA using this macro is in a key, length, data format defined by the IHAVRA mapping macro. The key and length are one-byte fields; the data can vary in length. The IHAVRA mapping macro is shown in z/OS MVS Data Areas in z/OS Internet Library at http://www.ibm.com/systems/z/os/zos/bkserv/ under VRAMAP.
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- or 64-bit |
ASC mode: | Primary, secondary, or access register (AR) |
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: | None |
None.
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 VRADATA macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␣ | One or more blanks must precede VRADATA. |
VRADATA | |
␣ | One or more blanks must follow VRADATA. |
VRAINIT=vra addr | vra addr: RX-type address, or the symbol SDWAVRA. |
Default: address of SDWAVRA | |
,VRACLEN=curr len addr | curr len addr: RX-type address. |
or (curr len addr,0) | Default: address of SDWAURAL. |
,VRAMLEN=max len addr | max len addr: RX-type address. |
Default: address of SDWAVRAL. | |
,KEY=key nmbr | key nmbr: Symbol or decimal digit. |
,LENADDR=data len addr | data len addr: RX-type address. |
,LEN=data len value | data len value: Symbol or decimal digit. |
Default: length of DATA storage. | |
,DATA=data addr | data addr: RX-type address, or register (1) - (15). |
,SDWAREG=reg | reg: Symbol or decimal digits 1-15. |
Default: 1 | |
,VRAREG=(reg,descr) | reg: Symbol or decimal digits 1-15. |
Default: 14 | |
descr: SET or NOTSET | |
Default: NOTSET if VRAINIT is specified, | |
otherwise SET. | |
,WORKREG=reg | reg: Symbol or decimal digits 1-15. |
Default: 15 | |
,TYPE=(LEN,TEST) |
Default: LEN,TEST |
The parameters are explained as follows:
All subsequent VRADATA macros use the specified VRACLEN value until you specify another VRACLEN value.
All subsequent VRADATA macros use the specified VRAMLEN value until you specify another VRAMLEN value.
After updating the VRA, the system updates the register to point to the next available field in the VRA. If you do not specify VRAREG, register 14 is the default.
If you do not need to store the length or test to see if the new entry fits, specify NOLEN and NOTEST. These specifications considerably reduce the amount of code generated by the VRADATA macro. If you do not specify TYPE, the value LEN, TEST is the default.
None.
None.
VRADATA VRAINIT=SDWAVRA,KEY=VRACBM,DATA=MYCBNAME, X
TYPE=(NOLEN,NOTEST)
VRADATA KEY=VRACB,DATA=MYCB,TYPE=(LEN,NOTEST)
VRADATA VRAINIT=LRBTUSR,VRACLEN=LRBTCLEN, X
VRAMLEN=LBRTMLEN
VRADATA KEY=VRAAID,DATA=(REGA),LEN=ASIDLEN