gtpi1m0q | System Installation Support Reference |
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
- 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.
- 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:
- 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.
- Point to a USAT built elsewhere, perhaps in a user keypoint, and pass the
address to CT26.
- 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.