IFGTEP (tape exit parameters) maps the main parameter list for all of the open, close, EOV tape management exits. It also maps the function-specific parameter lists. The parameter lists are in protection key five.
The format of the main parameter list is:
Offset | Length or Bit Pattern | Name | Description |
---|---|---|---|
00 (X'00') | TEPM | Beginning of the parameter list | |
00 (X'00') | 8 | TEPMID | Control block identifier ("TEPMAIN") |
8 (X'08') | 4 | TEPMLEN | Length of main parameter list |
12 (X'0C') | 1 | TEPMVER | Version of parameter list (1) |
13 (X'0D') | 3 | Reserved | |
16 (X'10') | 1 | TEPMFUNC | Calling function (binary numeric):
|
17 (X'11') | 1 | TEPMOPENOP | First option for the DCB in the OPEN parameter list. Valid during all calls to the exits with one exception. If the application program used OPEN TYPE=J and suppressed the JFCB update, these bits will show EXTEND and OUTINX as OUTPUT and OUTIN during EOV and CLOSE. Note that all options except UPDAT are valid on tape. |
.... 0000 | INPUT | ||
.... 0001 | RDBACK | ||
.... 0011 | INOUT | ||
.... 0110 | OUTINX | ||
.... 0111 | OUTIN | ||
.... 1110 | EXTEND | ||
.... 1111 | OUTPUT | ||
18 (X'12') | 2 | TEPMCONC | Concatenation number. First or only data set is 0. |
20 (X'14') | 2 | TEPMVSEQ | Volume sequence number. The first volume is 1. |
22 (X'16') | 6 | TEPMVOL | Requested volume serial number, blank if output nonspecific or output VOL=REF and it is still not resolved. Not necessarily in JFCB, might be in JFCBX. First byte will not be X'FF', which would mean it is not resolved. Bit TEPMSYNV means that the system synthesized the volume serial number from other than a volume label. The volume mount exit can set bit TEPMNEWLAB to mean that the exit has changed this field to substitute the volume serial. |
28 (X'1C') | 1 | TEPMFLAG1 | Flags |
1... .... | TEPMSMS | SMS-managed volume. | |
.1.. .... | TEPMTLDS | Tape Library Dataserver. | |
..1. .... | TEPMCHKPT | Data set is a checkpoint data set. | |
...1 .... | TEPMASCII | The system translated the label from ASCII to EBCDIC or will translate from EBCDIC to ASCII. On input the system translates only if the label begins with ASCII HDR, EOV or EOF. | |
.... 1... | TEPMSAB | System issued an ABEND for this data set. Its ABEND completion code is in TEPMABC. | |
.... .1.. | TEPMAB | The current task is abending apparently because of a reason that is not related to this tape. Its code is shown in field TEPMABCODE. | |
.... ..1. | TEPMLWRIT | Current operation. "1" means that the caller will be writing or rewriting labels. If the caller is OPEN, then this bit will be zero if the OPEN option is INPUT, INOUT, RDBACK, EXTEND or OUTINX or if the OPEN option is is OUTPUT or OUTIN with DSP=MOD. If the caller is OPEN, then this bit will be one for OUTPUT or OUTIN without DISP=MOD. If the caller is EOV, then a zero means that the user's last I/O was to read. Either it read a tape mark or the user issued an FEOV or EOV macro. If the caller is EOV, then a one means that the user's last I/O was to write. Either it encountered the end of the tape or the user issued an FEOV or EOV macro. | |
.... ...1 | TEPMACCESS | Access intent. This will be 0 to indicate "read-only" if the OPEN option was for INPUT or RDBACK and it will be 1 to indicate "write" for any other OPEN option. | |
29 (X'1D') | 1 | TEPMFLAG2 | Flags |
1... .... | TEPMSYNV | Volume serial number in TEPMLABEL was synthesized by the system, possibly from sense bytes. | |
.1.. .... | TEPMVFRY | Volume has been verified. | |
..1. .... | TEPMLBS | The block size value is contained in TEPMBLKS | |
30 (X'1E') | 1 | TEPMFLAG3 | Flags |
1... .... | TEPMLABAN | Label anomaly exit being called | |
.1.. .... | TEPMVOLM | Volume mount exit being called | |
..1. .... | TEPMFILEV | File verification exit being called | |
...1 .... | TEPMFILES | File start of volume exit being called | |
.... 1... | TEPMFILEE | File end on volume exit being called | |
.... .1.. | TEPMATL | Allocated device is in the automated tape library | |
.... ..1. | TEPMMTL | Allocated device is in the manual tape library | |
.... ...1 | TEPMWRIT | Write channel program issued to tape in OPEN, EOV or CLOSE. | |
31 (X'1F') | 1 | TEPMRECTK | Recording technology |
0000 0000 | Unknown | ||
0000 0001 | 18-track | ||
0000 0010 | 36-track | ||
0000 0011 | 128-track | ||
0000 0100 | 256-track | ||
0000 0101 | 384-track | ||
0000 0110 | EFMT1 | ||
0000 0111 | EFMT2 | ||
0000 0101 | EFMT3 | ||
0000 1000 | EEFMT2 | ||
0000 0110 | EEFMT3 | ||
32 (X'20') | 1 | TEPMFLAG5 | Flags |
1... .... | TEPMWORM | Worm tape mounted. | |
.1.. .... | TEPMCRYP | On - the key-related fields have
data.
Off - the key-related fields contain binary zeroes. |
|
..xx xxxx | Reserved | ||
33 (X'21') | 1 | TEPMFLAG6 | Flags set by the exit |
1... .... | TEPMNEWLAB | Exit supplied a volume label. Valid only for label anomaly and volume mount exits. | |
.1.. .... | TEPMSCRTCH | Original volume request was for a nonspecific volume | |
..xx xxxx | Reserved | Set to zeros | |
34 (X'22') | 1 | TEPMMEDT | Media type |
0000 0001 | Media1 | ||
0000 0010 | Media2 | ||
0000 0011 | Media3 | ||
0000 0100 | Media4 | ||
0000 0101 | Media5 | ||
0000 0110 | Media6 | ||
0000 0111 | Media7 | ||
0000 1000 | Media8 | ||
0000 1001 | Media9 | ||
0000 1010 | Media10 | ||
35(X'23') | 1 | Reserved | |
36 (X'24') | 4 | TEPMABCODE | Task is abending with this code, in form xxyyyzzz, where yyy is system ABEND code that is normally displayed in hex and zzz is user ABEND code. Valid only if TEPMSAB or TEPMAB is on. Same format as TCBCMP. |
40 (X'28') | 4 | TEPMDCB | Address of DCB copy in protection
key 5 storage. Can include DEN, TRTCH, OPTCD=B, block count on current
volume, MACRF (indicates BSAM, QSAM or EXCP, length of EXCP DCB and
whether DCBBLKCT is valid), BUFNO, NCP, address of DCBE, BLKSIZE,
LRECL and RECFM. The block count normally is zero at file start on
volume except when the data set is open for read backwards or is being
extended. For EXCP, DCBMACRF includes an indicator as to whether
the user program is keeping a block count in DCBBLKCT (REPOS=Y).
If it is off, DCBBLKCT is not valid. It is invalid for any of these
reasons:
|
44 (X'2C') | 4 | TEPMUCB | Address of the captured UCB. At the call to the file-end-on-volume exit, the UCB should have volume error statistics because the tape was mounted or SVC 91 cleared them. These statistics differ in format between reels and cartridges. The UCB also tells whether a cartridge stack loader is attached. |
48 (X'30') | 4 | TEPMJFCB | Address of JFCB copy. Includes data set name, required label type, requested expiration date, requested volume serials (any that start with X'FF' have not yet been resolved), approximate limit on the volume count, density, file sequence number in the volume group, TRTCH, FREE=CLOSE. If the OPEN option was EXTEND or OUTINX and at least one volume serial was specified, then DISP in the JFCB has been changed to MOD. If DISP=MOD was coded and the OPEN option was EXTEND or OUTINX, but no volume serial was specified, then OPEN changes DISP=MOD to DISP=OLD. The exit should not modify the JFCB. |
52 (X'34') | 4 | TEPMDSAB | Address of DSAB. To get the DDname the exit can get the TIOT entry address from the DSAB. The name might be blank, which means concatenation. |
56 (X'38') | 4 | TEPMLABEL | Address of label (80 bytes). If the
address is 0 and the tape is SL or AL, then the data set was being
read and the user issued FEOV or CLOSE without reading the tape mark.
As much of the header label 1 or trailer label 1 for read backwards
as the system could read up to 80 bytes.
Note: The creation
date and expiration date in the header label might differ from that
in the trailer label. This might be because of DISP=MOD or OPEN EXTEND.
The System code field (13 bytes) is available at beginning of data
set. It tells whether an AL tape meets IBM's definition of certain
label 2 fields.
For the volume mount exit and label
anomaly exit this is the first block on the volume no matter what
label type was requested except for BLP. The label anomaly exit might
build a label in this area. For the file validation exit the label
is HDR1, EOV1 or EOF1. For the file start on volume exit and the file
end on volume exit no label is available because OPEN, CLOSE, EOV
sometimes does not have one. For example this might be because it
processed user labels or it wrote a message to the operator. |
60 (X'3C') | 4 | TEPMLLEN | Length of the block that was read. Zero means either that no data was read because of an I/O error or it means that a tape mark was read. |
64 (X'40') | 4 | TEPMTEP | Address of function-specific parameter list |
68 (X'44') | 4 | TEPMSENSE | Address of sense bytes 0 and 1 from an IOB. If X'10FE', then the system was not able to obtain sense bytes. |
72 (X'48') | 6 | TEPMMTVOL | Mounted volume serial |
78 (X'4E') | 6 | TEPMEXVOL | External volume serial |
84 (X'54') | 2 | TEPMTDSI | TDSI (tape dataset info) from JFCB |
86 (X'56') | 2 | Reserved | |
88 (X'58') | 4 | TEPMVOL1 | Address of original VOL1 label. Initialized when OPEN or EOV issues a loadpoint read for volume verification. |
92 (X'5C') | 4 | TEPMHDR1 | Address of original HDR1 of first data set on the volume. Initialized when OPEN or EOV issues a loadpoint read for volume verification. |
96 (X'60') | 8 | TEPMBLKS | Block size value |
104 (X'68') | 4 | TEPMCAPM | Media capacity (MB) of the mounted volume on device type 3490 and higher tape drive technologies. |
108 (X'6C') | 4 | TEPMCAPP | Reserved for future partition capacity. Currently same value as TEPMCAPM. |
112 (X'70') | 12 | TEPMWWID | WORM World Wide Volume id |
124 (X'7C') | 2 | TEPMWMC | WORM write mount count |