|
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, 2002