Use this system macro to have an entry control block (ECB)-controlled
program request that the control program (CP) manipulate the synchronous link
control (SLC) queues and release storage in the system virtual memory
(SVM).
Required Authorizations
|
Key0
| Restricted
| System
| Common Storage
|
| X
|
|
|
Format
- label
- A symbolic name can be assigned to the macro statement.
- FUNCT
- Name of function to be performed. This required parameter must be
one of the following values:
- GET_TOP
- Retrieve a message from the top of the queue.
- PUT_TOP
- Place a message at the top of the queue.
- PUT_BOTTOM
- Place a message at the end of the queue.
- GET_MCR
- Retrieve a queued message which qualifies for placement in the message
control record (MCR).
- JOIN_QUEUES
- Adds a channel queue to the front of a link queue.
- REL_MSG
- Removes a message from the queue and releases the core block.
- PURGE_QUEUE
- Purge the queue. R15 contains the number of messages purged.
- REL_CORE
- Releases a core block residing in the SVM.
- QANCHOR1=Rx
- Specifies a register (R0 through R7) that contains the address of the
anchor of the queue to be manipulated. It is required for all functions
except REL_CORE.
- LEVEL=symbol
- Specifies a core block reference word (D0-DF). It must be specified
for the following functions:
- GET_TOP
- PUT_TOP
- PUT_BOTTOM
- GET_MCR.
- QANCHOR2=Rx
- Specifies a register (R0 through R7) that contains the address of the
anchor of the queue to be added to the top of the queue referenced by
QANCHOR1. It is required for the JOIN_QUEUES function.
- MSGADDR=Rx
- Specifies a register (R0 through R7) that contains the system virtual
address (SVA) of a message to be released. It is required for REL_MSG
and REL_CORE.
Entry Requirements
- This macro must be called from the ECB virtual memory (EVM).
- R9 must contain the address of the program's ECB.
Return Conditions
- Control is returned to the next sequential instruction NSI.
- The message that was dequeued is attached to the data level
specified.
- R15 contains a return code as follows.
Return Code
| Function
| Meaning
|
0
| GET_TOP
GET_MCR
REL_MSG
| Message returned on data level specified.
|
4
|
| Queue empty or message not found.
|
0
| PUT_TOP
PUT_BOTTOM
JOIN_QUEUES
REL_CORE
| Processing complete.
|
Programming Considerations
- This macro is restricted to SLC ECB-controlled program usage on the main
I-stream only.
- The GET_MCR function searches the queue for a message with the following
characteristics:
- High integrity
- Not a duplicate
- Not being retransmitted because of an earlier problem.
Examples
MYLABEL SLCQC FUNCT=GET_TOP,QANCHOR1=R3,LEVEL=D0
The first message on the queue pointed to by the address in register R3 is
detached from the queue (dequeued) and attached to ECB data level 0.
MYLABEL SLCQC FUNCT=PUT_TOP,QANCHOR1=R1,LEVEL=D3
The message attached to data level 3 is detached and added to the top of
the queue pointed to by the address in register R1.
MYLABEL SLCQC FUNCT=JOIN_QUEUES,QANCHOR1=R1,QANCHOR2=R2
The channel queue pointed to by the address in R2 is placed at the
beginning of the link queue pointed to by the address in register R1.