Use this system macro to convert a specified entry control block (ECB)
virtual memory (EVM) address (EVA) in a specified EVM to the corresponding
system virtual memory (SVM) address (SVA).
An ECB-controlled program can issue this macro to convert any valid EVA in
any active EVM on any active I-stream, and the SVA returned is valid for the
SVM of the I-stream on which the issuing program is active.
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
| X
|
|
|
Format
- label
- A symbolic name can be assigned to the macro statement.
- ECB
- This required parameter designates the target EVM and determines the
segment and page tables that will be used for conversion. The SVM
address of the target ECB may be passed either in a register or in an
addressable 4-byte field. The parameter is not modified.
- symbol1
- If specified, it is the label of the field that contains the SVM address
of the target ECB.
- (Rx)
- If specified, it is the general register (R0 through R7) that contains the
SVM address of the target ECB.
- ADDRESS
- This required parameter specifies the EVM address to be converted.
This address may be passed either in a register or in an addressable 4-byte
field. The converted address will replace the input parameter.
- symbol2
- If specified, it is the label of the field that contains the EVM address
to be converted.
- (Ry)
- If specified, it is the general register (R0 through R7) that contains the
EVM address to be converted. It can not be the same register as coded
for Rx.
- ERROR=symbol3
- This required parameter specifies a program label, in the issuing program,
where control is transferred when the designated address cannot be
converted. Register R15 will contain an error code indicating the type
of error.
- DSECT=NO|YES
- The DSECT parameter is used to generate the DSECT that describes the macro
expansion, and certain equates associated with the macro. It is
intended for CP use only. The default is NO.
Entry Requirements
Return Conditions
- When conversion is successful, control is returned to the next sequential
instruction (NSI). The converted address is returned in the field or
register designated by the ADDRESS parameter.
- When conversion is unsuccessful, processing continues with the routine
specified by the ERROR parameter and error conditions are posted in the
low-order byte of general register 15. The specific error can be
determined by storing the error byte and testing it with the equate symbols
that follow. The following equates are generated with the first use of
the macro:
- GSVA_ECB_INACT
- Target ECB is inactive
- GSVA_INVAL_ECB_ADDR
- ECB address is not valid.
- GSVA_INVAL_EVM_ADDR
- EVM address is not valid.
- The contents of registers R14 and R15 are unknown, except on an error
condition as described previously.
Programming Considerations
- In general, the SVM address returned by this macro may not be directly
usable by the requesting program. It is recommended that you use this
macro with the MOVEC macro.
- When using the SVM address returned by this macro, do not attempt to cross
a page boundary without issuing another GSVAC macro. Conversion of the
EVM address for the next page will avoid errors caused by discontiguous SVM
storage.
- The macro can return incorrect results if addresses passed to it have
their high order bit (X'80') set. The technique of loading a
zero address, such as,
LA Rx,0(Rx)
before the macro call clears out registers in the way required.
Examples
None.