|
Hex Dec Type/Val Lng Label (dup) Comments
---- ---- --------- ---- -------------- --------
0000 0 Structure FRWRK Master control block for storage management
Common Storage Management Equates
00001000 FRWBIP 4096 Number of bytes in a page of
storage
0000000C FRWBIPSH 12 Equate for shift mult/divide
by 4096
00000100 FRWPGMEG 256 Number of 4K pages in a
megabyte
00100000 FRWBYMEG FRWBIP*FRWPGMEG Number of bytes
in a Megabyte
00000055 FRWSUBPG FRWBIP/SUBSIZEB Number of SUBBKs
in one page
.... .... FRWMEG16 X'01000000' (2**24)
.... .... FRW2GB X'80000000' (2**31) i.e. 2GB line
00FFF000 FRW2GBHI X'7FFFF000' (2**31) i.e. 2GB
line-1 page
00F00000 FRWMEGAL X'FFF00000' For Meg alignment
computes
00FFF000 FRWPAGAL X'FFFFF000' For Page alignment
computes
00000FFF FRWPNOAL X'00000FFF' For non-page align
computes
1111 .... FRWNUCKY X'F0' Equate for NUCLEUS Key
Storage
111. .... FRWUSRKY X'E0' Equate for USER Key Storage
The following equates are used to determine how many
STOBK's should reside in DMSFRWRK. The STOBK's for the
high end of the virtual machine are "overlapped" into
FRWRK to reduce page references. Changing FRWSTONM will
control the number of STOBK's in FRWRK. Reducing this
equate will reduce the number of STOBK's and increase the
number of SUBBK's in the free list at the high end of this
page. Increasing this equate will increase the number of
STOBK's and reduce the number of SUBBK's.
0000004D FRWSTONM 77 Number of STOBK's in FRWRK
00000738 FRWSTOSP FRWSTONM*STOSIZEB Space in FRWRK
for STOBK's
DMSFRUMX Service Request Codes
00000000 FRWMXTLT 0 Return Total on unalloc queue
< 16Mb
00000001 FRWMXLLT 1 Return Largest on unalloc queue
< 16Mb
00000002 FRWMXTGT 2 Return Total on unalloc queue
> 16Mb
00000003 FRWMXLGT 3 Return Largest on unalloc queue
> 16Mb
00000004 FRWMXPLT 4 Return Total partial F.S. on a
SUBBK < 16Mb
00000005 FRWMXPGT 5 Return Total partial F.S. on a
SUBBK > 16Mb
00000006 FRWMXFLT 6 Return Num of full pages on a
SUBBK < 16Mb
00000007 FRWMXFGT 7 Return Num of full pages on a
SUBBK > 16Mb
00000007 FRWMXCOD 7 Equal to the last vaild code
above.
Storage Management message numbers and codes
0000009F FRWMS159 159 Message number in repository
000000A0 FRWMS160 160 Message number in repository
000000A1 FRWMS161 161 Message number in repository
000000A2 FRWMS162 162 Message number in repository
000000A3 FRWMS163 163 Message number in repository
000000A4 FRWMS164 164 Message number in repository
000000A5 FRWMS165 165 Message number in repository
000000A6 FRWMS166 166 Message number in repository
000000A7 FRWMS167 167 Message number in repository
00000330 FRWMS816 816 Message number in repository
00000331 FRWMS817 817 Message number in repository
00000332 FRWMS818 818 Message number in repository
00000333 FRWMS819 819 Message number in repository
00000334 FRWMS820 820 Message number in repository
00000335 FRWMS821 821 Message number in repository
00000467 FRWM1127 1127 Message number in repository
00000001 FRWCOD01 1 Same meaning as functions RC of
1
00000002 FRWCOD02 2 Same meaning as functions RC of
2
00000003 FRWCOD03 3 Same meaning as functions RC of
3
00000004 FRWCOD04 4 Same meaning as functions RC of
4
00000005 FRWCOD05 5 Same meaning as functions RC of
5
00000006 FRWCOD06 6 Same meaning as functions RC of
6
00000007 FRWCOD07 7 Same meaning as functions RC of
7
00000008 FRWCOD08 8 Same meaning as functions RC of
8
00000009 FRWCOD09 9 Same meaning as functions RC of
9
0000000A FRWCOD10 10 Same meaning as functions RC
of 10
0000000B FRWCOD11 11 Same meaning as functions RC
of 11
0000004E FRWCOD78 78 Reserved for future use
0000004F FRWCOD79 79 Reserved for future use
00000050 FRWCOD80 80 Reserved for future use
00000051 FRWCOD81 81 DMSFRUAB re-entered during
ABEND
00000052 FRWCOD82 82 No SSAVE for non-GLOBAL
Subpools
00000053 FRWCOD83 83 Error on Implicit Subpool
creation
00000054 FRWCOD84 84 STOLARGE was zero or incorrect
00000055 FRWCOD85 85 HDRLEN was zero
00000056 FRWCOD86 86 STOFREEB was zero for partial
page
00000057 FRWCOD87 87 NUCFRWRK is invalid
00000058 FRWCOD88 88 FRWPATS or FRWPATE is invalid
00000059 FRWCOD89 89 Ptr from FRWRK to a SUBBK is
invalid
0000005A FRWCOD90 90 NUCLEUS SUBBK is invalid
0000005B FRWCOD91 91 INTERNAL SUBBK is invalid
0000005C FRWCOD92 92 USER SUBBK is invalid
0000005D FRWCOD93 93 Ptr in named SUBBK is invalid
0000005E FRWCOD94 94 Ptr in GLOBAL non-system SUBBK
invalid
0000005F FRWCOD95 95 Message sub-code of 95
00000063 FRWCOD99 99 Unexpected error within STMG
Space reserved for STOBK's
0000 0 Bitstring 1 FRWSTOAR (1848)
Reserved Bytes for STOBK's
00000738 FRWPATND * End of the Page Allocation
Table
Addresses utilized for location of STMG components
0738 1848 Address 4 FRWAPATS Starting Address of the PAT (Low
end)
073C 1852 Address 4 FRWAPATE Ending Address of the PAT (High
End)
0740 1856 Address 4 FRWISPLB Last block of internal STOBKs
(used by CMS)
Chains of unallocated STOBKs
0744 1860 Address 4 FRWHDG16 Head of the Unallocated STOBKs
> 16Mb
0748 1864 Address 4 FRWTLG16 Tail of the Unallocated STOBKs
> 16Mb
074C 1868 Address 4 FRWHDL16 Head of the Unallocated STOBKs
<= 16Mb
0750 1872 Address 4 FRWTLL16 Tail of the Unallocated STOBKs
<= 16Mb
SUBBK Free List Anchors
0754 1876 Address 4 FRWSUBHD Head of the Free (unused) SUBBKs
0758 1880 Address 4 FRWSUBTL Tail of the Free (unused) SUBBKs
Chains of subpools
075C 1884 Address 4 FRWISPHD Head of the Internal (CMS
STORAGE) SUBBKs
0760 1888 Address 4 FRWSHAHD Head of the SHARED SUBBK SVC
chain thread
NOTES : The following subpool anchors are in a specific
order. They match the order of the SPLSUB array in
the CMSSTOR macro. Updates to either one of these
tables must be consistent. Whenever any of these
subpools are specified on the CMSSTOR macro in the
string form: SUBPOOL='NUCLEUS' a code byte will be
generated in the plist that is an offset into this
table. This will give immediate look-up of the
SUBBK's for the preferred subpools.
If a non-string form of the subpool name is given
or it is not one of these subpools, the code byte
will be zero - meaning don't use this look-up
method but the "normal" path instead. The anchor for
the GLOBAL subbk chain is placed in the zero slot
of this table to "fill" it without having to waste
4-bytes of space. The GLOBAL chain will never
actually be found with this "fast-path" method
0764 1892 Signed 4 FRWSPLTB (0) Table of preferred subpools
0764 1892 Address 4 FRWGLBHD Head of the GLOBAL SUBBK Chain No
Code
0768 1896 Address 4 FRWBLNHD Pointer to the DMSBLOKN SUBBK
Code 1
076C 1900 Address 4 FRWNUCHD Pointer to the NUCLEUS SUBBK Code
2
0770 1904 Address 4 FRWUSRHD Pointer to the USER SUBBK Code 3
0774 1908 Address 4 FRWBLUHD Pointer to the DMSBLOKU SUBBK
Code 4
0778 1912 Address 4 FRWOSSHD Pointer to the DMSMVSOS SUBBK
Code 5
077C 1916 Address 4 FRWDUSHD Pointer to the DMSUSER SUBBK Code
6
0780 1920 Address 4 FRWLDTHD Pointer to the DMSLDSET SUBBK
Code 7
0784 1924 Address 4 FRWBLSHD Pointer to the DMSBLOKS SUBBK
Code 8
0788 1928 Address 4 FRWUSMHD Pointer to the DMSUSRM SUBBK Code
9
078C 1932 Address 4 FRWLDWHD Pointer to the DMSLDRW SUBBK Code
10
00000790 FRWSPLEN *-FRWRK End of the preferred list
The following pointer will only be utilized if the
STORCLR command has been issued with the ENDCMD parameter.
In this case the FRWSTCLR bit in FRWFLG1 will be set to
one, meaning that OS subpools are to be retained until
command end and therefore, cannot be anchored on the SVC
chain. In this case, they will be anchored here instead.
0790 1936 Address 4 FRWGOSHD Head of OS SUBBKs when STORECLR
is active
Storage Management flags
0794 1940 Bitstring 1 FRWFLG1 Storage Management flag 1
1... .... FRWSTCLR X'80' OS subpools retained until
CMDEND
.1.. .... FRWKEYPR X'40' SET KEYPROTECT is ON
..1. .... FRWCACHE X'20' DMSFRO has called the SFS
Cache routine
...1 .... FRWNCAPR X'10' CAPR not issued, NOPAGREL
is on
.... 1... FRWEXPAG X'08' SUBBK free list has extened
pages in use
.... .1.. FRWSTABN X'04' DMSFRUAB has been entered
.... ..1. FRWNOREL X'02' DMSFRARP should not issue
DIAG X'10'
.... ...1 FRWLOREL X'01' DMSFRARP has updated
FRWLOADR for DIAG
0795 1941 Bitstring 1 FRWFLG2 DMSFRE internal format of CODE203
1... .... FRWFCO X'80' DMSFREE Conditional request
.1.. .... FRWFBR X'40' DMSFREB Entered via a BALR
.... 1... FRWFVR X'08' DMSFREE variable request
.... .1.. FRWFNU X'04' DMSFREE TYPE=NUCLEUS
request
.... ..1. FRWFOB X'02' DMSFREE (not FRET) ==>
CMSSTOR OBTAIN
.... ...1 FRWFMS X'01' DMSFREE Display Error
Messages (if any)
0796 1942 Bitstring 1 FRWFLG3 Diagnostic (Debug) Flag
1... .... FRWFRSCL X'80' 0=DMSFRR calling DMSFRARP,
1=DMSFRS
.1.. .... FRWGMPCT X'40' SET GETMAIN PERCENT is on
..1. .... FRWNOABN X'20' Override (Ignore) ABENDS
...1 .... FRWMSGOV X'10' Override MSG=NO requests
.... 1... FRWSTOPT X'08' STOP after displaying Trace
Message
.... .1.. FRWSKIPI X'04' Skip DMS1258E error Message
.... ..1. FRWFRRTR X'02' Trace DMSFRR
.... ...1 FRWFROTR X'01' Trace DMSFRO
0797 1943 Bitstring 1 FRWFLG4 Storage Management flag 4
1... .... FRWFREEB X'80' Call was made to DMSFREB
(DMSFREE)
.1.. .... FRWROSVC X'40' DMSFRO was entered via SVC
..1. .... FRWRRSVC X'20' DMSFRR was entered via SVC
...1 .... FRWRSSVC X'10' DMSFRS was entered via SVC
.... 1... FRWRSDFP X'08' Fast path requested for
DMSFRSDB
.... .1.. FRW2GREQ X'04' Request for storage above
2GB
.... ..1. FRWFROCO X'02' DMSFRO was entered as
Conditional
.... ...1 FRWFRRCO X'01' DMSFRR was entered as
Conditional
0798 1944 Bitstring 1 FRWDSPVR Used for DISP=variable on DMSMSG,
non-zero also means branch to
disabled wait routine
.... .... FRWERDSP X'00' Display a message as a
Error Message
.... ..11 FRWCPDSP X'03' Display a message as a CP
Message
.... .1.1 FRWIODSP X'05' Display a message with SIO
.... .111 FRWISDSP X'07' Display a message with SIO
(more safe)
0799 1945 Bitstring 1 FRWBALTM Translation mode, AR or Primary,
on BALR calls on an XC-mode
virtual mach
079A 1946 Bitstring 1 FRWARCH1 Storage Management Architecture
Flag
.1.. .... FRWPPR X'40' PPR IS AVAILABLE
..1. .... FRWRANGE X'20' ADDPARTP is operating on
last of range
079B 1947 Bitstring 1 * Reserved
DMSFRR PAGEREL consolidation fields
079C 1948 Signed 4 FRWRELST Start addr for PAGEREL
07A0 1952 Signed 4 FRWRELEN Ending addr for PAGEREL
Storage Management Plist Save Areas
07A4 1956 Bitstring 40 FRWPLST1 Copy of Plist for DMSFRR & DMSFRE
(used only for release)
07CC 1996 Bitstring 28 FRWPLST2 Copy of Plist for DMSFRS
07E8 2024 Bitstring 40 FRWPLST3 Plist Work Area for DMSFRU,
DMSFRO, DMSFRA, & DMSFRE (used
only for obtain and FRU)
00000810 FRWENDPT *-FRWRK End of Anchor/Data
Section, used to zero the above
fields with an XC
External Routine Save Area
Usage:
FRWEXTSV is reserved to be used by external routines
that are called by the storage manager.
Entry Points:
None
Subroutines:
1) Save area for DMSJCS when called by DMSFRG
0810 2064 Signed 4 FRWEXTSV (18) Fixed External Save Area
STMG Entry Point Addresses (filled in by DMSFRIIN)
NOTES : These addresses are in a specific order so that
they may be initialized via a single MVC by DMSFRI.
Additions or deletions from FRIFRUEP in DMSFRI must
also be made here so that the table in DMSFRI is
identical to this table.
0858 2136 Signed 4 FRWFRUEP (0) DMSFRU EP Table
0858 2136 Address 4 FRWFRUAB Address of Entry Point DMSFRUAB
085C 2140 Address 4 FRWFRUCL Address of Entry Point DMSFRUCL
0860 2144 Address 4 FRWFRUFS Address of Entry Point DMSFRUFS
0864 2148 Address 4 FRWFRUMX Address of Entry Point DMSFRUMX
0868 2152 Address 4 FRWFRUOS Address of Entry Point DMSFRUOS
086C 2156 Address 4 FRWFRISK Address of Entry Point DMSFRISK
0870 2160 Address 4 FRWFRUST Address of Entry Point DMSFRUST
0874 2164 Address 4 FRWFRUGP Address of Entry Point DMSFRUGP
0878 2168 Address 4 FRWFRMCK Address of Entry Point DMSFRMCK
087C 2172 Address 4 FRWFRMDI Address of Entry Point DMSFRMDI
0880 2176 Address 4 FRWFRMTR Address of Trace Exit Entry Point
0884 2180 Signed 4 FRWGPCNT SET GETMAIN percentage value when
ON
0888 2184 Signed 4 FRWFRG14 Used to save DMSFRO return addr
in DMSFRG
088C 2188 Signed 4 FRWFROBR Used to save DMSFRO base register
0890 2192 Bitstring 1 FRWPARTF Flags to indicate availability of
partial pages above and below
unallocated block
1... .... FRWPPTOP X'80' Part. page above block can
be used
.1.. .... FRWPPBOT X'40' Part. page below block can
be used
.... 1... FRWLT4K X'08' Piece of storage is < 4K
.... .1.. FRWPPFST X'04' Allocate first piece on a
partial
0891 2193 Bitstring 1 FRWPARTS Place to save FRWPARTF data for
MIN request
0892 2194 Bitstring 1 * (2) IBM Reserved
0894 2196 Signed 4 FRWLINES STOBK for page just below 16Mb
line
0898 2200 Signed 4 FRWFRUSV Place to save R14 for FRUMX and
FRUMS
089C 2204 Signed 4 FRWLINEG Addr of STOBK at 2GB line
08A0 2208 Signed 4 FRWSBKPT Pointer to SUBBK on release with
trace
08A4 2212 Address 4 FRWSTWRK Pointer to DMSFRWSW when DMSFRD
is active
Storage Management BALR Save Areas
These Save Areas are utilized to perform nested BALR
calls within the Storage Management Subsystem. The
FRWBLSTK pointer, points to the next free BALR Save
area available. The FRWBLLST field is used to determine
if we are trying to get a Save Area beyond the maximum
available. These Save Areas are managed by the DMSFRENT
and DMSFREXT macros.
IN THE EVENT THAT ALL SAVE AREAS BECOME FULL:
When the BALR save stack becomes exhasuted, DMSFRMDI will
be invoked. For the purpose of debugging, the registers
of the caller to the routine that blew up will have been
save in NUCON at FREESAVE. You can inspect:
R11 = Address of FRWRK
R13 = Address that was beyond the max BALR Save Area
R14 = Address of the Caller
R15 = Address of the Callee
In addition, the last two characters of the Entry Point
Name (or procedure) being invoked
can be found at: FRWEPNAM in FRWRK
and the module name at: FRWMONAM in FRWRK
The audit trail of routines that were invoked to
the point where all BALR Save areas became full
can be accomplished by inspecting the R14 and R15
pairs in each of the Save Areas starting at FRWBLSV1.
If it is determined that the solution to the problem is to
add additional BALR Save Areas, please insure that they
are added between the last one currently defined and the
field: FRWENDBL as this is the field used to determine
how many are available.
Keep in mind that each BALR Save area added will take
away space currently used for the SUBBK free list. This
is not a critical problem as the worst that can happen is
to cause the free list to acquire an extended page and
perhaps fragment free storage a bit.
If for some reason, you attempt to add BALR Save areas
that extend this control block beyond 4096 bytes an
assembly error will be generated as a protection
mechanism.
08A8 2216 Address 4 FRWFRRRT Address of invoker of DMSFRRSV or
DMSFRRBx
08AC 2220 Address 4 FRWFRORT Address of invoker of DMSFROSV or
DMSFROBx
08B0 2224 Character 8 FRWMONAM Module name active if Save Stack
exhausted
08B8 2232 Character 2 FRWEPNAM EP name active if Save Stack
exhausted
08BA 2234 Bitstring 1 * (2) RESERVED FOR FUTURE IBM USE
08BC 2236 Signed 4 * (0) Insure proper alignment
08BC 2236 Address 4 FRWBLSTK Pointer to the next free BALR
Save area
08C0 2240 Address 4 FRWBLLST Address of the last existing BALR
Save Area
BALR Save Area for Nesting Level 1
08C4 2244 Signed 4 FRWBLSV1 (16) BALR 1 Save Area for Callers regs
00000040 FRWBLSIZ *-FRWBLSV1 Size of one FRWRK BALR
Save area
BALR Save Area for Nesting Level 2
0904 2308 Signed 4 FRWBLSV2 (16) BALR 2 Save Area for Callers regs
BALR Save Area for Nesting Level 3
0944 2372 Signed 4 FRWBLSV3 (16) BALR 3 Save Area for Callers regs
BALR Save Area for Nesting Level 4
0984 2436 Signed 4 FRWBLSV4 (16) BALR 4 Save Area for Callers regs
BALR Save Area for Nesting Level 5
09C4 2500 Signed 4 FRWBLSV5 (16) BALR 5 Save Area for Callers regs
00000A04 FRWENDBL *-FRWRK End of the DYNAMIC BALR
Save Area
Fixed BALR Save Area 1
Usage:
Notes : Because this save area is used by DMSFRE, it must
not be used by any routine callable from/in
DMSFRO or DMSFRR except in the case of processing
the ADDR= or SUBPOOL= parameters on OBTAIN as
they are not supported via the DMSFRE interface.
Entry Points:
1) DMSFRENT linkage of DMSFREB
2) 4 byte scratch used by DMSFROEB, called by DMSFREB
3) 4 byte scratch used by DMSFRREB, called by DMSFREB
4) DMSFRENT linkage of DMSFRISO
Subroutines:
1) DMSFRENT linkage of PARTADDR in DMSFRA
2) DMSFRENT linkage of FULLADDR in DMSFRA
3) DMSFRENT linkage of RESVSTOR in DMSFRI
4) DMSFRENT linkage of FREESTOR in DMSFRI
5) DMSFRENT linkage of FULLSTOR in DMSFRI
0A04 2564 Signed 4 FRWFXSV1 (16) Fixed BALR Save Area 1
0A44 2628 Signed 4 * (4) 4 Fullword scratch pad
Fixed BALR Save Area 2
Usage:
Entry Points:
1) DMSFRENT linkage of DMSFROFP
2) DMSFRENT linkage of DMSFRUFS
3) DMSFRENT linkage of DMSFRUGP
Subroutines:
1) Save area for callers to ADDPARTP in DMSFRO
2) DMSFRENT linkage of CHOPBLOK in DMSFRA
3) DMSFRENT linkage of SPLITBLK in DMSFRR
0A54 2644 Signed 4 FRWFXSV2 (16) Fixed BALR Save Area 1
0A94 2708 Signed 4 * (4) 4 Fullword scratch pad
Fixed BALR Save Area 3
Usage:
Entry Points:
1) DMSFRENT linkage of DMSFRRBC
2) DMSFRENT linkage of DMSFRRBU
3) DMSFRENT linkage of DMSFRSCB
4) DMSFRENT linkage of DMSFRSDB
5) DMSFRENT linkage of DMSFRSRB
Subroutines:
None
0AA4 2724 Signed 4 FRWFXSV3 (16) Fixed BALR Save Area 1
0AE4 2788 Signed 4 * (4) 4 Fullword scratch pad
Fixed BALR Save Area 4
Usage:
Entry Points:
None
Subroutines:
1) DMSFRENT linkage of PARTREL in DMSFRR
0AF4 2804 Signed 4 FRWFXSV4 (16) Fixed BALR Save Area 1
0B34 2868 Signed 4 * (4) 4 Fullword scratch pad
0B44 2884 Address 4 FRWHDG2G Head of the Unallocated STOBKs
> 2GB
0B48 2888 Address 4 FRWTLG2G Tail of the Unallocated STOBKs
> 2GB
0B4C 2892 Signed 4 FRWGSAVE (10) Used to save 10 hi halves(FRR)
0B78 2936 Dbl-Word 8 * (0) Force double word align
0B78 2936 Dbl-Word 8 FRWSTPLA Used to save 64 bit stor addr
00000B80 FRWKSIZB *-FRWRK Size of the Work Area in
bytes
00000170 FRWKSIZD (FRWKSIZB+7)/8 Size of the Work
Area in D-Words
00000B80 FRWLSTOF * Get LOC for adressability check
00FFFB7F FRWERRCK X'7FFFFFFF'-(4096-(FRWLSTOF-FRWRK
))
The remainder of the page that contains the work area will
be carved into SUBBKs and managed as a free list utilized
by the subpool management routines
0B80 2944 Bitstring 1 FRWHDISP (0) Top of the SUBBK's region
00000B80 FRWSUBFL *-FRWRK LOC for SUBBK calculation
00000480 FRWSUBYT FRWBIP-FRWSUBFL Bytes in a page -
this location
00000018 FRWSUBNM FRWSUBYT/SUBSIZEB Number of
SUBBKs available
| |