|
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.
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
Copyright IBM Corporation, 1990, 2009