z/OS JES2 Macros
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


USCTPCE - INITIAL ENTRY POINT

z/OS JES2 Macros
SA32-0996-00

          TITLE 'USER EXTENSION MODULE -- USCTPCE - SECURITY PROCESSOR,  C
                 INITIAL ENTRY POINT'
*************************************************************************
*                                                                       *
* PROCESSOR NAME -- USCTPCE                                             *
*                                                                       *
* DESCRIPTIVE NAME -- USER SECURITY PROCESSOR                           *
*                                                                       *
* FUNCTION -- MANAGE THE INSTALLATION SECURITY SAF CALLS BY PASSING     *
*             A REQUEST TO THE SECURITY PROCESSOR'S SECURITY            *
*             SUBTASK TO ISSUE THE SAF CALL.                            *
*                                                                       *
* NOTES --    BECAUSE A JES2 PROCESSOR IS NOT ALLOWED TO DIRECTLY       *
*             ISSUE AN OS WAIT, USCTPCE ATTACHES A SUB-TASK TO          *
*             PERFORM THOSE FUNCTIONS REQUIRING WAITS,  THE SUB-TASK,   *
*             USCTDTE, PERFORMS THE CALL TO THE SECURITY                *
*             AUTHORIZATION FACILITY (SAF).                             *
*                                                                       *
*                                                                       *
* REGISTER CONVENTIONS -- R0 - R2 -- WORK REGISTERS                     *
*                         R3      -- ADDRESS OF $DTE                    *
*                         R4      -- ADDRESS OF WORK ELEMENT            *
*                         R5 - R9 -- WORK REGISTERS                     *
*                         R10     -- ADDRESS OF $UCT                    *
*                         R11     -- ADDRESS OF $HCT                    *
*                         R12     -- BASE ADDRESSABILITY                *
*                         R13     -- ADDRESS OF PCE                     *
*                         R14     -- LINKAGE REGISTER                   *
*                         R15     -- LINKAGE REGISTER                   *
*                                                                       *
*************************************************************************
          EJECT
*************************************************************************
*                                                                       *
*                  USCTPCE INITIAL ENTRY POINT                          *
*                                                                       *
*************************************************************************
          SPACE 2
          USING UCT,R10               ESTABLISH UCT ADDRESSABILITY
          SPACE 1
USCTPCE   $ENTRY BASE=R12             PROVIDE PROCESSOR ENTRY POINT
          SPACE 1
          L     R10,$UCT              OBTAIN THE UCT ADDRESS
          EJECT
*************************************************************************
*                                                                       *
*            MAIN LOOP OF THE SECURITY PROCESSOR                        *
*                                                                       *
*************************************************************************
          SPACE 1
USCTYLOP  $ACTIVE                     INDICATE PROCESSOR ACTIVE
1
          BZ    USCATACH              NO, GO ATTACH IT
          TM    DTEFLAG1-DTE(R3),DTE1ACTV    SUBTASK ACTIVE...
          BO    USCTEST               YES, GO QUEUE UP MEMBER
          SPACE 1
*************************************************************************
*                                                                       *
*           DETACH THE SECURITY SUBTASK (ABENDED)                       *
*                                                                       *
*************************************************************************
          SPACE 1
         $DTEDYN DETACH,ID=UDTESCTY,DTE=(R3),WAIT=XECB                   C
                                    DETACH ABENDED SUB-TASK
          XC    SCYDTEAD,SCYDTEAD   CLEAR DTE ADDR
          EJECT
*************************************************************************
*                                                                       *
*           (RE)-ATTACH THE SECURITY SUBTASK                            *
*                                                                       *
*************************************************************************
          SPACE 1
USCATACH  $DTEDYN ATTACH,ID=UDTESCTY,WAIT=XECB,ERRET=USCATERR            C
                                                 ATTACH USCTDTE
          ST    R1,SCYDTEAD          STORE SUBTASK DTE ADDRESS
          MVC   XECBECB-XECB+DTEIXECB-DTE(,R1),$ZEROS CLEAR              C
                                                 COMMUNICATION ECB
          LR    R3,R1                SET THE SUBTASK DTE ADDRESS
          ST    R11,SCDHCT(,R3)      STORE HCT ADDRESS IN DTE XTNSN  @SA
*************************************************************************
*                                                                       *
*           DETERMINE IF THERE IS WORK TO BE DONE                       *
*                                                                       *
*************************************************************************
          SPACE 1
USCTEST   ICM   R4,B'1111',UCTSYQUE    ANYWORK TO DO...
          BNZ   USCWORK                YES, GO DO IT
          SPACE 1
         $DORMANT                      INDICATE THAT PROCESSOR COMPLETE
          SPACE 1
         $WAIT SCTY,INHIBIT=NO         WAIT FOR WORK
          B    USCTYLOP                GO CHECK FOR WORK TO DO
          EJECT
*************************************************************************
*                                                                       *
*            SET UP FOR SUB-TASK TO PROCESS JOB                         *
*                                                                       *
* INSTALLATION CODE WOULD GO HERE TO PASS TO SUBTASK THE NECESSARY      *
* INFORMATION (THROUGH THE DTE EXTENSION THAT IS UNIQUE FOR THE         *
* SECURITY SUBTASK).                                                    *
*                                                                       *
*************************************************************************
          SPACE 1
USCWORK   DS    0H
          XC    UCTSYQUE          INDICATE WORK BEING PROCESSED (IN      C
                                  REALITY THIS WOULD PROBABLY UNCHAIN    C
                                  THE REQUEST, NOT CLEAR THE QUEUE)
          EJECT
*************************************************************************
*                                                                       *
*       MVS POST THE SUBTASK FOR WORK TO DO AND $WAIT FOR IT TO         *
*       COMPLETE.  NOTE THAT THE CALL TO THE SUBTASK IS $TRACE'D,       *
*       IF TRACING IS ACTIVE.                                           *
*                                                                       *
*************************************************************************
          SPACE 1
          MVC   XECBECB-XECB+DTEIXECB-DTE(,R3),$ZEROS CLEAR ECB          C
                                                      FOR $WAIT
          LA    R1,DTEWECB-DTE(,R3)     POINT TO THE WORK ECB
          SPACE 1
          POST  (1)                     POST SECURITY SUBTASK FOR WORK
          SPACE 1
         $TRACE ID=255,LEN=USCSAFML,OFF=USCTROFF,NAME=SAFCALL
          MVC   0(USCSAFML,R1),USCSAFM  SET INFORMATION TO BE TRACED
          SPACE 1
USCTROFF  LR    R1,R3                   GET DTE ADDRESS
         $WAIT  OPER,XECB=DTEIXECB-DTE(,R1) $WAIT FOR SUB-TASK           C
                                             TO POST US
          EJECT
*************************************************************************
*                                                                       *
*                 SUBTASK HAS POSTED US BACK                            *
*                                                                       *
*    INSTALLATION CODE WOULD GO HERE TO VALIDATE THE SUCCESS OF THE     *
*    SECURITY CALL AND TO DO ANY PROCESSING RELEVANT TO THE SUCCESS     *
*    OR FAILURE OF THE CALL.                                            *
*                                                                       *
*************************************************************************
          SPACE 1
          DS    0H                   VALIDATE THE RESULT OF THE SECURITY C
                                     CALL.
          SPACE
*************************************************************************
*                                                                       *
*           BRANCH TO OBTAIN THE NEXT ITEM TO VERIFY                    *
*                                                                       *
*************************************************************************
          SPACE 1
          B     USCTEST                GO CHECK FOR MORE WORK
          EJECT
*************************************************************************
*                                                                       *
*        AN ERROR WAS ENCOUNTERED ON THE ATTACH OF THE SUBTASK.         *
*        WAIT FOR 30 SECONDS AND ATTEMPT TO TRY AGAIN.                  *
*                                                                       *
*************************************************************************
          SPACE 1
USCATERR  LA    R1,SCYTQE              GET ADDRESS OF PCE TQE
          LA    R0,30                  SET TIME INTERVAL
          ST    R0,TQETIME(,R1)         IN TQE
          ST    R13,TQEPCE(,R1)        STORE PCE ADDRESS IN TQE
         $TIMER (41)                   CHAIN THIS TQE
         $WAIT  WORK                    AND WAIT FOR INTERVAL TO ELAPSE
          B     USCATACH               GO ATTACH SUBTASK
          SPACE 1
*************************************************************************
*                                                                       *
*           LIST LITERALS AND SUSPEND ADDRESSABILITIES.                 *
*                                                                       *
*************************************************************************
          SPACE 1
          LTORG
          SPACE 1
          DROP  R10,R12,R13          SUSPEND UCT, BASE, AND PCE ADDRESS

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014