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. COMPATIBILITY AND MIGRATION CONCERNS : none RELOCATION CONSIDERATIONS : 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: 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
*** 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, 2011