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

#### TCHBK

Prolog

Control Block Contents
TCHBK DSECT
TCHSTDFM DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### TCHBK Prolog

     Name       : HCPTCHBK
     Description: Track Cache Hash block
     DSECT      : TCHBK
     Function   : To provide mapping of a full track cache hash
                  table entry.
                  The data is stored right in the hash table.
                  Open hashing scheme is used with collisions.
     Overview and Terminology -
                  The MDC HASH TABLE logically consists
                  of a BASE TABLE and COLLISION NODEs.
                  Each MDC eligible track is represented by a
                  unique fullword KEY.  A hashing algorithm is
                  used to convert the key to the address of an
                  entry in the base table called a BASE NODE.
                  Although each key is unique, multiple keys may
                  hash to the same base node causing a
                  COLLISION. Collision nodes are assigned from
                  storage that is not part of the base table.
                  A TCHBK is a 3 word entity that contains
                  or provides access to the data structures
                  required to serialize and process a single
                  track within the Minidisk cache.  A TCHBK
                  can appear in a base node or a collision node.
                  Whereas a base node consists entirely of one
                  TCHBK, a collision node additionally contains
                  a one word prefix (see below and HCPCNODE).
     Created by :
                  Individual empty entries are filled in by
                  HCPFTHRD. The frames that form the base hash
                  table is obtained by HCPFTHIN. The first
                  collision frame is obtained in HCPFTHIN while
                  subsequent frames are acquired by HCPFTHRD as
                  needed.
                  Individual entries are cleared by
                     HCPFTHRD, HCPFTHEX, HCPFTHDR, HCPFTHDC,
                     HCPFTHSD, HCPFTHUD
                  The collection of TCHBKs that form the actual
                     hash table is deleted by
                     HCPFTHRD, HCPFTHEX, HCPFTHDR, HCPFTHDC,
                     HCPFTHSD, HCPFTHIN, HCPFTHRH, HCPFTHFH,
                     HCPFTHQH
     Deleted by :

#### TCHBK Control Block Content

#### TCHBK DSECT

####

####

####

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      TCHBK          Track Cache Hash block
    0000    0 Signed       4 TCHKEY         Hash key
    0004    4 Signed       4 TCHTKFMT       This field either points to or
                                            contains the track format data
                                            for standard tracks
              00000AD4       TCHCOLFG       PFX8000S When this bit is on,
                                            TCHTKFMT contains the address of
                                            a collision node. The 1st word of
                                            that node contains the TCHTKFMT
                                            data for this node.
    0008    8 Address      4 TCHCPEBK (0)   CPEBK address if this is a CPEBK
                                            node.
         High order bit of TCHCPEBK indicates that an Unconditional Delete
         (often referred to as THUD) is required. Note that if this bit is on,
         the remainder of TCHCPEBK may be zero. I.E. only an unconditional
         delete is deferred. See also CNOCPEBK.
              1... ....      TCHUDREQ       X'80' Unc. Delete required *
         Start of TCHADRLX definition
    0008    8 Address      4 TCHADRLX (0)   Address, lock, flags, DPS index
                                            Form: SSSPPLII SSS is segment
                                            number PP is page number L is
                                            lock nibble II is flags and DPS
                                            index
         High order bit of TCHADRLX indicates if there are any XSTORE blocks for
         this TCHBK.
              1... ....      TCHXSTOR       X'80' This TCHBK has XSTORE
                                            blocks After an XSTORE PGIN/PGOUT
                                            error this bit may be on when no
                                            PTEs are in XSTORE for this
                                            TCHBK.
    0008    8 Bitstring    1 * (2)          First 16 bits of SSSPP (SSSP)
    000A   10 Bitstring    1 TCHLOCK        Lock nibble (low 4 bits) High 4
                                            bits are rightmost 'P' of Vaddr
              .... 1...      TCHDEFER       X'08' Processes deferred on CPEBK
                                            or flush wants this entry
                                            quiesced when current owner is
                                            done.
              .... .1..      TCHMAX         X'04' High bit of share
              .... .11.      TCHMAXS        X'06' Max shares
              .... .111      TCHEXCL        X'07' Exclusive use indication
              .... ...1      TCHSHAR1       X'01' Shared once
              .... 1111      TCHLKBTS       TCHDEFER+TCHEXCL X'0F' - just the
                                            lock nibble
              0TCHLOCK       TCHLKINC       256 Value to add one to lock when
                                            lock byte is referenced as part
                                            of the entire TCHADRLX field.
         of Vaddr
    000B   11 Bitstring    1 TCHTBENT       Relative table entry
              11.. ....      TCHASPAC       X'C0' These bits identify the
                                            address space used for caching
                                            Note: TCMALMSK and TCMALSHF
                                            depend on these bits
              ..11 1111      TCHIXMSK       X'3F' Bits to hold DPSBK index
                                            See also TCMIXMSK.
         Notes : the fields TCMALMSK and TCMALSHF are used to isolate and
         manipulate the TCHASPAC bits.
         End of TCHADRLX definition
              0000000C       TCHSIZEB       *-TCHBK Size of hash entry in
                                            bytes
         The track format data for a standard record.
         This data may appear in the 2nd word of a TCHBK or may be pointed to by
         that word (when bit 0 is on).
         HCPMDCF will return this information in a specified register when
         GET_SHARED or GET_EXCLUSIVE is specified on the HCPMDCF MACRO.

    TCHSTDFM DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      TCHSTDFM       Track Cache Hash block
    0000    0 Signed       2 TCHCYL         CC of Count fields (std)
    0002    2 Bitstring    1 TCHFRN         First record number (std)
    0003    3 Bitstring    1 TCHLRN         Lowest record number (std)

    TCHBK Storage Layout

    *** TCHBK - Track Cache Hash block
    *
    *     +---------------------------+---------------------------+
    *   0 |          TCHKEY           |         TCHTKFMT          |
    *     +-------------+------+------+---------------------------+
    *   8 |/////////////|:LOCK |:TBENT| C
    *     +-------------+------+------+
    *
    *** TCHBK - Track Cache Hash block

    *** TCHSTDFM - Track Cache Hash block
    *
    *     +-------------+------+------+
    *   0 |   TCHCYL    |TCHFRN|TCHLRN| 4
    *     +-------------+------+------+
    *
    *** TCHSTDFM - Track Cache Hash block

    TCHBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    TCHADRLX       0008
    TCHASPAC       000B C0
    TCHCOLFG       0004 00000AD4
    TCHCPEBK       0008
    TCHCYL         0000
    TCHDEFER       000A 08
    TCHEXCL        000A 07
    TCHFRN         0002
    TCHIXMSK       000B 3F
    TCHKEY         0000
    TCHLKBTS       000A 0F
    TCHLKINC       000A 0TCHLOCK
    TCHLOCK        000A
    TCHLRN         0003
    TCHMAX         000A 04
    TCHMAXS        000A 06
    TCHSHAR1       000A 01
    TCHSIZEB       000B 0000000C
    TCHTBENT       000B
    TCHTKFMT       0004
    TCHUDREQ       0008 80
    TCHXSTOR       0008 80

    This information is
    based on z/VM V4R3.0.
    Last updated on 1 May 2002 at 10:39:24 EDT.

    Copyright IBM Corporation, 1990, 2002