Use this system macro to return:
- A common storage block to the TPF system
- Common blocks to the TPF system.
- Note:
- Entry control block (ECB)-controlled programs must use the RELCC macro to
return storage blocks.
Format
- label
- A symbolic name can be assigned to the macro statement.
- BLOCK=Rn
- This parameter is used to return the block address. The register
specified must contain the 31-bit storage block address which is to be
returned to the TPF system. This storage block must have been acquired
through the $GCOMC macro.
- 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
- This macro is for use in the control program (CP) only.
- The program invoking this macro must be running in a privileged mode of
operation and with a storage protection key of zero. The program must
also be operating in 31-bit mode. This macro operates in either the EVM
or the SVM.
- R13 is assumed to contain the stack pointer.
Return Conditions
- Control is returned to the NSI.
- The contents of the register specified in the BLOCK parameter are
unpredictable.
- The condition code is not saved.
Programming Considerations
- The $RELBC macro can also be used to return common blocks to the TPF
system. If there is any doubt whether a storage block is a common block
or part of the ECB's private area, then $RELBC should be used instead of
$RCOMC.
- This macro is for use in the control program (CP) only.
- System error dumps can occur when servicing a $RCOMC request.
See Messages (System Error and Offline) for more
information.
Examples
None.