Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
SYNBK
Control Block Contents
SYNBK DSECT
Cross Reference (Contains links to field and bit definitions)
SYNBK Prolog
NAME : HCPSYNBK DESCRIPTION: SYNCHRONIZING LOCK CONTROL BLOCK DSECT : SYNBK FUNCTION : THIS DSECT DESCRIBES THE CONTROL AREA WHICH IS USED TO REPRESENT A SPIN LOCK. IN GENERAL, THE SPIN LOCKS IN THE SYSTEM ARE PERMANENTLY IMBEDDED WITHIN OTHER CONTROL BLOCKS OR MODULES. THIS DSECT DESCRIBES COMMON FORMAT OF ALL SPIN LOCKS. THE LOCK IS ALWAYS 3 DOUBLE-WORDS. ALL SPIN LOCKS ARE OBTAINED THROUGH A STANDARD SYSTEM MACRO, WITH A CALL TO MODULE HCPSYN IF THE LOCK IS NOT OBTAINED IN-LINE TO THE REQUESTING CODE. LOCATED BY : THE SYNBK DESCRIBES ANY OF THE SEVERAL SPECIFIC SPIN LOCKS, THEREFORE LOCATING IT DEPENDS UPON LOCATING THE PARTICULAR SPIN LOCK OF INTEREST. FOR EXAMPLE, THE SCHEDULER SPIN LOCK IS CODED IN THE SRMBK AS: SRMSLOCK DS 3D SCHEDULER LOCK CREATED BY : GENERALLY THE SYNBK OF A SPIN LOCK IS: (1) HARD-CODED IN A MODULE AND THEREFORE GENERATED BY THE ASSEMBLER. E.G., THE SWITCH-MASTER LOCK IN HCPMPF. (2) IMBEDDED IN A PERMANENTLY ALLOCATED CONTROL BLOCK. E.G., THE SCHEDULER LOCK IN THE SRMBK. DELETED BY : GENERALLY SYNBK'S ARE NOT DELETED SINCE THEY ARE GENERALLY IMBEDDED IN MODULES OR IN PERMANENTLY ALLOCATED CONTROL BLOCKS. NOTES : OBTAINED BY - THE HCPSYNC MACRO (A 'PRIMITIVE'). HCPSYNC IS ALWAYS IMBEDDED FOR ACTUAL USE IN ANOTHER MACRO SUCH AS: HCPLKSCH - GET THE SCHEDULER LOCK. HCPLKSWM - GET THE SWITCH-MASTER LOCK. HCPLKSYN - USED BY OUT-OF-LINE CODE IN HCPSYN TO GET ANY SPIN LOCK IF IN-LINE ATTEMPT FAILS. RELEASED BY - THE HCPUSYNC MACRO (A 'PRIMITIVE'). HCPUSYNC IS ALWAYS IMBEDDED FOR ACTUAL USE IN ANOTHER MACRO SUCH AS: HCPULSCH - RELEASE THE SCHEDULER LOCK. HCPULSWM - RELEASE THE SWITCH-MASTER LOCK.
SYNBK Control Block Content
SYNBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure SYNBK SYNCHRONIZING LOCK CONTROL BLOCK 0000 0 Signed 4 SYNLOCK SPIN LOCK WORD. CONTENTS ZERO MEANS LOCK IS NOT HELD. NON-ZERO CONTENTS IS THE LOGICAL CPU IDENTIFIER (FROM PFXLCPUA) OF THE CPU WHICH HOLDS THE LOCK. 0004 4 Signed 4 SYNHOLDR MACRO ADDRESS LAST OBTAINING THIS LOCK 0008 8 Dbl-Word 8 SYNTIME ELAPSED SPIN TIME ON THIS LOCK STARTING AT ZERO AND COUNTING UP 0010 16 Signed 4 SYNCOUNT NUMBER OF SPINS ON THIS LOCK 0014 20 Signed 4 * RESERVED FOR FUTURE IBM USE 00000003 SYNSIZE (*-SYNBK+7)/8 SYNBK SIZE IN DOUBLE-WORDS WHICH MUST BE 3 DOUBLE-WORDS SINCE IT IS IMBEDDED IN OTHER CONTROL BLOCKS AND CODE.
SYNBK Storage Layout
*** SYNBK - SYNCHRONIZING LOCK CONTROL BLOCK * * +---------------------------+---------------------------+ * 0 | SYNLOCK | SYNHOLDR | * +---------------------------+---------------------------+ * 8 | SYNTIME | * +---------------------------+---------------------------+ * 10 | SYNCOUNT |///////////////////////////| * +---------------------------+---------------------------+ * 18 * *** SYNBK - SYNCHRONIZING LOCK CONTROL BLOCK
SYNBK Cross Reference
Symbol Dspl Value -------------- ---- ----- SYNCOUNT 0010 SYNHOLDR 0004 SYNLOCK 0000 SYNSIZE 0014 00000003 SYNTIME 0008
Copyright IBM Corporation, 1990, 2001