This general macro releases the file address of a record and any records
chained to it.
Given a file address, record id and RCC character it checks the record
found at the address given by comparing the ID and RCC there for agreement
with those given. If the record matches, it releases the file
address.
If a forward chain is found, it attempts to find the chained record, and
repeats the above procedure. The forward chain address field of the
record contains F'0' if there is no chained record.
If a hardware error, an ID/RCC discrepancy or an invalid file address
occur, it issues a system error.
This macro generates a CREMC macro. The CREMC macro may cause
depletion of main core storage.
Format
- label
- A symbolic name can be assigned to the macro statement.
- HDR=
- The standard header. Valid values are:
- 4
- Release the chain by using 4-byte file addresses.
- 8
- Release the chain by using 8-byte file addresses.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- R14 must be available. RLCHA inserts byte count of the field
referenced by R15.
- For HDR=4, R15 must contain the address of a 12-byte field formatted as
follows:
- Bytes
- Contents
- 0-1
- Record ID
- 2
- Record code check
- 3-7
- Not used
- 8-11
- File address of first record to be released.
- For HDR=8, R15 must contain the address of a 24-byte field formatted as
follows:
- Bytes
- Contents
- 0-1
- Record ID
- 2
- Record code check
- 3-7
- Not used
- 8-11
- Not used
- 12-15
- Not used
- 16-23
- 8-byte file address of the first record to be released.
Return Conditions
- Control is returned to the next sequential instruction.
- The contents of R14 and R15 are unknown. The contents of all other
registers are preserved across this macro call.
- The ECB levels remain unchanged.
Programming Considerations
- This macro can be run on any I-stream.
- To be released, all succeeding records must have the same record ID and
code check as the first record in the chain. If the succeeding records
do not have the same ID and code check, the RLCH subroutine exits.
- This macro issues a CREMC to the RLCH program. The CREMC macro may
cause depletion of storage.
- TPF uses register R14 which contains F'12' after the RLCHA macro
runs.
- TPF transaction services processing affects RLCHA macro processing in the
following ways:
- The RLCHA macro is not called until commit processing has completed
successfully.
- When the TXRBC macro has completed successfully, the RLCHA requests are
discarded and file addresses are not released.
Examples
RLCHA
The RLCHA invocation uses the address in R15 to refer to a data field
containing the record id, record code check, and file address of the record to
be released. The record is released and any records chained to it are
released as well.