This general macro releases from the entry control block (ECB) the storage
block specified by the core block reference word (CBRW) for the designated ECB
data level or data event control block (DECB) and returns it to the
appropriate available working storage pool.
Format
- label
- A symbolic name can be assigned to the macro statement.
- datalevel
- A symbolic ECB data level (D0-DF).
- DECB=(reg)|label1
- The label or general register (R0-R7) containing the address of the
DECB holding the storage block to be released.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- A storage block must be held by the ECB at the specified ECB data level or
DECB.
Return Conditions
- Control is returned to the next sequential instruction.
- The contents of R14 and R15 are unknown. The contents of all user
registers are preserved across this macro call.
- The specified CBRW is set to indicate the storage block is no longer
held.
Programming Considerations
- This macro can be run on any I-stream.
- Separate invocations of this macro must be made for each storage block to
be released.
- The macro service checks the CBRW of the specified ECB data level or DECB
to determine if a storage block is held. A system error dump is taken
if a block is not held and the entry is exited.
- The macro service checks the CBRW of the specified ECB data level or DECB
to determine if the block type is valid. A system error dump is taken
if the block type is not valid and the entry is exited.
- If a double release of a storage block occurs then a system error will
occur and the entry will be exited.
- If a release is attempted for an invalid block address then a system error
will occur and the entry will be exited.
- If the location of the data event control block specified by the DECB
parameter does not refer to a valid DECB, control is transferred to the system
error routine.
Examples
None.