*DECK CTRLPID 
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRNAM 
USETEXT COMRNET 
USETEXT COMRQUE 
USETEXT COMRRTN 
PROC CTRLPID; 
# TITLE CTRLPID - PROCESS CTRL/INFO REQUEST FOR LID TO PID MAPPING. # 
  
      BEGIN  # CTRLPID #
  
# 
**    CTRLPID - PROCESS CTRL/INFO REQUEST FOR LID TO PID MAPPING. 
* 
*     CTRLPID WILL FIND THE PID THAT LIKELY WILL BE ASSIGNED IN A 
*     SUBSEQUENT CON/ACRQ/R FOR THE LID IN THE CTRL/INFO REQUEST. 
* 
*     PROC CTRLPID. 
* 
*     ENTRY   -  QU$ADDRESS IS BASED ARRAY CONTAINING CTRL/INFO REQUEST.
*                APL$HEADER IS BASED ARRAY CONTAINING APPLICATION TABLE.
* 
*     EXIT    -  CTRL/INFO REQUEST PROCESSED. 
* 
*     PROCESS -  INITIATE SEARCH OF NETWORK DESCRIPTION TABLE TO FIND 
*                  PID LIKELY TO BE ASSIGNED. 
*                IF ASSOCIATED PID FOUND
*                THEN:  
*                  SAVE PID 
*                  SET UP CTRL/INFO/N RESPONSE. 
*                ELSE:  
*                  SET UP CTRL/INFO/A RESPONSE. 
*                INITIATE SUPERVISORY MESSAGE REPLY.
*                GET FREE QUEUE ENTRY 
*                INITIATE NSUP REPLY
*                RETURN.
* 
* 
****  PROC CTRLPID - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC FINDPTH;                # FIND PATH FOR LID #
        PROC GETFREE;                # OBTAIN FREE QUEUE ENTRY #
        PROC RTNNSUP;                # INITIATE NSUP REPLY #
        PROC SUPRPLY;                # INITIATE SUPERVISORY MESG REPLY #
        END 
  
# 
****  PROC CTRLPID - XREF LIST END. 
# 
  
  
      ITEM ACTSEL   B;               # UNUSED PARAMETER FOR FINDPTH # 
      ITEM FINDRTN  I;               # RETURN CODE FOR FINDPTH CALL # 
      ITEM UCPA     I;               # UCPA ADDRESS FROM CTRL/INFO REQ# 
  
CONTROL EJECT;
  
      P<NET$HEADER> = 0;             # FLAG FIRST CALL TO FINDPTH # 
      QU$PIDI = 0;                   # PID NOT PART OF SEARCH CRITERIA #
      UCPA = QU$UCPA; 
      FINDPTH(FINDRTN,ACTSEL);
  
      IF FINDRTN EQ SCAN$OK 
      THEN
        BEGIN  # PATH/PID FOUND # 
        QU$CTRLPID = NET$PID; 
        QU$PFCSFC = $CTRINFN;        # CTRL/INFO/N RESPONSE # 
        END 
  
      ELSE
        BEGIN  # PATH/PID NOT FOUND # 
        QU$RC = CTRN$LID; 
        QU$PFCSFC = $CTRINFA;        # CTRL/INFO/A RESPONSE  #
        END 
  
      SUPRPLY;
  
      GETFREE;
      QU$UCPA = UCPA; 
      QU$CHARGE = 1;                 # HIGH-OVERHEAD FUNCTION # 
      QU$JOBID = APL$JOBID; 
      RTNNSUP;
      RETURN; 
      END  # CTRLPID #
  
      TERM
