This general macro determines whether a core block is being held at a
specified level or data event control block (DECB) by using a CLI instruction
to test the appropriate byte in the entry control block (ECB). A user
can specify two symbolic addresses: one for return of control if the
core level or DECB is in use, and the other for return if it is not in
use. At least one of these addresses must be supplied.
Format
- label
- A symbolic name can be assigned to the macro statement.
- DECB=(reg)
- The general register (R1-R7) containing the address of the DECB to
be tested for a core block held.
- INUSE
- A location in which to branch if the ECB data level or DECB tested
contains a core block.
- symbol1
- The address of the routine in which to branch when an ECB data level or
DECB is in use.
- LEVEL
- The level to be tested for a core block held.
- literal1
- The value is a core level such that 0 <= literal1 >=F
- NOTUSED
- A location in which to branch if the ECB data level or DECB tested does
not contain a core block.
- symbol2
- The address of the routine in which to branch when ECB data level or DECB
is not in use.
- Note:
- Either symbol1 or symbol2, or both, must be specified
together with the associated keywords.
Entry Requirements
- R9 must contain the address of the ECB being processed.
- Either INUSE, NOTUSED, or both parameters must be defined.
Return Conditions
- All registers are preserved across this macro call.
- If only the INUSE parameter is used, an ECB data level or DECB holding a
core block will lead to a branch to the location specified by INUSE. If
no core block is held at that ECB data level or DECB, control will be returned
to the next sequential instruction (NSI).
- If only the NOTUSED parameter is used and no core block is held at the
tested ECB data level or DECB, control will be returned to the symbolic
location specified by the NOTUSED parameter. If a core block is held at
the tested ECB data level or DECB, control will be returned to the NSI.
- If both NOTUSED and INUSE are used, control will be returned to the
symbolic location specified by the parameter that satisfies the condition of
the ECB data level or DECB tested.
Programming Considerations
- This macro can be run on any I-stream.
- When the ECB data levels or DECBs are to be tested with the intent of
releasing the core blocks for those ECB data levels or DECBs that have core
blocks held, use the CRUSA macro.
Examples
None.