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:
          0SVGFORM       *              00 for SAVBK 01 for SAVBK with
                                        SAVEHIRG 11 for SVGBK*null
          .... ....      *
0014   20 Address      4 SVGRETN        Return linkage routine address
0018   24 Bitstring  104 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.
0018   24 Bitstring   64 SVGREGS (0)    Caller's registers - R0 to R15
0018   24 Signed       4 SVGR0LO (0)    Caller's saved reg 0 bytes 4-7
0018   24 Bitstring    1 SVGR0B4        Caller's saved register 0 byte 4
0019   25 Bitstring    1 SVGR0B5        Caller's saved register 0 byte 5
001A   26 Bitstring    1 SVGR0B6        Caller's saved register 0 byte 6
001B   27 Bitstring    1 SVGR0B7        Caller's saved register 0 byte 7
001C   28 Signed       4 SVGR1LO (0)    Caller's saved reg 1 bytes 4-7
001C   28 Bitstring    1 SVGR1B4        Caller's saved register 1 byte 4
001D   29 Bitstring    1 SVGR1B5        Caller's saved register 1 byte 5
001E   30 Bitstring    1 SVGR1B6        Caller's saved register 1 byte 6
001F   31 Bitstring    1 SVGR1B7        Caller's saved register 1 byte 7
0020   32 Signed       4 SVGR2LO (0)    Caller's saved reg 2 bytes 4-7
0020   32 Bitstring    1 SVGR2B4        Caller's saved register 2 byte 4
0021   33 Bitstring    1 SVGR2B5        Caller's saved register 2 byte 5
0022   34 Bitstring    1 SVGR2B6        Caller's saved register 2 byte 6
0023   35 Bitstring    1 SVGR2B7        Caller's saved register 2 byte 7
0024   36 Signed       4 SVGR3LO        Caller's saved reg 3 bytes 4-7
0028   40 Signed       4 SVGR4LO        Caller's saved reg 4 bytes 4-7
002C   44 Signed       4 SVGR5LO        Caller's saved reg 5 bytes 4-7
0030   48 Signed       4 SVGR6LO        Caller's saved reg 6 bytes 4-7
0034   52 Signed       4 SVGR7LO        Caller's saved reg 7 bytes 4-7
0038   56 Signed       4 SVGR8LO        Caller's saved reg 8 bytes 4-7
003C   60 Signed       4 SVGR9LO        Caller's saved reg 9 bytes 4-7
0040   64 Signed       4 SVGR10LO       Caller's saved reg 10 bytes 4-7
0044   68 Signed       4 SVGR11LO       Caller's saved reg 11 bytes 4-7
0048   72 Signed       4 SVGR12LO       Caller's saved reg 12 bytes 4-7
004C   76 Signed       4 SVGR13LO       Caller's saved reg 13 bytes 4-7
0050   80 Signed       4 SVGR14LO       Caller's saved reg 14 bytes 4-7
0054   84 Signed       4 SVGR15LO       Caller's saved reg 15 bytes 4-7
0058   88 Bitstring   40 SVGWRK (0)     Workarea for callee
0058   88 Signed       4 SVGWRK0L       Workarea for callee
005C   92 Signed       4 SVGWRK1L       Workarea for callee
0060   96 Signed       4 SVGWRK2L       Workarea for callee
0064  100 Signed       4 SVGWRK3L       Workarea for callee
0068  104 Signed       4 SVGWRK4L       Workarea for callee
006C  108 Signed       4 SVGWRK5L       Workarea for callee
0070  112 Signed       4 SVGWRK6L       Workarea for callee
0074  116 Signed       4 SVGWRK7L       Workarea for callee
0078  120 Signed       4 SVGWRK8L       Workarea for callee
007C  124 Signed       4 SVGWRK9L       Workarea for callee
          00000080       SVG_END        * Byte after end of block
          00000010       SVGSIZE        (*-SVGBK+7)/8 Size in doublewords
                                        SAVESIZE hardcoded definition in
                                        HCPEQUAT

 

SVGBK Storage Layout

          
*** SVGBK - Linkage savearea, longreg/fullreg
*
*     +---------------------------+---------------------------+
*   0 |         SVGFPNT           |         SVGBPNT           |
*     +---------------------------+---------------------------+
*   8 |         SVGSFQP           |         SVGCPRQ           |
*     +------+------+------+------+---------------------------+
*  10 |:SCHC |:CALC |//////|:FORM |         SVGRETN           |
*     +------+------+------+------+------+------+------+------+
*  18 |:R0B4 |:R0B5 |:R0B6 |:R0B7 |:R1B4 |:R1B5 |:R1B6 |:R1B7 |
*     +------+------+------+------+------+------+------+------+
*  20 |:R2B4 |:R2B5 |:R2B6 |:R2B7 |         SVGR3LO           |
*     +------+------+------+------+---------------------------+
*  28 |         SVGR4LO           |         SVGR5LO           |
*     +---------------------------+---------------------------+
*  30 |         SVGR6LO           |         SVGR7LO           |
*     +---------------------------+---------------------------+
*  38 |         SVGR8LO           |         SVGR9LO           |
*     +---------------------------+---------------------------+
*  40 |         SVGR10LO          |         SVGR11LO          |
*     +---------------------------+---------------------------+
*  48 |         SVGR12LO          |         SVGR13LO          |
*     +---------------------------+---------------------------+
*  50 |         SVGR14LO          |         SVGR15LO          |
*     +---------------------------+---------------------------+
*  58 |         SVGWRK0L          |         SVGWRK1L          |
*     +---------------------------+---------------------------+
*  60 |         SVGWRK2L          |         SVGWRK3L          |
*     +---------------------------+---------------------------+
*  68 |         SVGWRK4L          |         SVGWRK5L          |
*     +---------------------------+---------------------------+
*  70 |         SVGWRK6L          |         SVGWRK7L          |
*     +---------------------------+---------------------------+
*  78 |         SVGWRK8L          |         SVGWRK9L          |
*     +---------------------------+---------------------------+
*  80
*
*** SVGBK - Linkage savearea, longreg/fullreg

 

SVGBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
*              0013 0SVGFORM
*              0013 00
SVG_END        007C 00000080
SVGAREA        0018
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        0018
SVGRETN        0014
SVGRG64        0013 20
SVGRTNF        0010 10
SVGR0B4        0018
SVGR0B5        0019
SVGR0B6        001A
SVGR0B7        001B
SVGR0LO        0018
SVGR1B4        001C
SVGR1B5        001D
SVGR1B6        001E
SVGR1B7        001F
SVGR1LO        001C
SVGR10LO       0040
SVGR11LO       0044
SVGR12LO       0048
SVGR13LO       004C
SVGR14LO       0050
SVGR15LO       0054
SVGR2B4        0020
SVGR2B5        0021
SVGR2B6        0022
SVGR2B7        0023
SVGR2LO        0020
SVGR3LO        0024
SVGR4LO        0028
SVGR5LO        002C
SVGR6LO        0030
SVGR7LO        0034
SVGR8LO        0038
SVGR9LO        003C
SVGSCHC        0010
SVGSFQP        0008
SVGSIZE        007C 00000010
SVGSKCL        0010 20
SVGSKCR        0010 40
SVGSPAR        0011 08
SVGUCFM        0010 08
SVGURGT        0010 04
SVGWRK         0058
SVGWRK0L       0058
SVGWRK1L       005C
SVGWRK2L       0060
SVGWRK3L       0064
SVGWRK4L       0068
SVGWRK5L       006C
SVGWRK6L       0070
SVGWRK7L       0074
SVGWRK8L       0078
SVGWRK9L       007C

This information is based on z/VM V4R1.0.
Last updated on 5 Jun 2001 at 16:52:57 EDT.
Copyright IBM Corporation, 1990, 2001