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

CNODE

Prolog  

Control Block Contents  
   CNODE DSECT

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  


CNODE Prolog

 Name       : HCPCNODE
 Description: Collision node for MDC hash table.
 DSECT      : CNODE
 Function   : To provide mapping of a MDC overflow hash
                         table node.
 Created by : HCPFTHRD
 Deleted by : HCPFTHUD, HCPFTHDC, HCPFTUFL, HCPFTURM
 Notes      :
                The MDC hash table is comprised of a base hash table and
                collision page(s).  A hashing algorithm is used to convert
                a key to the address of a base node.  The base node is 3
                words and is either empty or holds a single TCHBK (see
                HCPTCHBK).
                Multiple keys can hash to the same base node and such
                collisions are handled via a chaining scheme that links
                the base node with additional (collision) nodes that lie
                outside the hash table proper.  The second word of the
                last (or only) TCHBK in the chain contains data relating
                to the track represented by that TCHBK.  The second word
                of all other TCHBKs contain the address of a collision
                node with the high-order bit set to one to indicate that
                there are additional nodes.  (The data words never have
                the high-order bit set to one.)
                A collision node is comprised of a TCHBK prefixed by a
                fullword containing the data that was displaced from the
                preceding TCHBK to make room for a forward pointer.
                              Base Node (in hash table)
               +------------+------------+------------+
               |                TCHBK                 |
               +------------+-----+------+------------+
                                  |
               +------------------+
               |
               v                 Collision Node (in collision page)
               +------------+------------+------------+------------+
               | N-1 data   |                TCHBK                 |
               +------------+------------+------+-----+------------+
                                                |
               +--------------------------------+
               |
               v        Terminal Collision Node (in collision page)
               +------------+------------+------------+------------+
               | N-1 data   |                TCHBK                 |
               +------------+------------+------------+------------+

 

CNODE Control Block Content


CNODE DSECT

Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      CNODE          Collision node for MDC hash
                                        table.
0000    0 Address      4 CNONXTAV (0)   Address of next collision node if
                                        on available chain Zero => end
                                        of chain
0000    0 Signed       4 CNOPREV        Data for previous entry
0004    4 Bitstring   12 CNOTCHBK (0)   TCHBK in collision node
     The remainder of this DSECT maps the TCHBK that resides in the
     collision node. For details see HCPTCHBK COPY.
0004    4 Signed       4 CNOKEY         Hash key
0008    8 Address      4 CNOTKFMT       The hash data/pointer **TCHCOLFG
                                        EQU PFX8000S Flag to indicate
                                        CNOCDATA is a collision pointer.
                                        Marks the TCHENTRY inside the
                                        collision node as format 'b'
000C   12 Address      4 CNOCPEBK (0)   CPEBK address
     High order bit of CNOCPEBK determines if unconditional delete is
     required. TCHUDREQ is that bit's name. Note that if this bit is on, the
     remainder of CNOCPEBK may be zero. I.E. only an unconditional delete is
     deferred.
000C   12 Address      4 CNOADRLX (0)   Virtual address etc
000C   12 Bitstring    1 CNOORIG (2)    SSSP of virtual address
000E   14 Bitstring    1 CNOLOCK        Lock nibble is right half, final
                                        P of vaddr in left
000F   15 Bitstring    1 CNOTBENT       Flags and Table index
          CNOTBENT       CNOBCKUP       PFX4 Distance to back up from the
                                        beginning of a TCHBK to the
                                        beginning of a CNODE This is
                                        length of CNOPDATA
          00000010       CNOCSIZB       *-CNODE Size of collision entry

 

CNODE Storage Layout

          
*** CNODE - Collision node for MDC hash table.
*
*     +---------------------------+---------------------------+
*   0 |         CNOPREV           |          CNOKEY           |
*     +---------------------------+-------------+------+------+
*   8 |         CNOTKFMT          |  CNOORIG    |:LOCK |:TBENT|
*     +---------------------------+-------------+------+------+
*  10
*
*** CNODE - Collision node for MDC hash table.

 

CNODE Cross Reference

Symbol         Dspl Value
-------------- ---- -----
CNOADRLX       000C
CNOBCKUP       000F CNOTBENT
CNOCPEBK       000C
CNOCSIZB       000F 00000010
CNOKEY         0004
CNOLOCK        000E
CNONXTAV       0000
CNOORIG        000C
CNOPREV        0000
CNOTBENT       000F
CNOTCHBK       0004
CNOTKFMT       0008

This information is based on z/VM V4R2.0. Last updated on 30 Oct 2001 at 13:30:24 EDT.
Copyright IBM Corporation, 1990, 2001