Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
TAPBK
Control Block Contents
TAPBK DSECT
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 (23) 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
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 5 Jun 2001 at 16:57:19 EDT.
Copyright IBM Corporation, 1990, 2001