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