gtpi1m0qSystem Installation Support Reference

CCCTIN (CT25 and CT26)

The CTIN user exits are invoked in copy segment CT00 of CSECT CCCTIN. They are nondynamic exit points that do not follow the standards set by the other exit points. The exit routines are not in CUSR. Instead, they have their own copy segments, CT25, CT26, and CT99 in CCCTIN. The user exits control list (UCL) is not used, nor are the linkage macros used. This is because during initialization, many control program tables and system stacks are not yet available.

The CCCTIN exit permits the user to reserve and initialize main storage for user definition.

To activate exit points CT25 and CT99, you must change the statement at the beginning of each copy segment from EQU INIT00 to DS F.

CT00 tests for the relative location of CT25 and CT99. If the result is 0, the exit points are bypassed. CT26 is activated only when CT25 is in use. Refer to the commentary in the program listing for copy members CT25, CT26, and CT99 for additional information.

General Conditions at Entry

The registers at entry to CT25 are:

R1
Set to 0

R4
Address of next available main storage location

R8
Base of CTIN

R9
Base of CT25

R14
Return address.

System Conditions at Entry

System state
Supervisor

System mask
Masked

Protect key
0

Address space
IPLVM.

Programming Considerations at Entry

  1. On return, R1 must either be zero or contain the address of the user storage allocation table (USAT). If an address is returned, CT26 is activated to allocate storage for the user using the information in the USAT. Macro IUSAT is used to describe the layout of each individual entry in the USAT. The maximum number of entries is defined by the variable &SAADLN in SYSET. As released by IBM, this value is 50.
  2. CT25 is provided to allow you to reserve storage for user tables or other user-unique structures that require reserved main storage. This can be done through the following methods:
    1. Build a user storage allocation table, USAT, and pass the address to CT26, which does the actual allocation. The USAT should be built, using the USATC macro and assembled into CT25.
    2. Point to a USAT built elsewhere, perhaps in a user keypoint, and pass the address to CT26.
    3. Allocate storage directly in CT25 by updating R4, the next available storage pointer. However, this is not recommended.

    CT25 can also be used to relocate the user data in the FCTB. The core address of the FCTB can be obtained using the CINFC tag, CMMFCTV.

Programming Considerations on Return

R1
Address of USAT or 0.

R4
Must be unchanged or, if main storage was reserved by CT25 and the next available location has changed, R4 must contain the address of the next available main storage location rounded to the next doubleword.

R8
Must still contain the base of CTIN.

General Conditions on Return

The System Mask, System State, and Protect Key must be the same as on entry to CT25.