|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
CNODE
Control Block Contents
CNODE DSECT
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, HCPFMUFL, HCPFMURM
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
Copyright IBM Corporation, 1990, 2005