Programming Interface Information: This information is NOT intended to be
used as Programming Interfaces of z/VM.

TAPBK

Prolog
Control Block Contents
TAPBK DSECT
Storage Layout
Cross Reference

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

This information is based on z/VM V3R1.0.
Last updated on 30 Mar 2001 at 08:58:34 EDT.
Copyright IBM Corporation, 1990, 2001