About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
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
Copyright IBM Corporation, 1990, 2001