SAVBK | Back to Index page |
Prolog Control Block Contents SAVBK DSECT Storage Layout Cross Reference (Contains links to field and bit definitions) |
|
SAVBK Prolog | Top of page |
NAME : HCPSAVBK DESCRIPTION: CALL WITH SAVEAREA BLOCK DSECT : SAVBK FUNCTION : The SAVBK is used in the call-with-dynamic-savearea linkage to a "short-register", or "shortreg", routine (one which treats registers as 32 bits). The caller does not supply the savearea. Instead, the linkage assistance routines (HCPSVC/SVD) allocate the SAVBK and the called routine then saves the caller's registers in the SAVBK. "Longreg" routines, which use 64-bit registers, use an SVGBK instead of a SAVBK. See the prolog of HCPSVGBK for more details. Note that the SAVBK is 512 bytes long. The first 128 bytes are laid out with the register slots containing the low-order words of the registers. The remainder includes another 16 words which *may* be used for the high-order words of the registers. This is done only on a call from a longreg routine to a shortreg one, so as to preserve the caller's high halves across deeper calls to longreg routines or across losses of control. The SAVEFORM byte in the header contains flags indicating the size of the block and whether the high halves are filled in. The SAVBK DSECT may also be used as a map of the fixed saveareas, such as PFXBALSV and PFXTMPSV, when they are used by shortreg routines. Notes : The SAVBK and the CPEBK have the same format, and occasionally a SAVBK is converted into a CPEBK or vice versa. The formats are identical intentionally so that these conversions can be made. 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 BACK TO THE CALLER'S SAVEAREA. (THIS ASSUMES THAT THE CALLER HAD A SAVEAREA OF HIS OWN AND THAT HE HAD ITS ADDRESS IN R13 AT THE TIME OF THE CALL. SEE ALSO SAVECSAV FOR ANOTHER BACKWARD POINTER.) SAVEFPNT FORWARD CHAINING POINTER. THE CHAIN OF AVAILABLE /SVGFPNT SAVBK'S USES THIS POINTER. WHEN THE SAVBK IS IN USE AS A SAVEAREA, SAVEFPNT IS NORMALLY NOT USED FOR ANYTHING (SAVER13 POINTS BACK TO PRECEDING SAVBK IF THE CALLER HAD ONE). SAVEBPNT THIS POINTER IS AVAILABLE FOR BACKWARD CHAINING, /SVGBPNT BUT IS NOT NORMALLY USED. VMDVOSAV SIMULATION SAVBK STACK ANCHOR. CREATED BY : HCPSVC WHEN NO FREE SAVBKS ARE AVAILABLE HCPSAM DURING PROCESSOR ONLINE STORAGE ALLOCATION DELETED BY : HCPSVC DURING SAVBK RECLAIM PROCESSING HCPSAM DURING PROCESSOR OFFLINE STORAGE DEALLOCATIO SERIALIZED : SERIALIZATION IS PROVIDED BY THE DISPATCH LOCK EXCEPT FOR SAVECPRQ WHICH IS SERIALIZED BY TRQBK AND BY THE MP DEFER FUNCTION. RELOCATION CONSIDERATIONS : None COMMENTS : SAVEFPNT AND SAVEBPNT ARE USED TO MAINTAIN VARIOUS SAVBK QUEUES AND STACKS. ROUTINES MAY USE THESE FIELDS IF THE SAVBK IS NOT CURRENTLY ON A QUEUE OR STACK. AN EXAMPLE IS THE SAVBK USED ON A DYNAMIC CALL. IF A ROUTINE CALLS ANOTHER ROUTINE TO STACK A SAVBK ONTO A QUEUE, THE CALLING ROUTINE SHOULD BE AWARE THAT THE SAVEFPNT AND SAVEBPNT FIELDS MAY HAVE BEEN CHANGED AS A RESULT OF THE CALL. THE CALLING ROUTINES SHOULD REFRAIN FROM USING THESE FIELDS. |
SAVBK Control Block Content | Top of page |
|
SAVBK Storage Layout | Top of page |
*** SAVBK - CALL WITH SAVEAREA BLOCK * * +---------------------------+---------------------------+ * 0 | SAVEFPNT | SAVEBPNT | * +---------------------------+---------------------------+ * 8 | SAVESFQP | SAVECPRQ | * +------+------+------+------+---------------------------+ * 10 |:ESCHC|:ECALC|:EIAC |:EFORM| SAVERETN | * +------+------+------+------+------+------+------+------+ * 18 |:ER0B0|:ER0B1|:ER0B2|:ER0B3|:ER1B0|:ER1B1|:ER1B2|:ER1B3| * +------+------+------+------+------+------+------+------+ * 20 |:ER2B0|:ER2B1|:ER2B2|:ER2B3| SAVER3 | * +------+------+------+------+---------------------------+ * 28 | SAVER4 | SAVER5 | * +---------------------------+---------------------------+ * 30 | SAVER6 | SAVER7 | * +---------------------------+---------------------------+ * 38 | SAVER8 | SAVER9 | * +---------------------------+---------------------------+ * 40 | SAVER10 | SAVER11 | * +---------------------------+---------------------------+ * 48 | SAVER12 | SAVER13 | * +---------------------------+---------------------------+ * 50 | SAVER14 | SAVER15 | * +---------------------------+---------------------------+ * 58 | SAVEWRK0 | SAVEWRK1 | * +---------------------------+---------------------------+ * 60 | SAVEWRK2 | SAVEWRK3 | * +---------------------------+---------------------------+ * 68 | SAVEWRK4 | SAVEWRK5 | * +---------------------------+---------------------------+ * 70 | SAVEWRK6 | SAVEWRK7 | * +---------------------------+---------------------------+ * 78 | SAVEWRK8 | SAVEWRK9 | * +---------------------------+---------------------------+ * 80 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 90 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * A0 | SAVEOPNR |///////////////////////////| * +---------------------------+------+------+------+------+ * A8 | SAVEAARP |:EIACA|:EAMDE|:EIACR|:EIACE| * +---------------------------+------+------+------+------+ * B0 |///////////////////////////////////////////////////////| * |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * C0 | SAVEH0 | SAVEH1 | * +---------------------------+---------------------------+ * C8 | SAVEH2 | SAVEH3 | * +---------------------------+---------------------------+ * D0 | SAVEH4 | SAVEH5 | * +---------------------------+---------------------------+ * D8 | SAVEH6 | SAVEH7 | * +---------------------------+---------------------------+ * E0 | SAVEH8 | SAVEH9 | * +---------------------------+---------------------------+ * E8 | SAVEH10 | SAVEH11 | * +---------------------------+---------------------------+ * F0 | SAVEH12 | SAVEH13 | * +---------------------------+---------------------------+ * F8 | SAVEH14 | SAVEH15 | * +---------------------------+---------------------------+ * 100 | SAVEAR0 | SAVEAR1 | * +---------------------------+---------------------------+ * 108 | SAVEAR2 | SAVEAR3 | * +---------------------------+---------------------------+ * 110 | SAVEAR4 | SAVEAR5 | * +---------------------------+---------------------------+ * 118 | SAVEAR6 | SAVEAR7 | * +---------------------------+---------------------------+ * 120 | SAVEAR8 | SAVEAR9 | * +---------------------------+---------------------------+ * 128 | SAVEAR10 | SAVEAR11 | * +---------------------------+---------------------------+ * 130 | SAVEAR12 | SAVEAR13 | * +---------------------------+---------------------------+ * 138 | SAVEAR14 | SAVEAR15 | * +---------------------------+---------------------------+ * 140 | | * = SAVE2ARS = * | | * +------+--------------------+---------------------------+ * 180 |//////|////////////////////|///////////////////////////| * +------+--------------------+---------------------------+ * 188 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 190 |///////////////////////////////////////////////////////| * +---------------------------+---------------------------+ * 198 |///////////////////////////|///////////////////////////| * +---------------------------+---------------------------+ * 1A0 |///////////////////////////|///////////////////////////| * +------+--------------------+---------------------------+ * 1A8 |//////|////////////////////|///////////////////////////| * +------+--------------------+///////////////////////////| * 1B0 |///////////////////////////////////////////////////////| * =///////////////////////////////////////////////////////= * |///////////////////////////////////////////////////////| * +-------------------------------------------------------+ * 200 * *** SAVBK - CALL WITH SAVEAREA BLOCK |
SAVBK Cross Reference | Top of page |
Copyright IBM Corporation, 1990, 2022