*DECK DB$SFST 
USETEXT CDCSCTX 
      FUNC DB$SFST I; 
      BEGIN 
 #
* *   DB$SFST -- DO A STATUS SFCALL              PAGE  1
* *   D E TRIGLIA                                DATE 1/29/80 
* 
* DC  PURPOSE 
* 
*     THIS ROUTINE DOES A NON-INTERRUPTIBLE SFCALL TO GET THE STATUS
*     OF THE USER WHO HAS THE CURRENT TQT.
* 
* DC  ENTRY CONDITIONS
* 
*     TQT POINTER IS SET UP.
* 
* DC  EXIT CONDITIONS 
* 
*     STATUS SFCALL HAS BEEN COMPLETED. 
* 
* DC  CALLING ROUTINES
* 
*     ACCEPT   ( IN DB$LOK )
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$FLOP;                # IDENTIFY FLOW POINT          #
      XREF PROC DB$RCLL;                # KEEP CDCS IN RECALL WHILE    #
                                        # WAITING FOR STATUS SFCALL    #
      XREF PROC DB$SFCM;                # SFCALL TO GET STATUS         #
#                                                                      #
 #    TURN OFF JOVEC COMMENTS                                          #
#                                                                      #
#     THIS ARRAY IS FOR MAKING SFCALLS                                 #
#                                                                      #
      ARRAY SFCALL [0:0] S(2);          # SFCALL DESCRIPTION           #
        BEGIN 
        ITEM SFFC    U( 0, 0,60);       # FUNCTION CODE                #
        ITEM SFCOMPB B( 0,59, 1);       # SFCALL COMPLETE BIT          #
        ITEM SFRC    U( 0, 0, 6);       # SFCALL RETURN CODE           #
        ITEM SFRUID  U( 1, 0,60);       # SFCALL RUN-UNIT ID           #
        END 
  
  
 #
* 
* DC  DESCRIPTION 
* 
*     ISSUE SFCALL MACRO FOR STATUS.
 #
  
      CONTROL IFGR DFFLOP,0;
        DB$FLOP("SFST");
      CONTROL ENDIF;
  
#                                                                      #
#     SET UP THE SFCALL PARAMETER PACKET.                              #
#                                                                      #
      SFFC   [0]  = DFSFSTAT;           # SFCALL STATUS FUNCTION CODE  #
      SFRUID [0]  = TQRUID [0];         # SFCALL RUN-UNIT ID           #
      DB$SFCM (LOC(SFCALL));
 #
*     CALL DB$RCLL TO KEEP CDCS IN RECALL WHILE THE SFCALL IS BEING 
*     PROCESSED.
 #
      IF NOT SFCOMPB [0]
      THEN
        BEGIN 
  
        CONTROL IFGR DFFLOP,0;
          DB$FLOP("SFST-1");
        CONTROL ENDIF;
  
        DB$RCLL (LOC(SFCALL));
        END 
      DB$SFST = SFRC [0]; 
      END 
      TERM
