Use this system macro to distinguish between:
- A resource identifier (RID) and an SCBID
- An RVT1 address and an SCB1 address
- An RVT2 address and an SCB2 address.
This macro causes a conditional branch depending on whether the tested
value refers to a resource vector table (RVT) or a session control block
(SCB).
Format
- INPUT
- This parameter specifies the location of the input to be tested.
- symbol
- The symbolic address of the input. If the input is an RID or an
SCBID, symbol is a 3-byte field; if the input is an RVT1, RVT2,
SCB1, or SCB2 address, symbol is a 4-byte field.
- (Rx)
- The register containing the input. If the input is an RID or an
SCBID, it is right-justified in (Rx) with the high-order bits set to
zeros; if the input is an RVT1, RVT2, SCB1, or SCB2 address,
(Rx) contains the 4-byte address. Valid registers are
R0-R7 and R15.
- TYPE
- This parameter specifies the type of input.
- ID
- The input is either an RID or an SCBID.
- 1
- The input is either an RVT1 address or an SCB1 address.
- 2
- The input is either an RVT2 address or an SCB2 address.
- IFRVT=label1
- This parameter specifies the symbolic label to which control is
transferred if the input refers to an RVT.
- IFSCB=label1
- This parameter specifies the symbolic label to which control transferred
if the input refers to an SCB.
Entry Requirements
- The input value must be a valid RID, SCBID, RVT1 address, SCB1 address,
RVT2 address, or SCB2 address, corresponding to the value of the TYPE
parameter.
- Specify only the IFRVT parameter or the IFSCB parameter; do not
specify both.
- If the input is specified as a register, it must be one of R0 through R7
or R15, enclosed in parentheses.
- All labels specified as operands must be addressable using a register
other than R14.
Return Conditions
- If the input references an RVT and a label is coded with the IFRVT
parameter, a branch is taken to the specified label; otherwise,
processing continues following the macro expansion.
- If the input references an SCB and a label is coded with the IFSCB
parameter, a branch is taken to the specified label; otherwise,
processing continues following the macro expansion.
- The contents of R14 are unknown. All other registers are
unchanged.
Programming Considerations
- This macro is for use by systems programs only.
- This macro does not validate the input value.
Examples
INPUT_RID_OR_SCBID EQU EBROUT
.
.
.
IFRVTC INPUT=INPUT_RID_OR_SCBID,TYPE=ID,IFSCB=FLAG_SCBID
MVI ID_FLAG,IS_A_RID
B NOW_WE_KNOW
FLAG_SCBID DS 0H
MVI ID_FLAG,IS_AN_SCBID
NOW_WE_KNOW DS 0H
.
.
.
IFRVTC INPUT=(R2),TYPE=1,IFRVT=ITS_AN_RVT1_ADDRESS
BAS R7,PROCESS_SCB1
B RESOURCE_HAS_BEEN_PROCESSED
ITS_AN_RVT1_ADDRESS DS 0H
BAS R7,PROCESS_RVT1
RESOURCE_HAS_BEEN_PROCESSED DS 0H
.
.
.