Programming Interface Information:
This information is NOT
intended to be
used as Programming Interfaces of VM/ESA. It is to be used for diagnosis only. |
SAVBK
Cross Reference (Contains links to field and bit definitions)
SAVBK Prolog
NAME : HCPSAVBK DESCRIPTION: CALL WITH SAVEAREA BLOCK DSECT : SAVBK FUNCTION : THE SAVBK IS USED IN THE CALL-WITH-DYNAMIC-SAVEAREA CALLING LINKAGE. THE CALLER DOES NOT SUPPLY THE SAVEAREA. INSTEAD, THE LINKAGE ASSISTANCE ROUTINE (HCPSVCCL) ALLOCATES THE SAVBK AND THE CALLED ROUTINE THEN SAVES THE CALLER'S REGISTERS IN THE SAVBK. THE SAVBK DSECT IS ALSO USED AS A MAP OF THE SEVERAL FIXED SAVEAREAS SUCH AS PFXBALSV AND PFXTMPSV. 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 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, 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. 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. THE HCPCALL MACRO HAS SOME DISPLACEMENTS OF SAVBK FIELDS HARD-CODED INTO IT. THIS WAS DONE SO THAT ALL MODULES WON'T HAVE TO INCLUDE THE SAVBK. IF THE SAVBK IS EVER RE-ORGANIZED, HCPCALL MACRO WILL HAVE TO BE CHECKED TO SEE IF THOSE HARD-CODED DISPLACMENTS HAVE TO BE CHANGED.
SAVBK Control Block Content
SAVBK DSECT
Hex Dec Type/Val Lng Label (dup) Comments ---- ---- --------- ---- -------------- -------- 0000 0 Structure SAVBK CALL WITH SAVEAREA BLOCK 0000 0 Signed 4 SAVEFPNT GENERAL FORWARD POINTER 0004 4 Signed 4 SAVEBPNT GENERAL BACKWARD POINTER (BACKWARD POINTER NOT USED FOR SINGLE-THREAD LISTS) 0008 8 Address 4 SAVESFQP SAVBK FRAME QUEUE POINTER 000C 12 Address 4 SAVECPRQ CROSS PROCESSOR RETURN QUEUE ADDR 0010 16 Dbl-Word 8 SAVESCHD (0) SAVBK STACKING CONTROL FIELDS 0010 16 Bitstring 1 SAVESCHC SAVBK DISPATCHING CONTROLS 1... .... SAVENOFR X'80' DO NOT FRET SAVBK ON DISPATCH .1.. .... SAVESKCR X'40' THIS IS A STACKED RETURN ..1. .... SAVESKCL X'20' THIS IS A STACKED CALL ...1 .... SAVERTNF X'10' "RETURN" WITH NO FRET .... 1... SAVEUCFM X'08' STACK AS CONSOLE FUNCTION CPEBK .... .1.. SAVEURGT X'04' STACK AS AN URGENT CPEBK .... ...1 SAVEDMCO X'01' DISPATCH ON THE MASTER CPU ONLY 0011 17 Bitstring 1 SAVECALC SAVBK USAGE STATUS 1... .... SAVEOPEN X'80' SAVBK IN USE FOR A CALL .1.. .... SAVEGET X'40' SAVBK OBTAINED VIA 'GET SAVBK' ..1. .... SAVEPGLK X'20' CALLEE MODULE IS PAGEABLE, AND WAS LOCKED ...1 .... SAVEPGWT X'10' CALL WAITING ON PAGEABLE MODULE TO BE PAGED IN .... 1... SAVESPAR X'08' SAVBK IS NOT ACTIVE 0012 18 Signed 2 * RESERVED 0014 20 Address 4 SAVERETN RETURN LINKAGE ROUTINE ADDRESS 0018 24 Bitstring 104 SAVEAREA (0) Register and working storage 0018 24 Bitstring 64 SAVEREGS (0) CALLERS REGISTERS - R0 TO R15 0018 24 Signed 4 SAVER0 (0) CALLER'S SAVED REGISTER 0 0018 24 Bitstring 1 SAVER0B0 CALLER'S SAVED REGISTER 0 BYTE 0 0019 25 Bitstring 1 SAVER0B1 CALLER'S SAVED REGISTER 0 BYTE 1 001A 26 Bitstring 1 SAVER0B2 CALLER'S SAVED REGISTER 0 BYTE 2 001B 27 Bitstring 1 SAVER0B3 CALLER'S SAVED REGISTER 0 BYTE 3 001C 28 Signed 4 SAVER1 (0) CALLERS SAVED REGISTER 1 001C 28 Bitstring 1 SAVER1B0 CALLER'S SAVED REGISTER 1 BYTE 0 001D 29 Bitstring 1 SAVER1B1 CALLER'S SAVED REGISTER 1 BYTE 1 001E 30 Bitstring 1 SAVER1B2 CALLER'S SAVED REGISTER 1 BYTE 2 001F 31 Bitstring 1 SAVER1B3 CALLER'S SAVED REGISTER 1 BYTE 3 0020 32 Signed 4 SAVER2 (0) CALLERS SAVED REGISTER 2 THE FOLLOWING BYTE DEFINITIONS OF SAVER2 ARE FOR TESTING PARAMETERS PASSED BETWEEN MODULES. 0020 32 Bitstring 1 SAVER2B0 CALLERS SAVED REGISTER 2 BYTE 0 0021 33 Bitstring 1 SAVER2B1 CALLERS SAVED REGISTER 2 BYTE 1 0022 34 Bitstring 1 SAVER2B2 CALLERS SAVED REGISTER 2 BYTE 2 0023 35 Bitstring 1 SAVER2B3 CALLERS SAVED REGISTER 2 BYTE 3 0024 36 Signed 4 SAVER3 CALLERS SAVED REGISTER 3 0028 40 Signed 4 SAVER4 CALLERS SAVED REGISTER 4 002C 44 Signed 4 SAVER5 CALLERS SAVED REGISTER 5 0030 48 Signed 4 SAVER6 CALLERS SAVED REGISTER 6 0034 52 Signed 4 SAVER7 CALLERS SAVED REGISTER 7 0038 56 Signed 4 SAVER8 CALLERS SAVED REGISTER 8 003C 60 Signed 4 SAVER9 CALLERS SAVED REGISTER 9 0040 64 Signed 4 SAVER10 CALLERS SAVED REGISTER 10 0044 68 Signed 4 SAVER11 CALLERS SAVED REGISTER 11; ALSO VMDBK ADDRESS OF USER ON WHICH SAVBK IS SCHEDULED 0048 72 Signed 4 SAVER12 CALLERS SAVED REGISTER 12 004C 76 Signed 4 SAVER13 CALLERS SAVED REGISTER 13; ALSO PREVIOUS SAVBK ADDRESS ON CALL 0050 80 Signed 4 SAVER14 CALLERS SAVED REGISTER 14; ALSO RETURN ADDRESS ON CALL OR STACKED SAVBK RETURN 0054 84 Signed 4 SAVER15 CALLERS SAVED REGISTER 15; ALSO GOTO ADDRESS ON SCHEDULED SAVBK EXECUTION; ALSO REGISTER 15 RETURN CODE ON HCPEXIT OR STACKED SAVBK RETURN 0058 88 Bitstring 40 SAVEWRK (0) WORKAREA FOR CALLEE 0058 88 Signed 4 SAVEWRK0 WORKAREA FOR CALLEE 005C 92 Signed 4 SAVEWRK1 WORKAREA FOR CALLEE 0060 96 Signed 4 SAVEWRK2 WORKAREA FOR CALLEE 0064 100 Signed 4 SAVEWRK3 WORKAREA FOR CALLEE 0068 104 Signed 4 SAVEWRK4 WORKAREA FOR CALLEE 006C 108 Signed 4 SAVEWRK5 WORKAREA FOR CALLEE 0070 112 Signed 4 SAVEWRK6 WORKAREA FOR CALLEE 0074 116 Signed 4 SAVEWRK7 WORKAREA FOR CALLEE 0078 120 Signed 4 SAVEWRK8 WORKAREA FOR CALLEE 007C 124 Signed 4 SAVEWRK9 WORKAREA FOR CALLEE 00000010 SAVESIZE (*-SAVBK+7)/8 SIZE IN DOUBLE WORDS
SAVBK Storage Layout
*** SAVBK - CALL WITH SAVEAREA BLOCK * * +---------------------------+---------------------------+ * 0 | SAVEFPNT | SAVEBPNT | * +---------------------------+---------------------------+ * 8 | SAVESFQP | SAVECPRQ | * +------+------+-------------+---------------------------+ * 10 |:ESCHC|:ECALC|/////////////| 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 * *** SAVBK - CALL WITH SAVEAREA BLOCK
SAVBK Cross Reference
(contains links to field and bit definitions)Symbol Dspl Value -------------- ---- -----SAVEAREA 0018
SAVEBPNT 0004
SAVECALC 0011
SAVECPRQ 000C
SAVEDMCO 0010 01
SAVEFPNT 0000
SAVEGET 0011 40
SAVENOFR 0010 80
SAVEOPEN 0011 80
SAVEPGLK 0011 20
SAVEPGWT 0011 10
SAVEREGS 0018
SAVERETN 0014
SAVERTNF 0010 10
SAVER0 0018
SAVER0B0 0018
SAVER0B1 0019
SAVER0B2 001A
SAVER0B3 001B
SAVER1 001C
SAVER1B0 001C
SAVER1B1 001D
SAVER1B2 001E
SAVER1B3 001F
SAVER10 0040
SAVER11 0044
SAVER12 0048
SAVER13 004C
SAVER14 0050
SAVER15 0054
SAVER2 0020
SAVER2B0 0020
SAVER2B1 0021
SAVER2B2 0022
SAVER2B3 0023
SAVER3 0024
SAVER4 0028
SAVER5 002C
SAVER6 0030
SAVER7 0034
SAVER8 0038
SAVER9 003C
SAVESCHC 0010
SAVESCHD 0010
SAVESFQP 0008
SAVESIZE 007C 00000010
SAVESKCL 0010 20
SAVESKCR 0010 40
SAVESPAR 0011 08
SAVEUCFM 0010 08
SAVEURGT 0010 04
SAVEWRK 0058
SAVEWRK0 0058
SAVEWRK1 005C
SAVEWRK2 0060
SAVEWRK3 0064
SAVEWRK4 0068
SAVEWRK5 006C
SAVEWRK6 0070
SAVEWRK7 0074
SAVEWRK8 0078
SAVEWRK9 007C
Last updated on 3 Aug 1999 at 12:23:52 EDT.
Copyright IBM Corporation, 1990, 1999