SCABK - 64-bit CP - V4R4.0

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

#### SCABK

Prolog

Control Block Contents
SCABK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SCABK Prolog

     Name       : HCPSCABK
     Description: System Control Area for Interpretive
                  Execution
     DSECT      : SCABK
     Function   : Map SCA for SIE virtual MP support
     Located by : SIEISCAA  in all VMDBKs of the virtual configuration
                  points to label SCASTART in this block.
                  *** NOTES      :  SIEISCAA does NOT point to
                  the front of the block.
     Created by : HCPBIESC
     Deleted by : HCPBIESC, HCPBIESR
     Serialized :
                  The existence of the SCABK, and the contents of
                  its pointer, SIEISCAA, are serialized by console
                  function mode.  SCAIPLOK is a formal lock
                  managed by HCPLCKAI and HCPLCKRI entry points.
                  SCAMCN is updated under Console-Function Mode.
                  SCAXCALL is updated either in Console-Function
                  Mode, or by compare-and-swap exclusive from CFM.
     Comments   :
                  The SCABK maps the architected System Control
                  Area for SIE, used in support of virtual
                  multiprocessing.  In addition to the architected
                  block, the SCABK contains a header for CP use.
                  The size of the block is variable, depending on
                  the maximum CPU address defined in the virtual
                  configuration.  Because architecture requires a
                  quadword boundary for the SCA, an extra
                  doubleword is allocated, and the SCABK is
                  installed beginning either 0 or 8 bytes into
                  the free-storage area, as needed to satisfy the
                  boundary requirement.  To simplify storage
                  allocation, the actual start of the block is saved
                  in the CP prefix portion of the SCABK.
                  The SCABK is located by pointer SIEISCAA in all
                  VMDBKs of the virtual configuration.  SIEISCAA
                  points to the architected SCA, at label SCASTART,
                  NOT to the CP header at the front of the SCABK,
                  nor to the start of the free-storage block.

#### SCABK Control Block Content

#### SCABK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SCABK          System Control Area for
                                            Interpretive
         Header for CP software use
         Notes : This area must be an integral number of doublewords.
    0000    0 Address      4 SCAFSADR       Start address of containing free
                                            storage block
    0004    4 Signed       2 SCAMXCPU       Maximum virtual CPU address in
                                            configuration
    0006    6 Signed       2 *              Reserved for future IBM use
    0008    8 Signed       4 * (2)          Reserved for future IBM use
         Architected System Control Area
    0010   16 Bitstring   16 SCASTART (0)   *** True SCA begins here ***
    0010   16 Bitstring    1 SCAIPLK0 (0)   Redefinition of IPTE Interlock
                                            (below):
              1... ....      SCAIPLKH       X'80' IPTE interlock is held
    0010   16 Dbl-Word     8 SCAIPLOK       IPTE interlock (format defined in
                                            HCPLCKAI entry point comments)
    0018   24 Dbl-Word     8 * (3)          Reserved for future IBM use
    0030   48 Dbl-Word     8 * (2)          Reserved for future IBM use
    0040   64 Dbl-Word     8 SCAMCN         Mask of valid virtual CPU addrs
                                            for SIGP interpretation (may be a
                                            subset of defined virtual CPUs)
    0048   72 Dbl-Word     8 *              Reserved for future IBM use
              0000000B       SCAFSIZE       (*-SCABK+15)/8 Fixed size for
                                            free-storage allocation (includes
                                            CP header, architected header,
                                            and an extra doubleword to allow
                                            quadword alignment)
         There are two versions of the SIGP entry (CPU descriptor). Which entry
         to use is dependent on the mode of the host. Thus the SCACPU portion of
         the SCABK must be different for an ESAME mode host CP than it is for an
         ESA/390 mode host CP and there are two versions of it below. When
         making modifications, be sure to consider both versions.
         This is the ESAME host CP version
    0050   80 Bitstring   32 SCACPU (0)     CPU descriptor (one slot per
                                            virtual CPU addr):
    0050   80 Signed       4 SCAXCWRD (0)   Word for Compare-and-Swap
    0050   80 Bitstring    1 *              Reserved for future IBM use
    0051   81 Bitstring    1 SCAXCALL       External-call state:
              1... ....      SCAXCPND       X'80' external call pending
              ..11 1111      SCAXCCPU       X'3F' mask to isolate sending CPU
                                            addr
    0052   82 Bitstring    1 * (2)          Reserved for future IBM use
    0054   84 Signed       4 *              Reserved for future IBM use
    0058   88 Dbl-Word     8 SCAGSDES (0)   Pointer to state description, or
                                            zero if virtual CPU not defined
    0058   88 Address      4 SCALSDES       Leftmost half of address
    005C   92 Address      4 SCASDESC       Rightmost half of address
    0060   96 Signed       4 * (2)          Reserved for future IBM use
    0068  104 Signed       4 * (2)          Reserved for future IBM use
              00000020       SCACLEN        *-SCACPU Length of one SCACPU
                                            entry
              00000004       SCACSIZE       (SCACLEN+7)/8 Size in doublewords
              00000002       SCACPUSD       SCACPUSB-3 Shift count to convert
                                            CPU addr to number of doublewords
                                            (SCACSIZE = 2**SCACPUSD)

#### SCABK Storage Layout

    *** SCABK - System Control Area for Interpretive
    *
    *     +---------------------------+-------------+-------------+
    *   0 |         SCAFSADR          |  SCAMXCPU   |/////////////|
    *     +---------------------------+-------------+-------------+
    *   8 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  10 |                       SCAIPLOK                        |
    *     +-------------------------------------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     =///////////////////////////////////////////////////////=
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  30 |///////////////////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  40 |                        SCAMCN                         |
    *     +-------------------------------------------------------+
    *  48 |///////////////////////////////////////////////////////|
    *     +------+------+-------------+---------------------------+
    *  50 |//////|:XCALL|/////////////|///////////////////////////|
    *     +------+------+-------------+---------------------------+
    *  58 |         SCALSDES          |         SCASDESC          |
    *     +---------------------------+---------------------------+
    *  60 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  68 |///////////////////////////////////////////////////////|
    *     +-------------------------------------------------------+
    *  70
    *
    *** SCABK - System Control Area for Interpretive

#### SCABK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SCACLEN        0068 00000020
    SCACPU         0050
    SCACPUSD       0068 00000002
    SCACSIZE       0068 00000004
    SCAFSADR       0000
    SCAFSIZE       0048 0000000B
    SCAGSDES       0058
    SCAIPLKH       0010 80
    SCAIPLK0       0010
    SCAIPLOK       0010
    SCALSDES       0058
    SCAMCN         0040
    SCAMXCPU       0004
    SCASDESC       005C
    SCASTART       0010
    SCAXCALL       0051
    SCAXCCPU       0051 3F
    SCAXCPND       0051 80
    SCAXCWRD       0050

This information is based on z/VM V4R4.0. Last updated on 30 Jul 2003 at 13:11:08 EDT.
Copyright IBM Corporation, 1990, 2003