|
Programming Interface Information:
This information is NOT intended to be used as Programming Interfaces of z/VM. |
SVGBK
Control Block Contents
SVGBK DSECT
Cross Reference (Contains links to field and bit definitions)
SVGBK Prolog
Name : HCPSVGBK
Description: Linkage savearea, longreg/fullreg
format
DSECT : SVGBK
Function : The SVGBK is used in the call-with-dynamic-savearea
calling linkage to a "long-register", or "longreg",
routine (one which uses 64-bit registers when the
machine provides them) or a "full- register"
("fullreg") routine (one which is longreg in the
ESAME gen and "shortreg" in the ESA/390 gen). The
caller does not supply the savearea. Instead, the
linkage assistance routines (HCPSVC/SVD) allocate
the SVGBK and the called routine then saves the
caller's registers in the SVGBK.
Shortreg routines (those which always treat
registers as 32 bits) use an SAVBK instead of an
SVGBK.
Note that the SVGBK layout is different in the
ESAME and ESA/390 gens. In the ESA/390 gen, the
SVGBK is laid out identically to an SAVBK (though
with different field names). For example, it has
16 contiguous words for registers, as opposed to
16 contiguous doublewords in the ESAME gen. The
ESA/390 version of the SVGBK defines only a subset
of the symbols in the ESAME version (e.g. it has
an SVGR0LO word but not an SVGR0 doubleword or an
SVGR0HI word). This is to facilitate a single
source base for "fullreg" code.
The SVGBK dsect is also used as a map of the
several fixed saveareas such as PFXBALSV and
PFXTMPSV, when they are used by longreg and
fullreg routines.
Finally, the SVGBK can be used as a longreg
alternative to a CPEBK. (There is no "CPGBK".)
HCPSTK will accept an SVGBK to be stacked for later
dispatching by HCPDSB.
Located by : R13 when running in any "long-register"
routine which is called using a
call-with-dynamic-savearea linkage.
Points to current (already filled up)
savearea.
SVGR13 This field in callee's savearea points
back to the callers savearea. (This
assumes that the caller is a longreg
routine and has a savearea of its own,
and that he had its address in
R13 at the time of the call. See also
SVGCSAV for another backward pointer.)
SAVEFPNT forward chaining pointer. The chain of
/SVGFPNT available SVGBK's uses this pointer.
When the SVGBK is in use as a savearea,
SAVEFPNT is normally not used for
anything. (SAVER13 points back to the
preceding SVGBK/SAVBK if the caller
had one.)
SAVEBPNT This pointer is available for backward
/SVGBPNT chaining, but is not normally used.
VMDQURCP Urgent CPEBK/SVGBK stack
VMDQCPEF Normal CPEBK/SVGBK stack
Created by : HCPSVC when no free SVGBKs are available
HCPSAM during processor online storage
allocation
Deleted by : HCPSVC during SVGBK reclaim processing
HCPSAM during processor offline storage
deallocation
References : The front of the SVGBK is a header, the SVHBK,
which is common among the CPEBK, SAVBK, and SVGBK.
Chains threaded through SVGFPNT/-BPNT may contain
a mix of SVGBKs and CPEBKs or SAVBKs.
Serialized : Dispatch lock for all fields except SVGCPRQ,
except for SVGCPRQ, which is serialized by TRQBK
and by the MP-defer function.
Notes : The layout of this block in the ESA/390 gen
parallels that of the CPEBK and SAVBK, and must
be kept in synch with them.
Comments : SVGFPNT and SVGBPNT are used to maintain various
SAVBK/CPEBK/SVGBK queues and stacks. Routines may
use these fields if the SVGBK is not currently on a
queue or stack. An example is the SVGBK used on a
dynamic call.
If a routine calls another routine to stack an
SVGBK onto a queue, the calling routine should be
aware that the SVGFPNT and SVGBPNT fields may have
been changed as a result of the call. The calling
routines should refrain from using these fields.
SVGBK Control Block Content
SVGBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure SVGBK Linkage savearea, longreg/fullreg
The header of the SVGBK includes queue pointers, status flags, and a
type code. This header must be laid out the same in the SAVBK, CPEBK,
and SVGBK, since a single queue or savearea chain may contain a mix of
both blocks. This mapping is defined as the SVHBK. Equivalent symbols
are included here.
0000 0 Bitstring 1 SVGHEAD (0) Savearea header common to all
formats
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 SVGFPNT General forward pointer
0004 4 Signed 4 SVGBPNT General backward pointer
(backward pointer not used for
single-thread lists)
0008 8 Address 4 SVGSFQP Savearea frame queue pointer
000C 12 Address 4 SVGCPRQ Cross processor return queue addr
0010 16 Bitstring 1 SVGSCHC Savearea dispatching controls
1... .... SVGNOFR X'80' Do not fret savearea on
dispatch
.1.. .... SVGSKCR X'40' This is a stacked return
..1. .... SVGSKCL X'20' This is a stacked call
...1 .... SVGRTNF X'10' "Return" with no fret
.... 1... SVGUCFM X'08' Stack as console function
work
.... .1.. SVGURGT X'04' Stack as urgent work
.... ...1 SVGDMCO X'01' Dispatch on the master CPU
only
0011 17 Bitstring 1 SVGCALC Block usage status
1... .... SVGOPEN X'80' Savearea in use for a call
.1.. .... SVGGET X'40' Savearea obtained via GET
..1. .... SVGPGLK X'20' Callee module is pageable,
and was locked
...1 .... SVGPGWT X'10' Call waiting on pageable
module to be paged in
.... 1... SVGSPAR X'08' Savearea is not active
0012 18 Bitstring 1 * Reserved
0013 19 Bitstring 1 SVGFORM Savearea format/content
1... .... SVGLARG X'80' Savearea is large
allocation size
.1.. .... SVGCREG X'40' Savearea has contiguous
64-bit register fields (SVGBK)
..1. .... SVGRG64 X'20' Savearea accommodates 64
bits per register (SVGBK or SAVBK
with SAVEHIRG extension)
.11. .... SVGREGF SVGCREG+SVGRG64 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 SVGRETN Return linkage routine address
0018 24 Dbl-Word 8 * Reserved for future use (ESAME
gen only)
0020 32 Bitstring 224 SVGAREA (0) Register and working storage
Register contents: Note the terminology below assumes 64-bit registers,
with a high-order word (bytes 0-3, bits 0-31) and a low-order word
(bytes 4-7, bits 32-63). Registers 0-15 are contiguous in the block.
In the ESAME-mode CP gen, names are of the form SVGRn for the 64-bit
register, SVGRnHI for the high-order 32 bits, and SVGRnLO for the
low-order 32 bits. In the ESA/390-mode CP gen, the register fields are
32 bits long, and only the SVGRnLO fields are defined.
In either gen, register contents are contiguous.
0020 32 Bitstring 128 SVGREGS (0) Caller's registers - R0 to R15
0020 32 Dbl-Word 8 SVGR0 (0) Caller's saved register 0
0020 32 Signed 4 SVGR0HI Caller's saved reg 0 bytes 0-3
0024 36 Signed 4 SVGR0LO (0) Caller's saved reg 0 bytes 4-7
0024 36 Bitstring 1 SVGR0B4 Caller's saved register 0 byte 4
0025 37 Bitstring 1 SVGR0B5 Caller's saved register 0 byte 5
0026 38 Bitstring 1 SVGR0B6 Caller's saved register 0 byte 6
0027 39 Bitstring 1 SVGR0B7 Caller's saved register 0 byte 7
0028 40 Dbl-Word 8 SVGR1 (0) Caller's saved register 1
0028 40 Signed 4 SVGR1HI Caller's saved reg 1 bytes 0-3
002C 44 Signed 4 SVGR1LO (0) Caller's saved reg 1 bytes 4-7
002C 44 Bitstring 1 SVGR1B4 Caller's saved register 1 byte 4
002D 45 Bitstring 1 SVGR1B5 Caller's saved register 1 byte 5
002E 46 Bitstring 1 SVGR1B6 Caller's saved register 1 byte 6
002F 47 Bitstring 1 SVGR1B7 Caller's saved register 1 byte 7
0030 48 Dbl-Word 8 SVGR2 (0) Caller's saved register 2
0030 48 Signed 4 SVGR2HI Caller's saved reg 2 bytes 0-3
0034 52 Signed 4 SVGR2LO (0) Caller's saved reg 2 bytes 4-7
0034 52 Bitstring 1 SVGR2B4 Caller's saved register 2 byte 4
0035 53 Bitstring 1 SVGR2B5 Caller's saved register 2 byte 5
0036 54 Bitstring 1 SVGR2B6 Caller's saved register 2 byte 6
0037 55 Bitstring 1 SVGR2B7 Caller's saved register 2 byte 7
0038 56 Dbl-Word 8 SVGR3 (0) Caller's saved register 3
0038 56 Signed 4 SVGR3HI Caller's saved reg 3 bytes 0-3
003C 60 Signed 4 SVGR3LO Caller's saved reg 3 bytes 4-7
0040 64 Dbl-Word 8 SVGR4 (0) Caller's saved register 4
0040 64 Signed 4 SVGR4HI Caller's saved reg 4 bytes 0-3
0044 68 Signed 4 SVGR4LO Caller's saved reg 4 bytes 4-7
0048 72 Dbl-Word 8 SVGR5 (0) Caller's saved register 5
0048 72 Signed 4 SVGR5HI Caller's saved reg 5 bytes 0-3
004C 76 Signed 4 SVGR5LO Caller's saved reg 5 bytes 4-7
0050 80 Dbl-Word 8 SVGR6 (0) Caller's saved register 6
0050 80 Signed 4 SVGR6HI Caller's saved reg 6 bytes 0-3
0054 84 Signed 4 SVGR6LO Caller's saved reg 6 bytes 4-7
0058 88 Dbl-Word 8 SVGR7 (0) Caller's saved register 7
0058 88 Signed 4 SVGR7HI Caller's saved reg 7 bytes 0-3
005C 92 Signed 4 SVGR7LO Caller's saved reg 7 bytes 4-7
0060 96 Dbl-Word 8 SVGR8 (0) Caller's saved register 8
0060 96 Signed 4 SVGR8HI Caller's saved reg 8 bytes 0-3
0064 100 Signed 4 SVGR8LO Caller's saved reg 8 bytes 4-7
0068 104 Dbl-Word 8 SVGR9 (0) Caller's saved register 9
0068 104 Signed 4 SVGR9HI Caller's saved reg 9 bytes 0-3
006C 108 Signed 4 SVGR9LO Caller's saved reg 9 bytes 4-7
0070 112 Dbl-Word 8 SVGR10 (0) Caller's saved register 10
0070 112 Signed 4 SVGR10HI Caller's saved reg 10 bytes 0-3
0074 116 Signed 4 SVGR10LO Caller's saved reg 10 bytes 4-7
0078 120 Dbl-Word 8 SVGR11 (0) Caller's saved register 11
0078 120 Signed 4 SVGR11HI Caller's saved reg 11 bytes 0-3
007C 124 Signed 4 SVGR11LO Caller's saved reg 11 bytes 4-7
0080 128 Dbl-Word 8 SVGR12 (0) Caller's saved register 12
0080 128 Signed 4 SVGR12HI Caller's saved reg 12 bytes 0-3
0084 132 Signed 4 SVGR12LO Caller's saved reg 12 bytes 4-7
0088 136 Dbl-Word 8 SVGR13 (0) Caller's saved register 13
0088 136 Signed 4 SVGR13HI Caller's saved reg 13 bytes 0-3
008C 140 Signed 4 SVGR13LO Caller's saved reg 13 bytes 4-7
0090 144 Dbl-Word 8 SVGR14 (0) Caller's saved register 14
0090 144 Signed 4 SVGR14HI Caller's saved reg 14 bytes 0-3
0094 148 Signed 4 SVGR14LO Caller's saved reg 14 bytes 4-7
0098 152 Dbl-Word 8 SVGR15 (0) Caller's saved register 15
0098 152 Signed 4 SVGR15HI Caller's saved reg 15 bytes 0-3
009C 156 Signed 4 SVGR15LO Caller's saved reg 15 bytes 4-7
00A0 160 Dbl-Word 8 * (2) Reserved - Unused in ESAME gen
00B0 176 Bitstring 80 SVGWRK (0) Workarea for callee
00B0 176 Dbl-Word 8 SVGWRK0 (0) Workarea for callee
00B0 176 Signed 4 SVGWRK0H Workarea for callee
00B4 180 Signed 4 SVGWRK0L Workarea for callee
00B8 184 Dbl-Word 8 SVGWRK1 (0) Workarea for callee
00B8 184 Signed 4 SVGWRK1H Workarea for callee
00BC 188 Signed 4 SVGWRK1L Workarea for callee
00C0 192 Dbl-Word 8 SVGWRK2 (0) Workarea for callee
00C0 192 Signed 4 SVGWRK2H Workarea for callee
00C4 196 Signed 4 SVGWRK2L Workarea for callee
00C8 200 Dbl-Word 8 SVGWRK3 (0) Workarea for callee
00C8 200 Signed 4 SVGWRK3H Workarea for callee
00CC 204 Signed 4 SVGWRK3L Workarea for callee
00D0 208 Dbl-Word 8 SVGWRK4 (0) Workarea for callee
00D0 208 Signed 4 SVGWRK4H Workarea for callee
00D4 212 Signed 4 SVGWRK4L Workarea for callee
00D8 216 Dbl-Word 8 SVGWRK5 (0) Workarea for callee
00D8 216 Signed 4 SVGWRK5H Workarea for callee
00DC 220 Signed 4 SVGWRK5L Workarea for callee
00E0 224 Dbl-Word 8 SVGWRK6 (0) Workarea for callee
00E0 224 Signed 4 SVGWRK6H Workarea for callee
00E4 228 Signed 4 SVGWRK6L Workarea for callee
00E8 232 Dbl-Word 8 SVGWRK7 (0) Workarea for callee
00E8 232 Signed 4 SVGWRK7H Workarea for callee
00EC 236 Signed 4 SVGWRK7L Workarea for callee
00F0 240 Dbl-Word 8 SVGWRK8 (0) Workarea for callee
00F0 240 Signed 4 SVGWRK8H Workarea for callee
00F4 244 Signed 4 SVGWRK8L Workarea for callee
00F8 248 Dbl-Word 8 SVGWRK9 (0) Workarea for callee
00F8 248 Signed 4 SVGWRK9H Workarea for callee
00FC 252 Signed 4 SVGWRK9L Workarea for callee
00000100 SVG_END * Byte after end of block
00000020 SVGSIZE (*-SVGBK+7)/8 Size in doublewords
SVGBK Storage Layout
*** SVGBK - Linkage savearea, longreg/fullreg
*
* +---------------------------+---------------------------+
* 0 | SVGFPNT | SVGBPNT |
* +---------------------------+---------------------------+
* 8 | SVGSFQP | SVGCPRQ |
* +------+------+------+------+---------------------------+
* 10 |:SCHC |:CALC |//////|:FORM | SVGRETN |
* +------+------+------+------+---------------------------+
* 18 |///////////////////////////////////////////////////////|
* +---------------------------+------+------+------+------+
* 20 | SVGR0HI |:R0B4 |:R0B5 |:R0B6 |:R0B7 |
* +---------------------------+------+------+------+------+
* 28 | SVGR1HI |:R1B4 |:R1B5 |:R1B6 |:R1B7 |
* +---------------------------+------+------+------+------+
* 30 | SVGR2HI |:R2B4 |:R2B5 |:R2B6 |:R2B7 |
* +---------------------------+------+------+------+------+
* 38 | SVGR3HI | SVGR3LO |
* +---------------------------+---------------------------+
* 40 | SVGR4HI | SVGR4LO |
* +---------------------------+---------------------------+
* 48 | SVGR5HI | SVGR5LO |
* +---------------------------+---------------------------+
* 50 | SVGR6HI | SVGR6LO |
* +---------------------------+---------------------------+
* 58 | SVGR7HI | SVGR7LO |
* +---------------------------+---------------------------+
* 60 | SVGR8HI | SVGR8LO |
* +---------------------------+---------------------------+
* 68 | SVGR9HI | SVGR9LO |
* +---------------------------+---------------------------+
* 70 | SVGR10HI | SVGR10LO |
* +---------------------------+---------------------------+
* 78 | SVGR11HI | SVGR11LO |
* +---------------------------+---------------------------+
* 80 | SVGR12HI | SVGR12LO |
* +---------------------------+---------------------------+
* 88 | SVGR13HI | SVGR13LO |
* +---------------------------+---------------------------+
* 90 | SVGR14HI | SVGR14LO |
* +---------------------------+---------------------------+
* 98 | SVGR15HI | SVGR15LO |
* +---------------------------+---------------------------+
* A0 |///////////////////////////////////////////////////////|
* |///////////////////////////////////////////////////////|
* +---------------------------+---------------------------+
* B0 | SVGWRK0H | SVGWRK0L |
* +---------------------------+---------------------------+
* B8 | SVGWRK1H | SVGWRK1L |
* +---------------------------+---------------------------+
* C0 | SVGWRK2H | SVGWRK2L |
* +---------------------------+---------------------------+
* C8 | SVGWRK3H | SVGWRK3L |
* +---------------------------+---------------------------+
* D0 | SVGWRK4H | SVGWRK4L |
* +---------------------------+---------------------------+
* D8 | SVGWRK5H | SVGWRK5L |
* +---------------------------+---------------------------+
* E0 | SVGWRK6H | SVGWRK6L |
* +---------------------------+---------------------------+
* E8 | SVGWRK7H | SVGWRK7L |
* +---------------------------+---------------------------+
* F0 | SVGWRK8H | SVGWRK8L |
* +---------------------------+---------------------------+
* F8 | SVGWRK9H | SVGWRK9L |
* +---------------------------+---------------------------+
* 100
*
*** SVGBK - Linkage savearea, longreg/fullreg
SVGBK Cross Reference
Symbol Dspl Value -------------- ---- ----- SVG_END 00FC 00000100 SVGAREA 0020 SVGBPNT 0004 SVGCALC 0011 SVGCPRQ 000C SVGCREG 0013 40 SVGDMCO 0010 01 SVGFORM 0013 SVGFPNT 0000 SVGGET 0011 40 SVGHEAD 0000 SVGLARG 0013 80 SVGNOFR 0010 80 SVGOPEN 0011 80 SVGPGLK 0011 20 SVGPGWT 0011 10 SVGREGF 0013 60 SVGREGS 0020 SVGRETN 0014 SVGRG64 0013 20 SVGRTNF 0010 10 SVGR0 0020 SVGR0B4 0024 SVGR0B5 0025 SVGR0B6 0026 SVGR0B7 0027 SVGR0HI 0020 SVGR0LO 0024 SVGR1 0028 SVGR1B4 002C SVGR1B5 002D SVGR1B6 002E SVGR1B7 002F SVGR1HI 0028 SVGR1LO 002C SVGR10 0070 SVGR10HI 0070 SVGR10LO 0074 SVGR11 0078 SVGR11HI 0078 SVGR11LO 007C SVGR12 0080 SVGR12HI 0080 SVGR12LO 0084 SVGR13 0088 SVGR13HI 0088 SVGR13LO 008C SVGR14 0090 SVGR14HI 0090 SVGR14LO 0094 SVGR15 0098 SVGR15HI 0098 SVGR15LO 009C SVGR2 0030 SVGR2B4 0034 SVGR2B5 0035 SVGR2B6 0036 SVGR2B7 0037 SVGR2HI 0030 SVGR2LO 0034 SVGR3 0038 SVGR3HI 0038 SVGR3LO 003C SVGR4 0040 SVGR4HI 0040 SVGR4LO 0044 SVGR5 0048 SVGR5HI 0048 SVGR5LO 004C SVGR6 0050 SVGR6HI 0050 SVGR6LO 0054 SVGR7 0058 SVGR7HI 0058 SVGR7LO 005C SVGR8 0060 SVGR8HI 0060 SVGR8LO 0064 SVGR9 0068 SVGR9HI 0068 SVGR9LO 006C SVGSCHC 0010 SVGSFQP 0008 SVGSIZE 00FC 00000020 SVGSKCL 0010 20 SVGSKCR 0010 40 SVGSPAR 0011 08 SVGUCFM 0010 08 SVGURGT 0010 04 SVGWRK 00B0 SVGWRK0 00B0 SVGWRK0H 00B0 SVGWRK0L 00B4 SVGWRK1 00B8 SVGWRK1H 00B8 SVGWRK1L 00BC SVGWRK2 00C0 SVGWRK2H 00C0 SVGWRK2L 00C4 SVGWRK3 00C8 SVGWRK3H 00C8 SVGWRK3L 00CC SVGWRK4 00D0 SVGWRK4H 00D0 SVGWRK4L 00D4 SVGWRK5 00D8 SVGWRK5H 00D8 SVGWRK5L 00DC SVGWRK6 00E0 SVGWRK6H 00E0 SVGWRK6L 00E4 SVGWRK7 00E8 SVGWRK7H 00E8 SVGWRK7L 00EC SVGWRK8 00F0 SVGWRK8H 00F0 SVGWRK8L 00F4 SVGWRK9 00F8 SVGWRK9H 00F8 SVGWRK9L 00FC
Copyright IBM Corporation, 1990, 2003