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' SVHNOFR Do not fret
                                        savearea on dispatch
          .1.. ....      SVHSKCR        X'40' SVHSKCR This is a stacked
                                        return
          ..1. ....      SVHSKCL        X'20' SVHSKCL This is a stacked
                                        call
          ...1 ....      SVHRTNF        X'10' SVHRTNF "Return" with no
                                        fret
          .... 1...      SVHUCFM        X'08' SVHUCFM Stack as console
                                        function work
          .... .1..      SVHURGT        X'04' SVHURGT Stack as urgent
                                        work
          .... ...1      SVHDMCO        X'01' SVHDMCO Dispatch on the
                                        master CPU only
0011   17 Bitstring    1 SVHCALC        Block usage status
          1... ....      SVHOPEN        X'80' SVHOPEN *!*
          .1.. ....      SVHGET         X'40' SVHGET Savearea obtained
                                        via GET
          ..1. ....      SVHCSAV        X'20' SVHCSAV FPNT is ptr to C
                                        savearea chain
          .... .1..      SVHSVA         X'04' SVHSVA *!*
          .... ..1.      SVHIS2W        X'02' SVHIS2W *!*
          .... ...1      SVHHF2W        X'01' SVHHF2W *!*
0012   18 Bitstring    1 SVHIAC         Address mode when we HCPCALL
0013   19 Bitstring    1 SVHFORM        Savearea format/content
          1... ....      SVHSTAM        X'80' SVHSTAM 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' SVHCREG Savearea has
                                        contiguous 64-bit register fields
                                        (SVGBK)
          ..1. ....      SVHRG64        X'20' SVHRG64 Savearea
                                        accommodates 64 bits per register
                                        (SVGBK, or SAVBK with SAVEHIRG
                                        extension)
          .11. ....      SVHREGF        SVHCREG+SVHRG64 SVHREGF 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 V5R4.0. Last updated on 18 Feb 2010 at 04:15:37 EDT.
Copyright IBM Corporation, 1990, 2009