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

Prolog  

Control Block Contents  

SAVBK DSECT

Storage Layout  

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


This information is based on VM/ESA 2.4.0.
Last updated on 3 Aug 1999 at 12:23:52 EDT.
Copyright IBM Corporation, 1990, 1999