gtps1m10System Macros

$RELBC-Release Storage Block

Use this system macro to return a storage block to the TPF system. The storage block can be any logical block or a system work block (SWB).

Format




label
A symbolic name can be assigned to the macro statement.

BLOCK=Rn
This parameter is used to return the block address to the TPF system. The register specified must contain the 31-bit storage block address to be returned to the TPF system. The block address returned will be correct for the address space currently being used: an EVM address if ADSPACE=EVM, an SVM address if ADSPACE=SVM.

ADSPACE
This parameter gives the address space where the calling code is operating.

EVM
The code issuing this macro is operating in the EVM on behalf of an ECB.

SVM
The code issuing this macro is operating in the SVM and may or may not be operating on behalf of an ECB.

ECB
This parameter specifies whether the block is currently connected to the ECB virtual memory (EVM).

YES
When ECB=YES, the frame containing the block must currently be connected to an ECB's virtual memory. The ECB must be on the I-stream where the $RELBC was issued.

NO
The block address being returned must be an SVM address. The frame containing the block cannot be part any ECB's virtual memory.

EXIT=YES
EXIT=YES is a special interface for EXITC processing. During EXITC processing a check must be made for VEQR mode. If VEQR is On, all blocks must be released. If VEQR is Off, only common blocks must be released. This parameter is only valid for the EXITC service routine.

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

Return Conditions

Programming Considerations

System error dumps can occur when servicing a $RELBC request. See Messages (System Error and Offline) for more information about system errors.

Examples

None.