*DECK UCPSWPI 
USETEXT COMCBEG 
USETEXT COMRQUE 
USETEXT COMRSFC 
PROC UCPSWPI((JOBID));
# TITLE UCPSWPI - REQUEST SWAPIN OF UCP. #
  
      BEGIN  # UCPSWPI #
  
# 
**    UCPSWPI - REQUEST SWAPIN OF UCP.
* 
*     THIS PROCEDURE WILL INITIATE SWAPIN OF A UCP. 
* 
*     PROC UCPSWPI(JOBID).
* 
*     ENTRY   -  QU$ADDRESS IS BASED ARRAY CONTAINING REQUEST TO BE 
*                  QUEUED UNTIL UCP SWAPIN. 
*                JOBID IS JOB IDENTIFICATION OF UCP TO BE SWAPPED IN. 
* 
*     EXIT    -  UCP SWAPIN HAS BEEN INITIATED. 
*                SWAPIN REQUEST IS QUEUED ON WAIT SWAP QUEUE. 
* 
*     PROCESS -  SAVE QU$ADDRESS
*                GET A FREE QUEUE ENTRY FOR SWAPIN REQUEST
*                BUILD SWAPIN REQUEST 
*                MAKE SSF SWAPIN CALL 
*                SET SWAPIN REQUEST AUX POINTER TO SAVED QU$ADDRESS 
*                QUEUE SWAPIN REQUEST ON WAIT SWAP QUEUE
*                RETURN 
* 
* 
# 
  
      ITEM JOBID I;                  # JOBID OF UCP TO BE SWAPPED # 
  
# 
****  PROC UCPSWPI - XREF LIST BEGIN. 
# 
  
      XREF
        BEGIN 
        PROC GETFREE;                # GET FREE QUEUE ENTRY # 
        PROC QUEUE;                  # ADD ENTRY TO QUEUE # 
        PROC CALLSYS;                # MAKE RA+1 REQUEST #
        END 
  
# 
****  PROC UCPSWPI - XREF LIST END. 
# 
  
  
      ITEM QUADR I;                  # TEMPORARY CELL FOR QU$ADDRESS #
  
CONTROL EJECT;
  
      QUADR = P<QU$ADDRESS>;
      GETFREE;
      QU$TYPE = QT$UCPSSFC; 
      QU$WD1 = 0; 
      QU$SFFC1 = SF$SWPI; 
      QU$SFJOBID = JOBID; 
  
      SSFADDR = P<QU$ADDRESS> + 1;
      SSFRCL  = FALSE;
      CALLSYS(SSF$CALL);
  
      QU$AUXPTR = QUADR;
      QUEUE(LOC(WAITSWAPQ));
      RETURN; 
      END  # UCPSWPI #
  
      TERM
