| Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. | 
LKWRD
Control Block Contents  
   LKWRD DSECT
Cross Reference (Contains links to field and bit definitions)
LKWRD Prolog
 Name       : HCPLKWRD
 Description: Defer-lock "lockword"
 DSECT      : LKWRD
 Function   : The lockword the means of serializing
              deferrable requests for access to a group of
              data by different tasks.
 Located by : Various lockwords to protect specific classes
              of data exist inside other control blocks
              and data areas (VMDBK, SYSCM, HCPRCC, etc.)
 Created by : none (lockwords are static, or are "created"
              within other dynamically created blocks
              e.g., the VMDBK).
 Deleted by : none (lockwords are static, or are "deleted"
              within other dynamically deleted blocks.
LKWRD Control Block Content
LKWRD DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure LKWRD Defer-lock "lockword" 0000 0 Dbl-Word 8 LKWCSWAP (0) Doubleword updated by Compare and Swap 0000 0 Signed 4 LKWSTATE Current lock state. See module prologue of HCPLCK for details. 0004 4 Address 4 LKWQUEUE Pointer to chain of deferred CPEBK's 0008 8 Dbl-Word 8 LKWQQTOD TOD saved at last enqueue/dequeue. (Only stamped if there's a queue.) 0010 16 Bitstring 1 LKWFLG1 Miscellaneous lock flags 1... .... LKWLTLK X'80' Non-critical attribute, critical process count does not get decremented or incremented for this lock. 0011 17 Bitstring 3 LKWDQLEN Current length of defer queue. 0014 20 Signed 4 LKWDYTOD TOD saved at start of last "delay" period. It's the time the lock was last granted (if there was a queue at that time) or the time at which the queue size last changed from 0 to 1. Units are TOD with bits 32-63 discarded. 00000003 LKWRDSIZ (*-LKWRD)/8 Size of lockword in doublewords The following re-definition of LKWSTATE allows addressability to the last byte to check for a lockword held exclusive. This is NOT intended for general use; it is used by HCPWAI (Active Wait) for a specific purpose and may NOT be accurate for all locks. See the prologue of HCPLCK for a complete description of LKWSTATE. 0000 0 Bitstring 1 * (3) (don't care about 1st 3 bytes) 0003 3 Bitstring 1 LKWSTAT4 4th byte of LKWSTATE .... ...1 LKWEXCL X'01' Lock held EXCLUSIVE
LKWRD Storage Layout
          
*** LKWRD - Defer-lock "lockword"
*
*     +---------------------------+---------------------------+
*   0 |         LKWSTATE          |         LKWQUEUE          |
*     +---------------------------+---------------------------+
*   8 |                       LKWQQTOD                        |
*     +------+--------------------+---------------------------+
*  10 |:FLG1 |     LKWDQLEN       |         LKWDYTOD          |
*     +------+--------------------+---------------------------+
*  18
*
*** LKWRD - Defer-lock "lockword"
          
*** Overlay for LKWSTATE in LKWRD
*
*     +--------------------+------+
*   0 |////////////////////|:STAT4| 4
*     +--------------------+------+
*
*** Overlay for LKWSTATE in LKWRD
LKWRD Cross Reference
Symbol Dspl Value -------------- ---- ----- LKWCSWAP 0000 LKWDQLEN 0011 LKWDYTOD 0014 LKWEXCL 0003 01 LKWFLG1 0010 LKWLTLK 0010 80 LKWQQTOD 0008 LKWQUEUE 0004 LKWRDSIZ 0014 00000003 LKWSTATE 0000 LKWSTAT4 0003
Last updated on 6 Jun 2001 at 11:46:57 EDT.
Copyright IBM Corporation, 1990, 2001