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: 0SVGFORM * 00 for SAVBK 01 for SAVBK with SAVEHIRG 11 for SVGBK*null .... .... * 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 SAVESIZE hardcoded definition in HCPEQUAT
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 -------------- ---- ----- * 0013 0SVGFORM * 0013 00 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
Last updated on 6 Jun 2001 at 12:28:13 EDT.
Copyright IBM Corporation, 1990, 2001