gtps1m50System Macros

SLCQC-SLC Queue Handling

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:

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

Return Conditions

Programming Considerations

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.