| 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