*DECK CTRLNFO 
USETEXT COMCBEG 
USETEXT COMRAPL 
USETEXT COMRQUE 
USETEXT COMRRTN 
PROC CTRLNFO; 
# TITLE CTRLNFO - PROCESS SUPERVISORY MESSAGE CTRL/INFO/R. #
  
      BEGIN  # CTRLNFO #
  
# 
**    CTRLNFO - PROCESS SUPERVISORY MESSAGE CTRL/INFO/R.
* 
*     CTRLNFO RESPONDS TO THE CTRL/INFO/R SUPERVISORY MESSAGE REQUEST.
* 
*     PROC CTRLNFO. 
* 
*     ENTRY   -  QU$ADDRESS IS BASED ARRAY CONTAINING CTRL/INFO/R 
*                  SUPERVISORY MESSAGE REQUEST. 
*                APL$HEADER IS BASED ARRAY FOR APPLICATION TABLE HEADER.
* 
*     EXIT   -   CTRL/INFO/R REQUEST PROCESSED. 
* 
*     PROCESS -  IF REQUEST WAS FOR LID TO PID MAPPING
*                THEN:  
*                  INITIATE LID TO PID MAPPING. 
*                ELSE:  "ALL OTHER FUNCTIONS REQUIRE SYS-ORIGIN"
*                  IF REQUESTER IS SYSTEM-ORIGIN: 
*                      IF REQUEST WAS FOR END OF JOB CONNECT
*                      THEN:  
*                        ATTEMPT TO SET END OF JOB CONNECT. 
*                        IF REQUESTOR SWAPPED 
*                        THEN:  
*                          INITIATE REQUESTOR SWAPIN. 
*                        ELSE:  
*                          IF SSF ERROR 
*                          THEN:  
*                            FREE QUEUE ENTRY.
*                          ELSE:  " EOJ CONNECT SET " 
*                            SET EOJ CONNECT FLAG IN APPL TABLE.
*                            INITIATE NSUP REPLY. 
*                      ELSE:  "TRANSMIT NETWORK DESCRIPTION TABLE"
*                        CALL CTRLNDT.
# 
  
# 
****  PROC CTRLNFO - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC CTRLNDT;                # PROCESS SEND-NETWORK-DESC-TABL # 
        PROC CTRLPID;                # PROCESS MAP-LID-TO-PID # 
        PROC FREE;                   # RELEASE QUEUE ENTRY #
        PROC RTNNSUP;                # INITIATE NSUP REPLY #
        PROC SETLTC;                 # SET EOJ CONNECT #
        PROC UCPMSG;                 # SEND MSG TO UCP #
        PROC UCPSWPI;                # INITIATE UCP SWAPIN #
        END 
  
# 
*     PROC CTRLNFO - XREF LIST END. 
# 
  
  
      ITEM SETRTN  I;                # RETURN CODE FROM SETLTC #
      ITEM MSG$NOVAL  C(41) = 
                    "APPLICATION NOT VALIDATED FOR CTRL/INFO/R";
  
  
CONTROL EJECT;
  
      IF QU$CTRNFNC EQ CTR$LIDPID 
      THEN
        BEGIN  # FIND PID FOR REQUESTED LID # 
        CTRLPID;
        END 
  
      ELSE
        BEGIN  # OTHER FUNCTIONS REQUIRE SYSTEM ORIGIN #
        IF NOT APL$SYSORG 
        THEN
          BEGIN 
          UCPMSG(APL$JOBID,LOC(MSG$NOVAL),41,REPLY$ABT,QU$UCPA);
          FREE; 
          RETURN; 
          END 
  
      CONTROL IFEQ OS$NOSBE;
        IF QU$CTRNFNC EQ CTR$SETEOJ 
        THEN
          BEGIN  # SET END OF JOB CONNECT # 
          IF APL$WAIT NE 0
          THEN
            BEGIN 
            APL$WAIT = 0; 
            APL$TIMER = 0;
            END 
  
          SETLTC(EOJC$,SETRTN); 
  
          IF SETRTN EQ 1
          THEN
            BEGIN  # UCP SWAPPED OUT #
            UCPSWPI(APL$JOBID); 
            END 
  
          ELSE
            BEGIN 
            IF SETRTN EQ 2
            THEN
              BEGIN  # SSF ERROR ENCOUNTERED #
              FREE; 
              END 
  
            ELSE
              BEGIN  # EOJ CONNECT SET #
              APL$EOJCON = TRUE;
              RTNNSUP;
              END 
            END 
  
          END  # SET END OF JOB CONNECT # 
  
        ELSE
      CONTROL ENDIF;
  
          BEGIN  # SEND NETWORK DESCRIPTION TABLE # 
          CTRLNDT;
          END 
        END 
  
      RETURN; 
      END  # CTRLNFO #
  
      TERM
