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 5 Jun 2001 at 16:53:35 EDT.
Copyright IBM Corporation, 1990, 2001