Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

#### SYNBK

Prolog

Control Block Contents
SYNBK DSECT

Storage Layout

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

This information is based on z/VM V4R3.0. Last updated on 1 May 2002 at 10:31:33 EDT.
Copyright IBM Corporation, 1990, 2002