SVHBK Back to Index page
Control Block Contents 
Storage Layout 
Cross Reference (Contains links to field and bit definitions)
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM.

  SVHBK Prolog Top of page
 DESCRIPTION: Common linkage savearea header
 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
 SERIALIZED : Serialization is provided by the dispatch lock
              except for SVHCPRQ, which is serialized by TRQBK
              and by the MP-defer function.
 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 Top of page

 SVHBK DSECT Top of page
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: 00 for SAVBK 01 for SAVBK with SAVEHIRG 11 for SVGBK 0014 20 Address 4 SVHRETN Return linkage routine address 00000018 SVHLEN *-SVHBK Size of header
  SVHBK Storage Layout Top of page
*** 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 Top of page
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 6.3.0 Last updated on 22 May 2013 at 13:55:54 EDT.
Copyright IBM Corporation, 1990, 2013