Programming Interface Information:
This information is NOT
intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only. |
TAPBK
Cross Reference (Contains links to field and bit definitions)
TAPBK Prolog
Name : HCPTAPBK DESCRIPTION: SPXTAPE Tape Drive Control Block DSECT : TAPBK FUNCTION : Holds information about the tape drive, the task managing it, and files processed on it Located by : Routines: HCPSPYWT - SPXTAPE DUMP tape I/O HCPSPZRT - SPXTAPE LOAD/SCAN tape I/O Fields: SPTTAPQ - queue anchor in SPTBK TAPNEXT - chain forward pointer CREATED BY : HCPSPQBD - command parser DELETED BY : HCPSPYWT - SPXTAPE DUMP tape I/O HCPSPZRT - SPXTAPE LOAD/SCAN I/O Notes : The TAPBK is built at the top of a full page of storage obtained by calling HCPPTFGF. This page of storage contains the TAPBK at the top, followed by an IORBK, a CHPBK, another IORBK and another CHPBK which are all built in this page. The first IORBK can be located directly at the end of the TAPBK by using the TAPEND definition.
TAPBK Control Block Content
TAPBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure TAPBK SPXTAPE Tape Drive Control Block 0000 0 Signed 4 TAPNEXT Next in queue 0004 4 Signed 4 TAPCHPBK First of the list of CHPBK's 0008 8 Character 8 TAPIDENT TAPBK Id for dump debug 0010 16 Character 4 TAPCVDEV Virtual device number in char 0014 20 Signed 4 TAPVNUM Virtual device number in binary 0018 24 Signed 4 TAPRDEV Real device block 001C 28 Character 6 TAPVOLID Volume ID from label if there is one or zeroes 0022 34 Bitstring 2 * Reserved Statistics 0024 36 Bitstring 1 TAPFLAG Status flags 1... .... TAPNOMNT X'80' No mount msg - drive is out of work .1.. .... TAPSKIP X'40' Skip data load for current file ..1. .... TAPNTALY X'20' No msg and tally on trailer write request ...1 .... TAPSTRTD X'10' Task has been started for drive .... .1.. TAPWRTR X'04' Writing trailer .... ..1. TAPAPPWT X'02' Tape is APPEND WAITING .... ...1 TAPEOT X'01' Hit end-of-tape; stop reads/writes 0025 37 Bitstring 1 TAPHFLAG Halt flag - why processing stopped 1... .... TAPHEND X'80' END: LOAD/SCAN - no tapes left .1.. .... TAPHEFND X'40' Logical end of volume, no more reads ..1. .... TAPHCANC X'20' CANCEL: end processing immediately ...1 .... TAPERR X'10' Permanent error occurred .... 1... TAPLEOT X'08' Logical EOT requested .... .1.. TAPEMPT X'04' Tape is empty - nothing is written on it .... ..1. TAPHDET X'02' DETACH: end processing immediately .... ...1 TAPTRRD X'01' Trailer record has been read 0026 38 Bitstring 1 TAPOCFLG 1... .... TAPLOGO X'80' Log response only .1.. .... TAPSOMER X'40' Some file had an error of some kind recorded in the log for volume ..1. .... TAPABORT X'20' Tape was aborted ...1 .... TAPLABCK X'10' Tape has been checked for presence of Standard Labels .... 1... TAPPOS X'08' Position tape for LOAD 0027 39 Bitstring 1 * Reserved 0028 40 Signed 4 TAPPAGWT Times drive waited for more pages 002C 44 Signed 4 TAPFILWT Times drive waited for more files 0030 48 Signed 4 TAPSEQ Sequence number EOV processing 0034 52 Signed 4 TAPORR13 Original R13 for restarting tape write task after EOV or error processing. 0038 56 Dbl-Word 8 TAPPRGLK (3) Lock held while purging files processed by tape 0050 80 Signed 4 TAPPRGCT Count of volumes being actively purged/logged. 0054 84 Character 16 TAPTKTQ Queue of tkts committed on this volume that are waiting for the volume to complete. Used to restart all files that are on the volume in case of failure of the volume or drive. Single- threaded double-headed FIFO queue terminated by zero. 0054 84 Address 4 TAPTKTQH Head of TAPTKTQ 0058 88 Address 4 TAPTKTQT Tail of TAPTKTQ 005C 92 Signed 4 * Reserved 0060 96 Signed 4 TAPTKTQC Count of files on TAPTKTQ Orientation 0064 100 Signed 4 TAPCURHD Current slot in block header 0068 104 Character 16 TAPTKTS Queue of files completed in this buffer. Moved to CHPTKTQ when I/O is ready to be started. Single- threaded double-headed FIFO queue terminated by zero. 0068 104 Address 4 TAPTKTSH Head of TAPTKTS 006C 108 Address 4 TAPTKTST Tail of TAPTKTS 0070 112 Signed 4 TAPTKTCT Corresponding count of files on TAPTKTS 0074 116 Signed 4 * Reserved 0078 120 Signed 4 TAPSSQ Current SSQ block Commit and recovery control data. Last items in the current block are used to update commit cursors when successfully sent to tape. 007C 124 Signed 4 TAPCURTK Last ticket contained in current block 0080 128 Signed 4 TAPCMSSQ Address of SSQBK that has the next Vpage slot (TAPCMCUR) 0084 132 Signed 4 TAPCMCUR Address of next Vpage slot in last SSQBK 0088 136 Signed 4 TAPCMXAB Amount of XAB data associated with last tkt remaining to be written 008C 140 Signed 4 TAPLSTCW CCW address of the last piece of data for files that completed in the current block. 0090 144 Signed 4 TAPLLPTR Last offset in page list +1 used 0094 148 Signed 4 TAPLSTHD Header address for last completed file 0098 152 Signed 4 TAPLBLKZ Block size at last complete file/tkt in this block. Working storage 009C 156 Signed 4 TAPPGSCN Pages skipped by SCAN in current ticket. Can't be in TKTBK because of re-entrancy. 00A0 160 Dbl-Word 8 TAPLTIME TAPTIME of last good header record- used in reorienting after error. 00A8 168 Signed 4 TAPRTCT Count of the number of contiguous records bypassed due to I/O errors while trying to reorient. Channel program controls 00AC 172 Signed 4 TAPCURCW Current channel program slot TAPBK Lock - must be held during interrupt processing 00B0 176 Dbl-Word 8 TAPLOCK (3) For DUMP, synchronizes the main I/O starting task (front end) with the completion of the I/O interrupt processing (back end). Acquired by front end and released by back end of the I/O interrupt processing when interrupt processing is complete. For LOAD/SCAN, allows only one buffer to be deblocked at a time. Buffer for the trailer record for the whole tape 00C8 200 Dbl-Word 8 TAPTRAIL (0) Summarize contents of cartridge 00C8 200 Signed 4 TAPTRLID ID the trailer record Counters 00CC 204 Signed 4 TAPSEQNO Cartridge number for this drive 00D0 208 Signed 4 TAPBKCNT Record count this reel 00D4 212 Signed 4 TAPFILCT File count this reel 00D8 216 Signed 4 TAPDPGCT Data page count for reel 00DC 220 Signed 4 TAPSPLPG Total spool space represented 00E0 224 Signed 4 TAPRETPL Pages to return to pool when block done 00E4 228 Signed 4 * File ID's in Character 00E8 232 Character 1 TAPTRLOW (8) Owner last file (partial or whole) 00F0 240 Signed 4 TAPTRLI User spid of last file 00F4 244 Signed 4 * Reserved 00F8 248 Character 1 TAPTRLN (8) Filename of last file 0100 256 Character 1 TAPTRLT (8) Filetype of last file Tape Drive Output 0108 264 Signed 4 TAPLOGVD Vdev for LOG - pseudo output console 010C 268 Signed 2 * Reserved 010E 270 Signed 2 TAPRESPL Length of response in TAPRESPS for logging - must immediately precede TAPRESPS 0110 272 Character 240 TAPRESPS Work area for responses by drive Working channel program - being built 00000008 TAPBUFPG 8 Number pages in buffer - determines max tape block size. 00000018 TAPMXCCW 3*TAPBUFPG CCW for descriptor, XAB, and data page per page 0200 512 Dbl-Word 8 TAPCHPGM (0) Start of channel program 0200 512 Dbl-Word 8 TAPCCWMS (0) Modeset CCW, if needed 0200 512 Bitstring 1 TAPMSOP Modeset CCW op code 0201 513 Bitstring 1 * (3) Flags and length field 0204 516 Signed 4 TAPMSADR Address if data transfer 0208 520 Dbl-Word 8 TAPCCWHD CCW for block header 0210 528 Dbl-Word 8 TAPCCWW1 First write CCW for spool file 0218 536 Dbl-Word 8 TAPCCWX (TAPMXCCW-1) All the rest Modeset + hdr + 3*8 (desc + xab + data) 000000D0 TAPCPLEN *-TAPCHPGM Length of maximum CCW string List of pages locked for this I/O operation 02D0 720 Signed 4 TAPLPTR Current offset in page list 02D4 724 Signed 4 * Reserved 02D8 728 Signed 4 TAPPLIST (14) Pages locked for the current block 00000038 TAPPLEN *-TAPPLIST Length of list to copy or clear 0310 784 Signed 4 * End flag for PLIST - zero = end 0314 788 Signed 4 * Reserved - future IBM use Buffer for the header section of each block. Notes : The TAPHDENT section is based independently from the TAPBK and should follow all parts based on the primary TAPBK base register. 0318 792 Dbl-Word 8 TAPSPHDR (0) Define the contents of 1 tape record 0318 792 Signed 4 TAPBLKID ID for header of a blocked record 031C 796 Signed 4 TAPBLKSZ Size of this block 0320 800 Dbl-Word 8 TAPTIME Time stamp when command issued 00000328 TAPHSLOT *-TAPBK First entry slot Single header entry 0328 808 Dbl-Word 8 TAPHDENT (0) Each file entry - mapped by TAPSPHDR 0328 808 Character 8 TAPHOWNR File owner 0330 816 Signed 4 TAPHSEQ File sequence number 0334 820 Signed 4 TAPHSYSI System spool file ID when dumped 0338 824 Signed 2 TAPHSPID User spool file ID when dumped 00000012 TAPHCOPY *-TAPHDENT Portion to copy to next block 0000033A TAPHCLRS * Start of portion to clear 033A 826 Bitstring 1 TAPHFLG File status flags 1... .... TAPHSPF X'80' Spool file descriptor in block .1.. .... TAPHXAB X'40' XAB at least partially in block ..1. .... TAPHDATA X'20' Data pages in block ...1 .... TAPHEOF X'10' End of file with last data page .... 1... TAPHVOLN X'08' File continued from prev volume .... .1.. TAPHERR X'04' DASD read error - page omitted 033B 827 Bitstring 1 * Reserved 033C 828 Signed 4 TAPPAGNO Rel page number of 1st data page 0340 832 Signed 4 TAPHPCNT Count of data pages in block 0344 836 Signed 2 TAPHSEGC Segment count (# parts on tape) 0346 838 Signed 2 TAPMAPCT Count of map pages 0348 840 Signed 2 TAPHSOFF Offset in block of SPFBK descriptor 034A 842 Signed 2 TAPHXOFF Offset in block of XAB, if any 034C 844 Signed 2 TAPHDOFF Offset in block of first data 034E 846 Signed 2 TAPHRES Reserved Header section portions 00000028 TAPHLEN *-TAPHDENT Size of one entry 00000106 TAPHCLR *-TAPHCLRS Portion to clear for next use 00000128 TAPHDRSZ *-TAPSPHDR Total header size to tape Sizing up the block 00000440 TAPEND * End of TAPBK 00000440 TAPSIZE *-TAPBK Size of the TAPBK
TAPBK Storage Layout
*** TAPBK - SPXTAPE Tape Drive Control Block * * +---------------------------+---------------------------+ * 0 | TAPNEXT | TAPCHPBK | * +---------------------------+---------------------------+ * 8 | TAPIDENT | * +---------------------------+---------------------------+ * 10 | TAPCVDEV | TAPVNUM | * +---------------------------+---------------------------+ * 18 | TAPRDEV | TAPVOLID- | * +-------------+-------------+------+------+------+------+ * 20 | -(01C) |/////////////|:FLAG |:HFLAG|:OCFLG|//////| * +-------------+-------------+------+------+------+------+ * 28 | TAPPAGWT | TAPFILWT | * +---------------------------+---------------------------+ * 30 | TAPSEQ | TAPORR13 | * +---------------------------+---------------------------+ * 38 | | * = TAPPRGLK = * | | * +---------------------------+---------------------------+ * 50 | TAPPRGCT | | * +---------------------------+ | * | TAPTKTQ | * | +---------------------------+ * | | 64 * +---------------------------+ * *** TAPBK - SPXTAPE Tape Drive Control Block *** Overlay for TAPTKTQ in TAPBK * * +---------------------------+ * 50 ... 54 | TAPTKTQH | * +---------------------------+---------------------------+ * 58 | TAPTKTQT |///////////////////////////| * +---------------------------+---------------------------+ * 60 | TAPTKTQC | TAPCURHD | * +---------------------------+---------------------------+ * 68 | TAPTKTS | * | | * +-------------------------------------------------------+ * 78 * *** Overlay for TAPTKTQ in TAPBK *** Overlay for TAPTKTS in TAPBK * * +---------------------------+---------------------------+ * 68 | TAPTKTSH | TAPTKTST | * +---------------------------+---------------------------+ * 70 | TAPTKTCT |///////////////////////////| * +---------------------------+---------------------------+ * 78 | TAPSSQ | TAPCURTK | * +---------------------------+---------------------------+ * 80 | TAPCMSSQ | TAPCMCUR | * +---------------------------+---------------------------+ * 88 | TAPCMXAB | TAPLSTCW | * +---------------------------+---------------------------+ * 90 | TAPLLPTR | TAPLSTHD | * +---------------------------+---------------------------+ * 98 | TAPLBLKZ | TAPPGSCN | * +---------------------------+---------------------------+ * A0 | TAPLTIME | * +---------------------------+---------------------------+ * A8 | TAPRTCT | TAPCURCW | * +---------------------------+---------------------------+ * B0 | | * = TAPLOCK = * | | * +---------------------------+---------------------------+ * C8 | TAPTRLID | TAPSEQNO | * +---------------------------+---------------------------+ * D0 | TAPBKCNT | TAPFILCT | * +---------------------------+---------------------------+ * D8 | TAPDPGCT | TAPSPLPG | * +---------------------------+---------------------------+ * E0 | TAPRETPL |///////////////////////////| * +---------------------------+---------------------------+ * E8 | TAPTRLOW | * +---------------------------+---------------------------+ * F0 | TAPTRLI |///////////////////////////| * +---------------------------+---------------------------+ * F8 | TAPTRLN | * +-------------------------------------------------------+ * 100 | TAPTRLT | * +---------------------------+-------------+-------------+ * 108 | TAPLOGVD |/////////////| TAPRESPL | * +---------------------------+-------------+-------------+ * 110 | | * = TAPRESPS = * | | * +------+--------------------+---------------------------+ * 200 |:MSOP |////////////////////| TAPMSADR | * +------+--------------------+---------------------------+ * 208 | TAPCCWHD | * +-------------------------------------------------------+ * 210 | TAPCCWW1 | * +-------------------------------------------------------+ * 218 | | * = TAPCCWX = * | | * +---------------------------+---------------------------+ * 2D0 | TAPLPTR |///////////////////////////| * +---------------------------+---------------------------+ * 2D8 | | * = TAPPLIST = * | | * +---------------------------+---------------------------+ * 310 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 318 | TAPBLKID | TAPBLKSZ | * +---------------------------+---------------------------+ * 320 | TAPTIME | * +-------------------------------------------------------+ * 328 | TAPHOWNR | * +---------------------------+---------------------------+ * 330 | TAPHSEQ | TAPHSYSI | * +-------------+------+------+---------------------------+ * 338 | TAPHSPID |:HFLG |//////| TAPPAGNO | * +-------------+------+------+-------------+-------------+ * 340 | TAPHPCNT | TAPHSEGC | TAPMAPCT | * +-------------+-------------+-------------+-------------+ * 348 | TAPHSOFF | TAPHXOFF | TAPHDOFF | TAPHRES | * +-------------+-------------+-------------+-------------+ * 350 * *** Overlay for TAPTKTS in TAPBK
TAPBK Cross Reference
(contains links to field and bit definitions)Symbol Dspl Value -------------- ---- -----TAPABORT 0026 20
TAPAPPWT 0024 02
TAPBKCNT 00D0
TAPBLKID 0318
TAPBLKSZ 031C
TAPBUFPG 0110 00000008
TAPCCWHD 0208
TAPCCWMS 0200
TAPCCWW1 0210
TAPCCWX 0218
TAPCHPBK 0004
TAPCHPGM 0200
TAPCMCUR 0084
TAPCMSSQ 0080
TAPCMXAB 0088
TAPCPLEN 0218 000000D0
TAPCURCW 00AC
TAPCURHD 0064
TAPCURTK 007C
TAPCVDEV 0010
TAPDPGCT 00D8
TAPEMPT 0025 04
TAPEND 034E 00000440
TAPEOT 0024 01
TAPERR 0025 10
TAPFILCT 00D4
TAPFILWT 002C
TAPFLAG 0024
TAPHCANC 0025 20
TAPHCLR 034E 00000106
TAPHCLRS 0338 0000033A
TAPHCOPY 0338 00000012
TAPHDATA 033A 20
TAPHDENT 0328
TAPHDET 0025 02
TAPHDOFF 034C
TAPHDRSZ 034E 00000128
TAPHEFND 0025 40
TAPHEND 0025 80
TAPHEOF 033A 10
TAPHERR 033A 04
TAPHFLAG 0025
TAPHFLG 033A
TAPHLEN 034E 00000028
TAPHOWNR 0328
TAPHPCNT 0340
TAPHRES 034E
TAPHSEGC 0344
TAPHSEQ 0330
TAPHSLOT 0320 00000328
TAPHSOFF 0348
TAPHSPF 033A 80
TAPHSPID 0338
TAPHSYSI 0334
TAPHVOLN 033A 08
TAPHXAB 033A 40
TAPHXOFF 034A
TAPIDENT 0008
TAPLABCK 0026 10
TAPLBLKZ 0098
TAPLEOT 0025 08
TAPLLPTR 0090
TAPLOCK 00B0
TAPLOGO 0026 80
TAPLOGVD 0108
TAPLPTR 02D0
TAPLSTCW 008C
TAPLSTHD 0094
TAPLTIME 00A0
TAPMAPCT 0346
TAPMSADR 0204
TAPMSOP 0200
TAPMXCCW 0110 00000018
TAPNEXT 0000
TAPNOMNT 0024 80
TAPNTALY 0024 20
TAPOCFLG 0026
TAPORR13 0034
TAPPAGNO 033C
TAPPAGWT 0028
TAPPGSCN 009C
TAPPLEN 02D8 00000038
TAPPLIST 02D8
TAPPOS 0026 08
TAPPRGCT 0050
TAPPRGLK 0038
TAPRDEV 0018
TAPRESPL 010E
TAPRESPS 0110
TAPRETPL 00E0
TAPRTCT 00A8
TAPSEQ 0030
TAPSEQNO 00CC
TAPSIZE 034E 00000440
TAPSKIP 0024 40
TAPSOMER 0026 40
TAPSPHDR 0318
TAPSPLPG 00DC
TAPSSQ 0078
TAPSTRTD 0024 10
TAPTIME 0320
TAPTKTCT 0070
TAPTKTQ 0054
TAPTKTQC 0060
TAPTKTQH 0054
TAPTKTQT 0058
TAPTKTS 0068
TAPTKTSH 0068
TAPTKTST 006C
TAPTRAIL 00C8
TAPTRLI 00F0
TAPTRLID 00C8
TAPTRLN 00F8
TAPTRLOW 00E8
TAPTRLT 0100
TAPTRRD 0025 01
TAPVNUM 0014
TAPVOLID 001C
TAPWRTR 0024 04
Last updated on 3 Aug 1999 at 13:37:44 EDT.
Copyright IBM Corporation, 1990, 1999