TAPBK Back to Index page
 
Prolog 
Control Block Contents 
   TAPBK DSECT
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.


  TAPBK Prolog Top of page
 
 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
 RELOCATION CONSIDERATIONS : None
 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 Top of page
 

 TAPBK DSECT Top of page
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' TAPNOMNT No mount msg - drive is out of work .1.. .... TAPSKIP X'40' TAPSKIP Skip data load for current file ..1. .... TAPNTALY X'20' TAPNTALY No msg and tally on trailer write request ...1 .... TAPSTRTD X'10' TAPSTRTD Task has been started for drive .... .1.. TAPWRTR X'04' TAPWRTR Writing trailer .... ..1. TAPAPPWT X'02' TAPAPPWT Tape is APPEND WAITING .... ...1 TAPEOT X'01' TAPEOT 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' TAPLOGO Log response only .1.. .... TAPSOMER X'40' TAPSOMER Some file had an error of some kind recorded in the log for volume ..1. .... TAPABORT X'20' TAPABORT Tape was aborted ...1 .... TAPLABCK X'10' TAPLABCK Tape has been checked for presence of Standard Labels .... 1... TAPPOS X'08' TAPPOS 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' TAPHSPF Spool file descriptor in block .1.. .... TAPHXAB X'40' TAPHXAB XAB at least partially in block ..1. .... TAPHDATA X'20' TAPHDATA Data pages in block ...1 .... TAPHEOF X'10' TAPHEOF End of file with last data page .... 1... TAPHVOLN X'08' TAPHVOLN File continued from prev volume .... .1.. TAPHERR X'04' TAPHERR 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 Top of page
 
          
*** 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 Top of page
 
 
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 z/VM 7.1.0 Last updated on 22 Jun 2018 at 11:53:11 EDT.
Copyright IBM Corporation, 1990, 2018