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

#### BMSBK

Prolog

Control Block Contents
BMSBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### BMSBK Prolog

     NAME       : HCPBMSBK
     DESCRIPTION: BUFFER MANAGEMENT SERVICE CONTROL BLOCK
     DSECT      : BMSBK
     FUNCTION   : CONTAINS THE CURRENT STATUS OF A BUFFER
                  MANAGEMENT TASK
     LOCATED BY : USAGE DEPENDENT
     CREATED BY : HCPBMSIN
     DELETED BY : HCPBMSTM
     EMPLOYED BY- HCPBMSRA : WHEN RETURNING A LIST OF BUFFERS
                  TO THE AVAILABLE STACK
                  HCPBMSOA : WHEN OBTAINING A LIST OF BUFFERS
                  FROM THE AVAILABLE STACK
                  HCPBMSGA : WHEN GETTING A BUFFER FROM THE
                  AVAILABLE STACK
                  HCPBMSAA : WHEN ADDING BUFFERS FROM FREE
                  STORAGE TO THE AVAILABLE STACK
                  HCPBMSSA : WHEN RETURNING BUFFERS FROM THE
                  AVAILABLE STACK TO FREE STORAGE
                  HCPBMSPP : WHEN PUTTING A BUFFER ON THE
                  PENDING QUEUE
                  HCPBMSOP : WHEN OBTAINING A LIST OF BUFFERS
                  FROM THE PENDING QUEUE
                  HCPBMSQP : WHEN GETTING THE COUNT OF BUFFERS
                  ON THE PENDING QUEUE
     COMMENTS   : SERIALIZED BY THE BMSBK LOCK, BMSLOCK FOR
                  ALL ENTRY POINTS EXCEPT HCPBMSIN.

#### BMSBK Control Block Content

#### BMSBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      BMSBK          BUFFER MANAGEMENT SERVICE CONTROL BLOCK
                 BUFFER MANAGEMENT SERVICE INFORMATION
    0000    0 Signed       4 * (0)          BLOCK STATUS
    0000    0 Bitstring    1 BMSSTTYP       FREE STORAGE INDICATOR
              .... ...1      BMSPAG         X'01' BMSPAG BMSBK IS A REAL
                                            FRAME (PAGE)
              .... ..1.      BMSFRE         X'02' BMSFRE BMSBK IS FROM FREE
                                            STORAGE
              .... .1..      BMSFIXED       X'04' BMSFIXED BMSBK DESCRIBES A
                                            BUFFER POOL THAT IS A FIXED SIZE
                                            (USED BY TRSAVE FOR CP ON)
              .... 1...      BMSDFRIO       X'08' BMSDFRIO Wrap buffers in
                                            real storage
    0001    1 Bitstring    1 *              RESERVED FOR FUTURE USE
    0002    2 Signed       2 BMSDWSZ        DOUBLE WORD SIZE OF BLOCK THIS
                                            FIELD IS ONLY USED WHEN THIS
                                            BLOCK IS CREATED FORM FREE
                                            STORAGE
    0004    4 Signed       4 BMSBUFCT       COUNT OF TOTAL BUFFERS Within a
                                            chain of BMSBKs, this field is
                                            only meaningful in the first
                                            BMSBK of the chain
    0008    8 Signed       4 BMSAVBCT       COUNT OF AVAILABLE BUFFERS Within
                                            a chain of BMSBKs, this field is
                                            only meaningful in the first
                                            BMSBK of the chain
    000C   12 Signed       4 BMSPDBCT       COUNT OF PENDING BUFFERS Within a
                                            chain of BMSBKs, this field is
                                            only meaningful in the first
                                            BMSBK of the chain
    0010   16 Signed       4 BMSRTBCT       COUNT OF BUFFERS RETURNED TO THE
                                            AVAILABLE STACK
    0014   20 Signed       4 *              RESERVED FOR FUTURE USE
                 BUFFER LOCKS
    0018   24 Dbl-Word     8 BMSLOCK (6)    Spin lock for the BMS block
                                            Within a chain of BMSBKs, this
                                            field is only meaningful in the
                                            first BMSBK of the chain
                 AVAILABLE BUFFERS
    0048   72 Address      4 BMSAVPTR       POINTER TO AVAILABLE BUFFERS
                                            Within a chain of BMSBKs, this
                                            field is only meaningful in the
                                            first BMSBK of the chain
                 PENDING BUFFERS
    004C   76 Address      4 BMSNEXT        Pointer to next BMSBK in chain of
                                            BMSBKs
    0050   80 Address      4 BMSBMOFF       Pointer to BMSBK which contains
                                            oldest pending buffer. Within a
                                            chain of BMSBKs, this field is
                                            only meaningful in the first
                                            BMSBK of the chain
    0054   84 Address      4 BMSBMON        Pointer to BMSBK which contains
                                            next available slot. Within a
                                            chain of BMSBKs, this field is
                                            only meaningful in the first
                                            BMSBK of the chain
    0058   88 Address      4 BMSPDOFF       POINTER TO FIRST BUFFER ON THE
                                            QUEUE
    005C   92 Address      4 BMSPDON        POINTER TO NEXT AVAILABLE SLOT ON
                                            THE QUEUE
    0060   96 Address      4 BMSPDLST       ADDRESS OF THE LAST SLOT IN THE
                                            ARRAY
              0000000D       BMSHSIZE       (*-BMSBK+7)/8 SIZE OF THE BMS
                                            HEADER
    0064  100 Address      4 BMSPDST (0)    START OF VARIABLE LENGTH DATA
                                            ARRAY OF POINTERS TO PENDING
                                            BUFFERS See PERBMS in HCPEQUAT
                                            for maximum number of buffers per
                                            BMSBK.
           Verify that size of BMSBK doesn't exceed 1 page.

#### BMSBK Storage Layout

    *** BMSBK - BUFFER MANAGEMENT SERVICE CONTROL BLOCK
    *
    *     +------+------+-------------+---------------------------+
    *   0 |:STTYP|//////|  BMSDWSZ    |         BMSBUFCT          |
    *     +------+------+-------------+---------------------------+
    *   8 |         BMSAVBCT          |         BMSPDBCT          |
    *     +---------------------------+---------------------------+
    *  10 |         BMSRTBCT          |///////////////////////////|
    *     +---------------------------+---------------------------+
    *  18 |                                                       |
    *     =                       BMSLOCK                         =
    *     |                                                       |
    *     +---------------------------+---------------------------+
    *  48 |         BMSAVPTR          |         BMSNEXT           |
    *     +---------------------------+---------------------------+
    *  50 |         BMSBMOFF          |         BMSBMON           |
    *     +---------------------------+---------------------------+
    *  58 |         BMSPDOFF          |         BMSPDON           |
    *     +---------------------------+---------------------------+
    *  60 |         BMSPDLST          |
    *     +---------------------------+
    *
    *** BMSBK - BUFFER MANAGEMENT SERVICE CONTROL BLOCK

#### BMSBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    BMSAVBCT       0008
    BMSAVPTR       0048
    BMSBMOFF       0050
    BMSBMON        0054
    BMSBUFCT       0004
    BMSDFRIO       0000 08
    BMSDWSZ        0002
    BMSFIXED       0000 04
    BMSFRE         0000 02
    BMSHSIZE       0060 0000000D
    BMSLOCK        0018
    BMSNEXT        004C
    BMSPAG         0000 01
    BMSPDBCT       000C
    BMSPDLST       0060
    BMSPDOFF       0058
    BMSPDON        005C
    BMSPDST        0064
    BMSRTBCT       0010
    BMSSTTYP       0000

This information is based on z/VM V6R1.0. Last updated on 18 Feb 2010 at 08:27:09 EDT.
Copyright IBM Corporation, 1990, 2008