gtpi1m2kSystem Installation Support Reference

User Header Label

User exit routine UCCUHL is invoked from the BUILDHDR routine if the exit point named UHL is active. UCCUHL allows you to modify tape header labels. Exit point UHL, which is nondynamic, is located in copy segment CEFM of CSECT CCTAPE.

User exit routine UCCUHL contains a control routine, UHLSTART, that calls user label subroutines that you can modify.

The user header label control routine calls subroutines UHL1, UHL2, ... UHL8 in order, until all 8 subroutines are called, or until any one of the subroutines fails to set up the user label properly. A properly setup user header label will start with the characters UHLx where x is the current label number. After verifying the label, it is written.

Note:
If you use the user header label routines user exit, you should also use the real-time user label routines user exit in segment UXTH. See User Label Routines for more information.

General Conditions at Entry

The following registers are set up for the user by each of the user label subroutines:

R2
Pointer to the IBM standard HDR1 and HDR2 labels.

R3
Pointer to User Label Work Area (mapped by ITUHL).

R4
Pointer to the TLMR (Tape Label Mask Record) entry.

R5
Pointer to the TSTB/1 (Tape Status Table/Section 1) entry.

R6
Pointer to the TSTB/2 (Tape Status Table/Section 2) entry.

R11-R15
See User Exit Routines - Common Entry Conditions.

System Conditions at Entry

System state
Supervisor

System mask
Masked

Protect key
0

Address space
SVM.

Programming Considerations at Entry

When UXTH is called to write user header records, the TSTB/3 entry for the tape is not yet set up. Therefore, to be consistent with UXTH, R4 has a pointer to the TLMR record. This requires you to use the equates in TAPEQ to access any fields in the TLMR.

When the first user label subroutine gets control (UHL1, UTL1, or IHL1), registers R2, R4, R5, and R6 will be set up as listed previously. R3 will point to the base of the user label work area (ULWA). It is recommended that you do not change this register. However, if it is necessary to use R3, the pointer to the ULWA can be found in CE1CR3. R7 will contain the return address and this value must not be changed. R0 and R1 can be used by the user label subroutine.

When any other user label subroutines get control, register R3 will once again point to the base of the previous user label work area. R0, R1, R2, R4, R5, and R6 will all contain whatever values they contained on exit from the previous user label subroutine.

Data Structures

DSECT ITUHL maps a 1055-byte working area that is used by UXTH. The working area is broken up into the following areas:

Programming Considerations on Return

See User Exit Routines - Common Return Conditions.

General Conditions on Return

See User Exit Routines - Common Return Conditions.