Use this system macro to move date between an entry control block (ECB)
virtual memory (EVM) address space and a system virtual memory (SVM) address
space. This macro allows an ECB-controlled program to read and modify
storage that is not part of its own address space.
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
X
|
|
|
|
Format
- label
- A symbolic name may be assigned to the macro statement.
- FROM
- This parameter specifies the location of the data from which data will be
moved. You must specify both a register, and EVM or SVM.
- Rx
- Specifies a general purpose register from R0 through R7. It
contains the 31-bit address from which data will be moved.
- EVM
- Specifies that the address is in the ECB virtual memory (EVM).
- SVM
- Specifies that the address is in the system virtual memory (SVM).
- TO
- This parameter specifies the location where the data specified by the FROM
parameter will be placed. You must specify both a register, and EVM or
SVM.
- Ry
- Specifies a general purpose register from R0 through R7. It
contains the 31-bit address to which data will be moved.
- EVM
- Specifies that the address is in the ECB virtual memory (EVM).
- SVM
- Specifies that the address is in the system virtual memory (SVM).
- LENGTH=Rz
- This parameter specifies a general purpose register from R0 through R7
that contains the number of bytes of data that will be moved from the FROM
location to the TO location.
Entry Requirements
- Any program issuing the MOVEC macro must be allocated
with authorization to process with protect key zero (CINFC WRITE
capability).
- This macro must be called from an ECB-controlled program.
- The value you specify for the FROM and TO parameters must be a valid data
address; that is, the high order bit must not be turned on.
Return Conditions
- Control is returned to the next sequential instruction (NSI).
- The data is moved from the FROM location to the TO location.
Programming Considerations
- The usage of the MOVEC macro requires key 0 write authorization
(CHECK=KEY0) and authorization to issue a restricted macro (CHECK=RESTRICT) by
the $CKMAC macro.
- This macro may be processed on any I-stream.
- The following combinations are valid:
- From EVM to SVM
- From SVM to EVM
- From EVM to EVM
- From SVM to SVM.
- Note:
- The EVM-EVM combination is restricted to movement within ECB virtual memory
(EVM), not between EVMs.
- System error dumps can occur when servicing a MOVEC request.
See Messages (System Error and Offline) for more
information about system errors.
Examples
This code shows the FROM address being taken from a DSECT field, the TO
address being taken from a core block reference work, and the length being
calculated as the difference between two addresses. The next address in
the chain is loaded and the data moved.
LA R6,LK4OBF TOP OF LINK QUEUE ADDRESS (LK4KC)
L R3,CE1CR0 A(block) to use for MOVEC (EB0EB)
LA R7,CM8TXTA-CM8CHNA Need only a few bytes (CM8CM)
ICM R6,B'1111',0(R6) LOAD BASE WITH NEXT IN CHAIN
BZ CMMMDONE We've gone through queue
SPACE
CMMMTEST DS 0H
MOVEC FROM=(R6,SVM),TO=(R3,EVM),LENGTH=R7