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



Control Block Contents  

Storage Layout  

Cross Reference (Contains links to field and bit definitions)  

SVHBK Prolog

 Name       : HCPSVHBK
 Description: Common linkage savearea header
              5654-A17 (C) COPYRIGHT IBM CORP. - 2001
 Function   : The SVHBK maps the header common to all
              savearea formats -- the "short-register" SAVBK
              (with or without its extension, SAVEHIRG) for
              callees which treat registers as 32 bits wide,
              and the "long-register" SVGBK for callees which
              treat registers as 64 bits wide.  Byte SVHFORM
              contains a format indicator to distinguish the
              underlying format.
 Located by : R13       when running in any routine which is
              called using a call-with-dynamic-savearea
              linkage.  Points to current (already
              filled up) savearea.
              SAVER13   This field in callee's savearea points
              /SVGR13LO back to the caller's savearea.  (This
              assumes that the caller has a savearea of
              his own, and that he had its address in
              R13 at the time of the call.)
              SVHFPNT   forward chaining pointer.  The chain of
              available saveareas uses this pointer.
              When the block is in use as a savearea,
              SVHFPNT is normally not used for
              anything.  (SAVER13 points back to the
              preceding savearea if the caller
              had one.)
              SVHBPNT   This pointer is available for backward
              chaining, but is not normally used.
 References : Chains threaded through SVHFPNT/-BPNT may contain
              a mix of SVGBKs and CPEBKs or SAVBKs (all of whose
              headers are mapped by the SVHBK).
 Created by : None.  The SVHBK does not exist on its own,
              but only at the front of a SAVBK, SVGBK, or
 Deleted by : None.
 Serialized : Serialization is provided by the dispatch lock
              except for SVHCPRQ, which is serialized by TRQBK
              and by the MP-defer function.
 Notes      : none
 Comments   : For the convenience of callees, which "know"
              which format of savearea they have, the fields
              in the SVHBK are also defined using names for
              each savearea block (SAVExxxx or SVGxxxx).
              SVHFORM identifies the format of savearea in which
              this header is contained.
              SVHFPNT and SVHBPNT are used to maintain various
              SAVBK/SVHBK queues and stacks.  Routines may use
              these fields if the SVHBK is not currently on a
              queue or stack.  An example is the SVHBK used on a
              dynamic call.
              If a routine calls another routine to stack an
              SVHBK onto a queue, the calling routine should be
              aware that the SVHFPNT and SVHBPNT fields may have
              been changed as a result of the call.  The calling
              routines should refrain from using these fields.


SVHBK Control Block Content


Hex   Dec Type/Val   Lng Label (dup)    Comments
---- ---- --------- ---- -------------- --------
0000    0 Structure      SVHBK          Common linkage savearea header
     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 SVHFPNT        General forward pointer
0004    4 Signed       4 SVHBPNT        General backward pointer
                                        (backward pointer not used for
                                        single-thread lists)
0008    8 Address      4 SVHSFQP        Savearea frame queue pointer
000C   12 Address      4 SVHCPRQ        Cross processor return queue addr
0010   16 Bitstring    1 SVHSCHC        Savearea dispatching controls
          1... ....      SVHNOFR        X'80' Do not fret savearea on
          .1.. ....      SVHSKCR        X'40' This is a stacked return
          ..1. ....      SVHSKCL        X'20' This is a stacked call
          ...1 ....      SVHRTNF        X'10' "Return" with no fret
          .... 1...      SVHUCFM        X'08' Stack as console function
          .... .1..      SVHURGT        X'04' Stack as urgent work
          .... ...1      SVHDMCO        X'01' Dispatch on the master CPU
0011   17 Bitstring    1 SVHCALC        Block usage status
          1... ....      SVHOPEN        X'80' Savearea in use for a call
          .1.. ....      SVHGET         X'40' Savearea obtained via GET
          ..1. ....      SVHPGLK        X'20' Callee module is pageable,
                                        and was locked
          ...1 ....      SVHPGWT        X'10' Call waiting on pageable
                                        module to be paged in
          .... 1...      SVHSPAR        X'08' Savearea is not active
0012   18 Bitstring    1 *              Reserved
0013   19 Bitstring    1 SVHFORM        Savearea format/content
          1... ....      SVHLARG        X'80' Savearea is large
                                        allocation size
          .1.. ....      SVHCREG        X'40' Savearea has contiguous
                                        64-bit register fields (SVGBK)
          ..1. ....      SVHRG64        X'20' Savearea accommodates 64
                                        bits per register (SVGBK or SAVBK
                                        with SAVEHIRG extension)
          .11. ....      SVHREGF        SVHCREG+SVHRG64 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 SVHRETN        Return linkage routine address
          00000018       SVHLEN         *-SVHBK Size of header


SVHBK Storage Layout

*** SVHBK - Common linkage savearea header
*     +---------------------------+---------------------------+
*   0 |         SVHFPNT           |         SVHBPNT           |
*     +---------------------------+---------------------------+
*   8 |         SVHSFQP           |         SVHCPRQ           |
*     +------+------+------+------+---------------------------+
*  10 |:SCHC |:CALC |//////|:FORM |         SVHRETN           |
*     +------+------+------+------+---------------------------+
*  18
*** SVHBK - Common linkage savearea header


SVHBK Cross Reference

Symbol         Dspl Value
-------------- ---- -----
SVHBPNT        0004
SVHCALC        0011
SVHCPRQ        000C
SVHCREG        0013 40
SVHDMCO        0010 01
SVHFORM        0013
SVHFPNT        0000
SVHGET         0011 40
SVHLARG        0013 80
SVHLEN         0014 00000018
SVHNOFR        0010 80
SVHOPEN        0011 80
SVHPGLK        0011 20
SVHPGWT        0011 10
SVHREGF        0013 60
SVHRETN        0014
SVHRG64        0013 20
SVHRTNF        0010 10
SVHSCHC        0010
SVHSFQP        0008
SVHSKCL        0010 20
SVHSKCR        0010 40
SVHSPAR        0011 08
SVHUCFM        0010 08
SVHURGT        0010 04

This information is based on z/VM V4R3.0. Last updated on 30 Apr 2002 at 18:00:55 EDT.
Copyright IBM Corporation, 1990, 2002