gtpi1m0dSystem Installation Support Reference

Creating a Control Program Exit Point and User Exit

The TPF system provides exit points for all of the control program user exits listed in this chapter. To create your own control program exit point and user exit, do the following:

  1. Update these 3 arrays in DCTUCL:
    1. The Exit Point List (&UEP). This array contains abbreviated names for the user exits.
    2. The Exit Point Status array (&ATT). This array identifies whether an exit is dynamic (and inactive or active), or nondynamic. Dynamic exit points have an initial value of "UCLDYN" (dynamic and inactive), while nondynamic exit points are identified by 2 zeros.
    3. The Exit Point Description array (&DESC) contains a description of the exit.

    Entries in each array correspond to entries with the same subscript in the other 2 arrays. For example, the entries for the nondynamic RIAT exit point are:

        &UEP(37)   SETC  'RIT'
        &ATT(37)   SETC  '00'
        &DESC(37)  SETC  'RIAT EXIT POINT'
    

    The entries for the dynamic overlay fast link macro exit point are:

        &UEP(13)   SETC  'FLX'
        &ATT(13)   SETC  'UCLDYN+UCLOVR'
        &DESC(13)  SETC  'FAST LINK MACRO EXIT'
    

    Entries can be added by overlaying spare or unused entries or by adding to the end of the arrays. Twelve spare entries have been provided for you.

    When adding entries to these arrays it is important to insert new entries at the end of the array, but before the last entry. The last entry in each array marks the end, and must have the following values:

        &UEP(n)    SETC  'XXX'
        &ATT(n)    SETC  '00'
        &DESC(n)   SETC  'END OF TABLE'
    

    where n is the size of the array, increased by the number of exits you have added.

    Note:
    The arrays are logically split into two sections. The first section is fixed at 160 entries (index numbers 0 -- 159); it is used for performance-critical user exits. Each user exit has a corresponding entry both at CPMUXTBL in the CAPT low core table and in the DCTUCL. The second section is used for all other user exits; each of these user exits has a corresponding entry only in the DCTUCL.
  2. If you add a new control program user exit by overlaying a spare or unused entry, you need to reassemble only the CAPT copy member. If you add a new control program user exit by adding an entry to the end of an array, you need to reassemble all CP CSECTS and link-edit the control program because of CAPT copy member expansion.
  3. Update one array in UXITC: the Exit Point List (&UEP). This entry corresponds to the &UEP entry in the DCTUCL macro, and the subscripts must match.

    Additions to this array are made in exactly the same way as for the DCTUCL arrays: the subscript is the same for the corresponding entry, and any additions must be made at the end, before the entry that marks the end of the array:

        &UEP(n)    SETC  'XXX'
    
  4. Add UXITC macro processing at the appropriate exit point, to use the new user exit.
  5. Install the user exit (see Installing Control Program User Exits).