|
Programming Interface Information:
This information is NOT intended to be
used as Programming Interfaces of z/VM. |
SVHBK
Control Block Contents
SVHBK DSECT
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.
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:
0SVHFORM * 00 for SAVBK 01 for SAVBK with
SAVEHIRG 11 for SVGBK*null
.... .... *
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 -------------- ---- ----- * 0013 0SVHFORM * 0013 00 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
Last updated on 6 Jun 2001 at 12:28:49 EDT.
Copyright IBM Corporation, 1990, 2001