LOCBK | Back to Index page

| Prolog Control Block Contents LOCBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
Programming Interface Information: This information is NOT intended to be used as Programming Interfaces of z/VM.

LOCBK Prolog | Top of page

     NAME       : HCPLOCBK
     DESCRIPTION: C System Services Lock block
     DSECT      : LOCBK
     FUNCTION   : C System Services Lock block used to describe the
                  spin lock used by platform specific C Services
     LOCATED BY : Passed as argument on lock, unlock, testLock
                  and eventWait services
     CREATED BY : allocateLock service
     DELETED BY : deallocateLock service
     SERIALIZED : CP lock routines
     RELOCATION CONSIDERATIONS : None
     NOTES      : LOCSLOCK is defined to be the size of a SYNBK so
                  that it can be mapped with by the SYNBK. LOCLOCK
                  maps the first dword of SYNBK; i.e. SYNLOCKD.
                  This control block is allocated from SHORTTERM
                  free storage, but of 29 dwords so that when the
                  header and trailer are added it is cache aligned
                  and uses the entire cache line. This is to avoid
                  what appears to be spinlock contention but is
                  cache line contention from different locks in the
                  same cache line.

LOCBK Control Block Content | Top of page

     LOCBK DSECT
    Top of page

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      LOCBK          C System Services Lock block
    0000    0 Signed       8 LOCSLOCK (6)   Spin lock
    0030   48 Address      8 LOCTHRED       Pointer to thread which holds
                                            lock
              00000038       LOCUSED        (*-LOCBK) Size of used LOCBK
                                            space.
    0038   56 Bitstring    1 * (176)        Reserved for IBM use.
              000000E8       LOCBSIZE       *-LOCBK size in bytes
              0000001D       LOCSIZE        (*-LOCBK+7)/8 size in double
                                            words
    0000    0 Signed       8 LOCLOCK        First doubleword of the lock area

LOCBK Storage Layout | Top of page

    *** LOCBK - C System Services Lock block
    *
    *     +-------------------------------------------------------+
    *   0 |                                                       |
    *     =                       LOCSLOCK                        =
    *     |                                                       |
    *     +-------------------------------------------------------+
    *  30 |                       LOCTHRED                        |
    *     +-------------------------------------------------------+
    *  38 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  E8
    *
    *** LOCBK - C System Services Lock block

    *** Overlay for LOCSLOCK in LOCBK
    *
    *     +-------------------------------------------------------+
    *   0 |                       LOCLOCK                         |
    *     +-------------------------------------------------------+
    *   8
    *
    *** Overlay for LOCSLOCK in LOCBK

LOCBK Cross Reference | Top of page

    Symbol         Dspl Value
    -------------- ---- -----
    LOCBSIZE       0038 000000E8
    LOCLOCK        0000
    LOCSIZE        0038 0000001D
    LOCSLOCK       0000
    LOCTHRED       0030
    LOCUSED        0030 00000038

This information is based on z/VM 7.2.0 Last updated on 24 Jun 2020 at 09:29:00 EDT.
Copyright IBM Corporation, 1990, 2020