gtpn1m0vNon-SNA Data Communications Reference

Core-Resident CCP

The synchronous link control section of the core-resident CCP and receipt of information on a line, the control of LCB and message queues, the activating of the input LCB and message processing programs and the monitoring of time out situations.

The following members contain logic entirely associated with control of Synchronous Links.

CLQA
SLC Common Area - see SLC Common Area (CX#EV).

Also, it contains keypoint D and translate tables used by SLC communications source and the output message handler.

CLQC
Link OPZO

When a data message block or ENQ is taken from either the input or ready (PI) list by the CPU loop, it is passed to this routine by means of the branch vector stored in the block. OPZO adds the blocks to the channel's input block queue and if input message handler is not already active, activates it.

CLQE
This contains two routines:
  1. Add to Input LCB Queue
  2. Get Core and Initialize READ CCWs

These routines are used by other members. CLQG uses function (1) to add actual LCBs whilst CLQM uses it to add "pseudo LCBs" reflecting time out or TSI exhaustion situation. Function (2) is used by CLQG as part of its initialization logic.

CLQG
Input Initiate, Interrupt and Error Interrupt Routines

These routines set up and control the channel command words (CCW) associated with reading information, and handle the queueing of input LCBs and data message blocks. Input LCBs, except for ENQ, are added to the Input LCB queue, and ENQs and all data message blocks are added either to the input or ready (PI) list, according to the setting of a system parameter (in CLQA).

CLQI
Output Initiate, Interrupt and Error Interrupt Routines

These routines set up and control the channel command words associated with writing information and handle the queueing and dequeueing of output LCB and message blocks (PLONC macro support). Output initiate includes the assignment of TSIs.

CLQK
SENDCK and SENDCA/SENDCC/SLMTC Intercept

Contains the code for handling application messages destined for transmission across a link, adding them to an AMQ and, if necessary, activating the appropriate output sender.

CLQM
Contains code to check various conditions on a regular one second basis. In particular it monitors each line and link for time-out conditions or TSI exhaustion adding "pseudo LCBs" to the Input LCB Queue if any arise.

The following modules have been modified, to a greater or lesser extent, to cater to the link.

CCIT
Modified by CPSE when dumping to allow only the clock update switch to be set (in the CPU loop) when an external interrupt, caused by the timer, occurs.

CLYM
Contains a linkage to the synchronous link line invalidation program.

CICR
Additions to the CINF Table.

CLVU
Additional branch addresses for link input and output core-resident CCP routines (that is, CLQG, CLQI).

CLXA/CLXM
The macro routing routine recognizes and routes SENDCA/SENDCC/SLMTC messages with pseudo line numbers to the send intercept code in CLQK. It also contains support for SENDCK.

CLVY
Contains code concerned with maintaining control unit error counts. Also code to direct an SWB (due to control unit error) to the synchronous link line invalidation program.

CLYE
Contains code to cater for a hung PCIL condition on a line.

CLYK
Contains code to route the SWB for line errors to the appropriate error routines in CLQG/CLQI.

CLVK
Contains code in the CIOUC macro support.

CPSE/CPSF
Contains logic necessary to save as much relevant information about links as possible in the event of a catastrophic systems error. Also needs to be aware of the input message handler in the case of a program error since there may be core block references embedded in the ECB work area.

CTIN
Contains the code to set up necessary tables and table addresses. For example, input and output LCB queues.