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

Prolog  

Control Block Contents  

TAPBK DSECT

Storage Layout  

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


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 13:37:44 EDT.
Copyright IBM Corporation, 1990, 1999