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. RELOCATION CONSIDERATIONS : None
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' LKWLTLK 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' LKWEXCL 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
Copyright IBM Corporation, 1990, 2011