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
     COPYRIGHT -
                  THIS MODULE IS "RESTRICTED MATERIALS OF IBM"
                  5654-A17 (C) COPYRIGHT IBM CORP. - 2001
                  LICENSED MATERIALS - PROPERTY OF IBM
     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.
    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
                                            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' 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