SVGBK - 64-bit CP - V4R4.0

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

#### SVGBK

Prolog

Control Block Contents
SVGBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SVGBK Prolog

     Name       : HCPSVGBK
     Description: Linkage savearea, longreg/fullreg
                  format
     DSECT      : SVGBK
     Function   : The SVGBK is used in the call-with-dynamic-savearea
                  calling linkage to a "long-register", or "longreg",
                  routine (one which uses 64-bit registers when the
                  machine provides them) or a "full- register"
                  ("fullreg") routine (one which is longreg in the
                  ESAME gen and "shortreg" in the ESA/390 gen).  The
                  caller does not supply the savearea.  Instead, the
                  linkage assistance routines (HCPSVC/SVD) allocate
                  the SVGBK and the called routine then saves the
                  caller's registers in the SVGBK.
                  Shortreg routines (those which always treat
                  registers as 32 bits) use an SAVBK instead of an
                  SVGBK.
                  Note that the SVGBK layout is different in the
                  ESAME and ESA/390 gens.  In the ESA/390 gen, the
                  SVGBK is laid out identically to an SAVBK (though
                  with different field names).  For example, it has
                  16 contiguous words for registers, as opposed to
                  16 contiguous doublewords in the ESAME gen.  The
                  ESA/390 version of the SVGBK defines only a subset
                  of the symbols in the ESAME version (e.g. it has
                  an SVGR0LO word but not an SVGR0 doubleword or an
                  SVGR0HI word).  This is to facilitate a single
                  source base for "fullreg" code.
                  The SVGBK dsect is also used as a map of the
                  several fixed saveareas such as PFXBALSV and
                  PFXTMPSV, when they are used by longreg and
                  fullreg routines.
                  Finally, the SVGBK can be used as a longreg
                  alternative to a CPEBK.  (There is no "CPGBK".)
                  HCPSTK will accept an SVGBK to be stacked for later
                  dispatching by HCPDSB.
     Located by : R13       when running in any "long-register"
                  routine which is called using a
                  call-with-dynamic-savearea linkage.
                  Points to current (already filled up)
                  savearea.
                  SVGR13    This field in callee's savearea points
                  back to the callers savearea.  (This
                  assumes that the caller is a longreg
                  routine and has a savearea of its own,
                  and that he had its address in
                  R13 at the time of the call.  See also
                  SVGCSAV for another backward pointer.)
                  SAVEFPNT  forward chaining pointer.  The chain of
                  /SVGFPNT  available SVGBK's uses this pointer.
                  When the SVGBK is in use as a savearea,
                  SAVEFPNT is normally not used for
                  anything.  (SAVER13 points back to the
                  preceding SVGBK/SAVBK if the caller
                  had one.)
                  SAVEBPNT  This pointer is available for backward
                  /SVGBPNT  chaining, but is not normally used.
                  VMDQURCP  Urgent CPEBK/SVGBK stack
                  VMDQCPEF  Normal CPEBK/SVGBK stack
     Created by : HCPSVC    when no free SVGBKs are available
                  HCPSAM    during processor online storage
                  allocation
     Deleted by : HCPSVC    during SVGBK reclaim processing
                  HCPSAM    during processor offline storage
                  deallocation
     References : The front of the SVGBK is a header, the SVHBK,
                  which is common among the CPEBK, SAVBK, and SVGBK.
                  Chains threaded through SVGFPNT/-BPNT may contain
                  a mix of SVGBKs and CPEBKs or SAVBKs.
     Serialized : Dispatch lock for all fields except SVGCPRQ,
                  except for SVGCPRQ, which is serialized by TRQBK
                  and by the MP-defer function.
     Notes      : The layout of this block in the ESA/390 gen
                  parallels that of the CPEBK and SAVBK, and must
                  be kept in synch with them.
     Comments   : SVGFPNT and SVGBPNT are used to maintain various
                  SAVBK/CPEBK/SVGBK queues and stacks.  Routines may
                  use these fields if the SVGBK is not currently on a
                  queue or stack.  An example is the SVGBK used on a
                  dynamic call.
                  If a routine calls another routine to stack an
                  SVGBK onto a queue, the calling routine should be
                  aware that the SVGFPNT and SVGBPNT fields may have
                  been changed as a result of the call.  The calling
                  routines should refrain from using these fields.

#### SVGBK Control Block Content

#### SVGBK DSECT

    Hex   Dec Type/Val   Lng Label (dup)    Comments
    ---- ---- --------- ---- -------------- --------
    0000    0 Structure      SVGBK          Linkage savearea, longreg/fullreg
         The header of the SVGBK includes queue pointers, status flags, and a
         type code. This header must be laid out the same in the SAVBK, CPEBK,
         and SVGBK, since a single queue or savearea chain may contain a mix of
         both blocks. This mapping is defined as the SVHBK. Equivalent symbols
         are included here.
    0000    0 Bitstring    1 SVGHEAD (0)    Savearea header common to all
                                            formats
         The header of the savearea includes queue pointers, status flags, and a
         type code. This header must be laid out the same in all savearea
         formats, since a single queue or savearea chain may contain a mix of
         both blocks.
    0000    0 Signed       4 SVGFPNT        General forward pointer
    0004    4 Signed       4 SVGBPNT        General backward pointer
                                            (backward pointer not used for
                                            single-thread lists)
    0008    8 Address      4 SVGSFQP        Savearea frame queue pointer
    000C   12 Address      4 SVGCPRQ        Cross processor return queue addr
    0010   16 Bitstring    1 SVGSCHC        Savearea dispatching controls
              1... ....      SVGNOFR        X'80' Do not fret savearea on
                                            dispatch
              .1.. ....      SVGSKCR        X'40' This is a stacked return
              ..1. ....      SVGSKCL        X'20' This is a stacked call
              ...1 ....      SVGRTNF        X'10' "Return" with no fret
              .... 1...      SVGUCFM        X'08' Stack as console function
                                            work
              .... .1..      SVGURGT        X'04' Stack as urgent work
              .... ...1      SVGDMCO        X'01' Dispatch on the master CPU
                                            only
    0011   17 Bitstring    1 SVGCALC        Block usage status
              1... ....      SVGOPEN        X'80' Savearea in use for a call
              .1.. ....      SVGGET         X'40' Savearea obtained via GET
              ..1. ....      SVGPGLK        X'20' Callee module is pageable,
                                            and was locked
              ...1 ....      SVGPGWT        X'10' Call waiting on pageable
                                            module to be paged in
              .... 1...      SVGSPAR        X'08' Savearea is not active
    0012   18 Bitstring    1 *              Reserved
    0013   19 Bitstring    1 SVGFORM        Savearea format/content
              1... ....      SVGLARG        X'80' Savearea is large
                                            allocation size
              .1.. ....      SVGCREG        X'40' Savearea has contiguous
                                            64-bit register fields (SVGBK)
              ..1. ....      SVGRG64        X'20' Savearea accommodates 64
                                            bits per register (SVGBK or SAVBK
                                            with SAVEHIRG extension)
              .11. ....      SVGREGF        SVGCREG+SVGRG64 Mask for
                                            register-layout bits above; has
                                            value: noformat 00 for SAVBK 01
                                            for SAVBK with SAVEHIRG 11 for
                                            SVGBK enoformat
    0014   20 Address      4 SVGRETN        Return linkage routine address
    0018   24 Dbl-Word     8 *              Reserved for future use (ESAME
                                            gen only)
    0020   32 Bitstring  224 SVGAREA (0)    Register and working storage
         Register contents: Note the terminology below assumes 64-bit registers,
         with a high-order word (bytes 0-3, bits 0-31) and a low-order word
         (bytes 4-7, bits 32-63). Registers 0-15 are contiguous in the block.
         In the ESAME-mode CP gen, names are of the form SVGRn for the 64-bit
         register, SVGRnHI for the high-order 32 bits, and SVGRnLO for the
         low-order 32 bits. In the ESA/390-mode CP gen, the register fields are
         32 bits long, and only the SVGRnLO fields are defined.
         In either gen, register contents are contiguous.
    0020   32 Bitstring  128 SVGREGS (0)    Caller's registers - R0 to R15
    0020   32 Dbl-Word     8 SVGR0 (0)      Caller's saved register 0
    0020   32 Signed       4 SVGR0HI        Caller's saved reg 0 bytes 0-3
    0024   36 Signed       4 SVGR0LO (0)    Caller's saved reg 0 bytes 4-7
    0024   36 Bitstring    1 SVGR0B4        Caller's saved register 0 byte 4
    0025   37 Bitstring    1 SVGR0B5        Caller's saved register 0 byte 5
    0026   38 Bitstring    1 SVGR0B6        Caller's saved register 0 byte 6
    0027   39 Bitstring    1 SVGR0B7        Caller's saved register 0 byte 7
    0028   40 Dbl-Word     8 SVGR1 (0)      Caller's saved register 1
    0028   40 Signed       4 SVGR1HI        Caller's saved reg 1 bytes 0-3
    002C   44 Signed       4 SVGR1LO (0)    Caller's saved reg 1 bytes 4-7
    002C   44 Bitstring    1 SVGR1B4        Caller's saved register 1 byte 4
    002D   45 Bitstring    1 SVGR1B5        Caller's saved register 1 byte 5
    002E   46 Bitstring    1 SVGR1B6        Caller's saved register 1 byte 6
    002F   47 Bitstring    1 SVGR1B7        Caller's saved register 1 byte 7
    0030   48 Dbl-Word     8 SVGR2 (0)      Caller's saved register 2
    0030   48 Signed       4 SVGR2HI        Caller's saved reg 2 bytes 0-3
    0034   52 Signed       4 SVGR2LO (0)    Caller's saved reg 2 bytes 4-7
    0034   52 Bitstring    1 SVGR2B4        Caller's saved register 2 byte 4
    0035   53 Bitstring    1 SVGR2B5        Caller's saved register 2 byte 5
    0036   54 Bitstring    1 SVGR2B6        Caller's saved register 2 byte 6
    0037   55 Bitstring    1 SVGR2B7        Caller's saved register 2 byte 7
    0038   56 Dbl-Word     8 SVGR3 (0)      Caller's saved register 3
    0038   56 Signed       4 SVGR3HI        Caller's saved reg 3 bytes 0-3
    003C   60 Signed       4 SVGR3LO        Caller's saved reg 3 bytes 4-7
    0040   64 Dbl-Word     8 SVGR4 (0)      Caller's saved register 4
    0040   64 Signed       4 SVGR4HI        Caller's saved reg 4 bytes 0-3
    0044   68 Signed       4 SVGR4LO        Caller's saved reg 4 bytes 4-7
    0048   72 Dbl-Word     8 SVGR5 (0)      Caller's saved register 5
    0048   72 Signed       4 SVGR5HI        Caller's saved reg 5 bytes 0-3
    004C   76 Signed       4 SVGR5LO        Caller's saved reg 5 bytes 4-7
    0050   80 Dbl-Word     8 SVGR6 (0)      Caller's saved register 6
    0050   80 Signed       4 SVGR6HI        Caller's saved reg 6 bytes 0-3
    0054   84 Signed       4 SVGR6LO        Caller's saved reg 6 bytes 4-7
    0058   88 Dbl-Word     8 SVGR7 (0)      Caller's saved register 7
    0058   88 Signed       4 SVGR7HI        Caller's saved reg 7 bytes 0-3
    005C   92 Signed       4 SVGR7LO        Caller's saved reg 7 bytes 4-7
    0060   96 Dbl-Word     8 SVGR8 (0)      Caller's saved register 8
    0060   96 Signed       4 SVGR8HI        Caller's saved reg 8 bytes 0-3
    0064  100 Signed       4 SVGR8LO        Caller's saved reg 8 bytes 4-7
    0068  104 Dbl-Word     8 SVGR9 (0)      Caller's saved register 9
    0068  104 Signed       4 SVGR9HI        Caller's saved reg 9 bytes 0-3
    006C  108 Signed       4 SVGR9LO        Caller's saved reg 9 bytes 4-7
    0070  112 Dbl-Word     8 SVGR10 (0)     Caller's saved register 10
    0070  112 Signed       4 SVGR10HI       Caller's saved reg 10 bytes 0-3
    0074  116 Signed       4 SVGR10LO       Caller's saved reg 10 bytes 4-7
    0078  120 Dbl-Word     8 SVGR11 (0)     Caller's saved register 11
    0078  120 Signed       4 SVGR11HI       Caller's saved reg 11 bytes 0-3
    007C  124 Signed       4 SVGR11LO       Caller's saved reg 11 bytes 4-7
    0080  128 Dbl-Word     8 SVGR12 (0)     Caller's saved register 12
    0080  128 Signed       4 SVGR12HI       Caller's saved reg 12 bytes 0-3
    0084  132 Signed       4 SVGR12LO       Caller's saved reg 12 bytes 4-7
    0088  136 Dbl-Word     8 SVGR13 (0)     Caller's saved register 13
    0088  136 Signed       4 SVGR13HI       Caller's saved reg 13 bytes 0-3
    008C  140 Signed       4 SVGR13LO       Caller's saved reg 13 bytes 4-7
    0090  144 Dbl-Word     8 SVGR14 (0)     Caller's saved register 14
    0090  144 Signed       4 SVGR14HI       Caller's saved reg 14 bytes 0-3
    0094  148 Signed       4 SVGR14LO       Caller's saved reg 14 bytes 4-7
    0098  152 Dbl-Word     8 SVGR15 (0)     Caller's saved register 15
    0098  152 Signed       4 SVGR15HI       Caller's saved reg 15 bytes 0-3
    009C  156 Signed       4 SVGR15LO       Caller's saved reg 15 bytes 4-7
    00A0  160 Dbl-Word     8 * (2)          Reserved - Unused in ESAME gen
    00B0  176 Bitstring   80 SVGWRK (0)     Workarea for callee
    00B0  176 Dbl-Word     8 SVGWRK0 (0)    Workarea for callee
    00B0  176 Signed       4 SVGWRK0H       Workarea for callee
    00B4  180 Signed       4 SVGWRK0L       Workarea for callee
    00B8  184 Dbl-Word     8 SVGWRK1 (0)    Workarea for callee
    00B8  184 Signed       4 SVGWRK1H       Workarea for callee
    00BC  188 Signed       4 SVGWRK1L       Workarea for callee
    00C0  192 Dbl-Word     8 SVGWRK2 (0)    Workarea for callee
    00C0  192 Signed       4 SVGWRK2H       Workarea for callee
    00C4  196 Signed       4 SVGWRK2L       Workarea for callee
    00C8  200 Dbl-Word     8 SVGWRK3 (0)    Workarea for callee
    00C8  200 Signed       4 SVGWRK3H       Workarea for callee
    00CC  204 Signed       4 SVGWRK3L       Workarea for callee
    00D0  208 Dbl-Word     8 SVGWRK4 (0)    Workarea for callee
    00D0  208 Signed       4 SVGWRK4H       Workarea for callee
    00D4  212 Signed       4 SVGWRK4L       Workarea for callee
    00D8  216 Dbl-Word     8 SVGWRK5 (0)    Workarea for callee
    00D8  216 Signed       4 SVGWRK5H       Workarea for callee
    00DC  220 Signed       4 SVGWRK5L       Workarea for callee
    00E0  224 Dbl-Word     8 SVGWRK6 (0)    Workarea for callee
    00E0  224 Signed       4 SVGWRK6H       Workarea for callee
    00E4  228 Signed       4 SVGWRK6L       Workarea for callee
    00E8  232 Dbl-Word     8 SVGWRK7 (0)    Workarea for callee
    00E8  232 Signed       4 SVGWRK7H       Workarea for callee
    00EC  236 Signed       4 SVGWRK7L       Workarea for callee
    00F0  240 Dbl-Word     8 SVGWRK8 (0)    Workarea for callee
    00F0  240 Signed       4 SVGWRK8H       Workarea for callee
    00F4  244 Signed       4 SVGWRK8L       Workarea for callee
    00F8  248 Dbl-Word     8 SVGWRK9 (0)    Workarea for callee
    00F8  248 Signed       4 SVGWRK9H       Workarea for callee
    00FC  252 Signed       4 SVGWRK9L       Workarea for callee
              00000100       SVG_END        * Byte after end of block
              00000020       SVGSIZE        (*-SVGBK+7)/8 Size in doublewords

#### SVGBK Storage Layout

    *** SVGBK - Linkage savearea, longreg/fullreg
    *
    *     +---------------------------+---------------------------+
    *   0 |         SVGFPNT           |         SVGBPNT           |
    *     +---------------------------+---------------------------+
    *   8 |         SVGSFQP           |         SVGCPRQ           |
    *     +------+------+------+------+---------------------------+
    *  10 |:SCHC |:CALC |//////|:FORM |         SVGRETN           |
    *     +------+------+------+------+---------------------------+
    *  18 |///////////////////////////////////////////////////////|
    *     +---------------------------+------+------+------+------+
    *  20 |         SVGR0HI           |:R0B4 |:R0B5 |:R0B6 |:R0B7 |
    *     +---------------------------+------+------+------+------+
    *  28 |         SVGR1HI           |:R1B4 |:R1B5 |:R1B6 |:R1B7 |
    *     +---------------------------+------+------+------+------+
    *  30 |         SVGR2HI           |:R2B4 |:R2B5 |:R2B6 |:R2B7 |
    *     +---------------------------+------+------+------+------+
    *  38 |         SVGR3HI           |         SVGR3LO           |
    *     +---------------------------+---------------------------+
    *  40 |         SVGR4HI           |         SVGR4LO           |
    *     +---------------------------+---------------------------+
    *  48 |         SVGR5HI           |         SVGR5LO           |
    *     +---------------------------+---------------------------+
    *  50 |         SVGR6HI           |         SVGR6LO           |
    *     +---------------------------+---------------------------+
    *  58 |         SVGR7HI           |         SVGR7LO           |
    *     +---------------------------+---------------------------+
    *  60 |         SVGR8HI           |         SVGR8LO           |
    *     +---------------------------+---------------------------+
    *  68 |         SVGR9HI           |         SVGR9LO           |
    *     +---------------------------+---------------------------+
    *  70 |         SVGR10HI          |         SVGR10LO          |
    *     +---------------------------+---------------------------+
    *  78 |         SVGR11HI          |         SVGR11LO          |
    *     +---------------------------+---------------------------+
    *  80 |         SVGR12HI          |         SVGR12LO          |
    *     +---------------------------+---------------------------+
    *  88 |         SVGR13HI          |         SVGR13LO          |
    *     +---------------------------+---------------------------+
    *  90 |         SVGR14HI          |         SVGR14LO          |
    *     +---------------------------+---------------------------+
    *  98 |         SVGR15HI          |         SVGR15LO          |
    *     +---------------------------+---------------------------+
    *  A0 |///////////////////////////////////////////////////////|
    *     |///////////////////////////////////////////////////////|
    *     +---------------------------+---------------------------+
    *  B0 |         SVGWRK0H          |         SVGWRK0L          |
    *     +---------------------------+---------------------------+
    *  B8 |         SVGWRK1H          |         SVGWRK1L          |
    *     +---------------------------+---------------------------+
    *  C0 |         SVGWRK2H          |         SVGWRK2L          |
    *     +---------------------------+---------------------------+
    *  C8 |         SVGWRK3H          |         SVGWRK3L          |
    *     +---------------------------+---------------------------+
    *  D0 |         SVGWRK4H          |         SVGWRK4L          |
    *     +---------------------------+---------------------------+
    *  D8 |         SVGWRK5H          |         SVGWRK5L          |
    *     +---------------------------+---------------------------+
    *  E0 |         SVGWRK6H          |         SVGWRK6L          |
    *     +---------------------------+---------------------------+
    *  E8 |         SVGWRK7H          |         SVGWRK7L          |
    *     +---------------------------+---------------------------+
    *  F0 |         SVGWRK8H          |         SVGWRK8L          |
    *     +---------------------------+---------------------------+
    *  F8 |         SVGWRK9H          |         SVGWRK9L          |
    *     +---------------------------+---------------------------+
    * 100
    *
    *** SVGBK - Linkage savearea, longreg/fullreg

#### SVGBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SVG_END        00FC 00000100
    SVGAREA        0020
    SVGBPNT        0004
    SVGCALC        0011
    SVGCPRQ        000C
    SVGCREG        0013 40
    SVGDMCO        0010 01
    SVGFORM        0013
    SVGFPNT        0000
    SVGGET         0011 40
    SVGHEAD        0000
    SVGLARG        0013 80
    SVGNOFR        0010 80
    SVGOPEN        0011 80
    SVGPGLK        0011 20
    SVGPGWT        0011 10
    SVGREGF        0013 60
    SVGREGS        0020
    SVGRETN        0014
    SVGRG64        0013 20
    SVGRTNF        0010 10
    SVGR0          0020
    SVGR0B4        0024
    SVGR0B5        0025
    SVGR0B6        0026
    SVGR0B7        0027
    SVGR0HI        0020
    SVGR0LO        0024
    SVGR1          0028
    SVGR1B4        002C
    SVGR1B5        002D
    SVGR1B6        002E
    SVGR1B7        002F
    SVGR1HI        0028
    SVGR1LO        002C
    SVGR10         0070
    SVGR10HI       0070
    SVGR10LO       0074
    SVGR11         0078
    SVGR11HI       0078
    SVGR11LO       007C
    SVGR12         0080
    SVGR12HI       0080
    SVGR12LO       0084
    SVGR13         0088
    SVGR13HI       0088
    SVGR13LO       008C
    SVGR14         0090
    SVGR14HI       0090
    SVGR14LO       0094
    SVGR15         0098
    SVGR15HI       0098
    SVGR15LO       009C
    SVGR2          0030
    SVGR2B4        0034
    SVGR2B5        0035
    SVGR2B6        0036
    SVGR2B7        0037
    SVGR2HI        0030
    SVGR2LO        0034
    SVGR3          0038
    SVGR3HI        0038
    SVGR3LO        003C
    SVGR4          0040
    SVGR4HI        0040
    SVGR4LO        0044
    SVGR5          0048
    SVGR5HI        0048
    SVGR5LO        004C
    SVGR6          0050
    SVGR6HI        0050
    SVGR6LO        0054
    SVGR7          0058
    SVGR7HI        0058
    SVGR7LO        005C
    SVGR8          0060
    SVGR8HI        0060
    SVGR8LO        0064
    SVGR9          0068
    SVGR9HI        0068
    SVGR9LO        006C
    SVGSCHC        0010
    SVGSFQP        0008
    SVGSIZE        00FC 00000020
    SVGSKCL        0010 20
    SVGSKCR        0010 40
    SVGSPAR        0011 08
    SVGUCFM        0010 08
    SVGURGT        0010 04
    SVGWRK         00B0
    SVGWRK0        00B0
    SVGWRK0H       00B0
    SVGWRK0L       00B4
    SVGWRK1        00B8
    SVGWRK1H       00B8
    SVGWRK1L       00BC
    SVGWRK2        00C0
    SVGWRK2H       00C0
    SVGWRK2L       00C4
    SVGWRK3        00C8
    SVGWRK3H       00C8
    SVGWRK3L       00CC
    SVGWRK4        00D0
    SVGWRK4H       00D0
    SVGWRK4L       00D4
    SVGWRK5        00D8
    SVGWRK5H       00D8
    SVGWRK5L       00DC
    SVGWRK6        00E0
    SVGWRK6H       00E0
    SVGWRK6L       00E4
    SVGWRK7        00E8
    SVGWRK7H       00E8
    SVGWRK7L       00EC
    SVGWRK8        00F0
    SVGWRK8H       00F0
    SVGWRK8L       00F4
    SVGWRK9        00F8
    SVGWRK9H       00F8
    SVGWRK9L       00FC

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