CNODE Back to Index page
 
Prolog 
Control Block Contents 
   CNODE 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.


  CNODE Prolog Top of page
 
 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, HCPFMUFL, HCPFMURM
 RELOCATION CONSIDERATIONS : None
 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 Top of page
 

 CNODE DSECT Top of page
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 CNOBCKUP 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 Top of page
 
          
*** 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 Top of page
 
 
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 7.3.0 Last updated on 22 Jun 2022 at 15:48:17 EDT.
Copyright IBM Corporation, 1990, 2022