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

#### SVHBK

Prolog

Control Block Contents
SVHBK DSECT

Storage Layout

Cross Reference (Contains links to field and bit definitions)

#### SVHBK Prolog

     Name       : HCPSVHBK
     Description: Common linkage savearea header
     DSECT      : SVHBK
     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
                  CPEBK.
     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

#### SVHBK DSECT

    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.
          Eventually, all header fields are to be SVHxxxx.
    0000    0 Address      4 SVHFPNT        General forward pointer
    0004    4 Address      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
                                            dispatch
              .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
                                            work
              .... .1..      SVHURGT        X'04' Stack as urgent work
              .... ...1      SVHDMCO        X'01' Dispatch on the master CPU
                                            only
    0011   17 Bitstring    1 SVHCALC        Block usage status
              1... ....      SVHOPEN        X'80'
              .1.. ....      SVHGET         X'40' Savearea obtained via GET
              ..1. ....      SVHCSAV        X'20' FPNT is ptr to C savearea
                                            chain
              .... .1..      SVHSVA         X'04'
              .... ..1.      SVHIS2W        X'02'
              .... ...1      SVHHF2W        X'01'
    0012   18 Bitstring    1 SVHIAC         Address mode when we HCPCALL
    0013   19 Bitstring    1 SVHFORM        Savearea format/content
              1... ....      SVHSTAM        X'80' For STATIC entry pt,
                                            TmodeSTD or TmodeINT: ARs saved
                                            by HCPENTER, and should be
                                            restored by HCPEXIT. Also, set by
                                            HCPSTK and others, tested by
                                            HCPDSB, indicating ARs should be
                                            restored at CPEBK unstack time.
              .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 |SVHIAC|:FORM |         SVHRETN           |
    *     +------+------+------+------+---------------------------+
    *  18
    *
    *** SVHBK - Common linkage savearea header

#### SVHBK Cross Reference

    Symbol         Dspl Value
    -------------- ---- -----
    SVHBPNT        0004
    SVHCALC        0011
    SVHCPRQ        000C
    SVHCREG        0013 40
    SVHCSAV        0011 20
    SVHDMCO        0010 01
    SVHFORM        0013
    SVHFPNT        0000
    SVHGET         0011 40
    SVHHF2W        0011 01
    SVHIAC         0012
    SVHIS2W        0011 02
    SVHLEN         0014 00000018
    SVHNOFR        0010 80
    SVHOPEN        0011 80
    SVHREGF        0013 60
    SVHRETN        0014
    SVHRG64        0013 20
    SVHRTNF        0010 10
    SVHSCHC        0010
    SVHSFQP        0008
    SVHSKCL        0010 20
    SVHSKCR        0010 40
    SVHSTAM        0013 80
    SVHSVA         0011 04
    SVHUCFM        0010 08
    SVHURGT        0010 04

This information is based on z/VM V5R2.0. Last updated on 12 Apr 2006 at 17:30:58 EDT.
Copyright IBM Corporation, 1990, 2005