Use this system macro to attach a data block to an entry control block
(ECB) address space.
Format
- BLOCK=R1|Rn
- Use this parameter to specify the system virtual address (SVA) of a
storage block. The register specified contains the SVA address of a
storage block. The block must be of a type that can be attached to ECB
CBRWs (128, 381, 1055, or 4095 bytes).
On return, this register contains the ECB virtual address (EVA) of the
connected block.
R9 and R13 cannot be used with the BLOCK parameter R9 cannot be used
because you may not attach the ECB to itself. R13 cannot be used
because you may not attach the stack to the ECB.
R1 is the default.
- PROTECT
- Use this parameter to specify if the ECB is allowed to modify data in the
block.
- YES
- If YES is specified and the block resides in main storage above the
frames, the page protection bit is set in the page table entry for the
storage, and the data is protected against modification.
- Note:
- The YES option of the PROTECT parameter is intended exclusively for the ENTxC
macros to connect a 24-bit program residing in a 4 K VFA block to an
ECB. The YES option is ineffective when the block resides in or below
the frames.
- NO
- If NO is specified or if the block resides in main storage in or below the
frames, the page protection bit is not set in the page table entry and the
data can be modified. NO is the default.
- SAVOUT=Rm
- This optional parameter specifies a register that contains the SVA of the
block connected by the macro.
- Note:
- The SVA may change during the process of connecting the block to the
ECB.
The BLOCK and SVAOUT parameters should not specify the same
register. There is no default register for SVAOUT.
- SAVREG
- The specified volatile registers will be saved by the macro in
the stack area or in the registers specified by the WKREG parameter. Up
to 3 registers can be specified. Those registers are R0, R1, R2.
If this keyword is omitted, none of the 3 registers will be saved. You
should not save a volatile register if you expect it to contain an output
parameter. The register will be overwritten with its original contents,
since the reload is the last thing performed by the macro.
- WKREG
- The specified symbolic register names are free to be used by the macro to
save the volatile registers coded on the SAVREG parameter.
Up to 3 registers can be specified, but the standard linkage registers R13
through R2 cannot be used here. This parameter is used in conjunction
with the SAVREG parameter to generate efficient code and enhance the
performance of the macro. The number of registers specified by WKREG
should be less than or equal to the number of registers specified by
SAVREG. If this parameter is omitted or not used to its maximum
capacity, code optimization is sacrificed.
Entry Requirements
- R9 should not be specified for the WKREG parameter.
- R9 must point to the ECB to which the block will be connected.
- You can run the $CONBC macro from system virtual memory (SVM) or ECB
virtual memory (EVM).
Notes:
- Keep in mind that you can run this macro from EVM only if the block being
connected is addressable by the ECB virtual address (EVA).
- When blocks are being attached in frames, the program running this macro
must be in SVM.
- The block pointed to by the BLOCK parameter must be disconnected from the
ECB by issuing $GETBC ECB=NO or $DISBC.
Return Conditions
- Control is returned to the next sequential instruction (NSI).
- The register specified in the BLOCK parameter contains the EVA address of
the connected block.
- The condition code is not preserved.
Programming Considerations
- This macro must be processed on the same I-stream as the ECB to which the
block will be connected.
- This macro is for use in the control program (CP) only.
- System error dumps can occur when servicing a $CONBC request.
See Messages (System Error and Offline) for more
information.
Examples
None.