VIRTUAL STORAGE FREELOWE MAINHIGH MAINSTRT DMSFREE requests when
no more low storage available T
Unused portion of User
Program Area •• H .... f't:'V ---------z-- GETMAIN requests Storage __________ The User's Program
(program is loaded via the LOAD command) CMS Nucleus In "saved systems" this area
is a protected segment
(that is, all code must be
reentrant and cannot be
modified) X'tOOOO -1-------------------'----'------1 Transient Area X'EOOO' Low Storage DMSFREE Free Storage Area DMSFREE requests are filled from
this area. The upper part of this
area contains the System Disk MFD
followed by the FREETAB, if there is
enough room.
X'3000' DMSNUC System Control Blocks, flags, constants,
and pointers, __ --------------__ __ __ 'The half-page containing OPSFCT and TSOBLOKS has a storage key; X'E'
Figure 3. eKS Storage CONTROL BLOCKS BRR BEJG 2-16 IBK VK/370 System Logic and Program Determination--Volume 2
DMSFREE FREE STORAGE MANAGEMENT The DMSFREE macro allocates CMS free storage. The format of the DMSFREE macro is:
[label]
label DMSFREE r , DiORDS={ n } I, MIN={ n }I (0) I (1), L J r r "r r " II I,ERR=lladdrl I INUCLEUSII 1 I * II I L L I r r" I II I I tHIGHl1 ILL JJ .JJ L L J.J r r" II I IBALRII L L JJ is any valid assembler language label.
----, DWORDS={ n } l (0) I!IN={ n }' (1)
is the number of doublewords of free storage requested. DiORDS=n specifies the number of doublewords directly and DWORDS=(O) indicates that register 0 contains the number of
doublewords requested.
indicates a variable request for free storage. If the exact
number of doublewords indicated by the DWORDS operand is not
available, then the largest block of storage that is greater
than or equal to the minimum is returned. MIN=n specifies the minimum number of double words of free storage directly while MIN=(1) indicates that the minimum is in register 1. The
actual amount of free storage allocated is returned to the
requestor via general register o. r , TYPE=IQSER I IBUCLEUSI L J indicates the type of CMS storage with which this request for
free storage is filled: USER or NUCLEUS. r ,
ERR=lladdri I * I L J is the return address if any error occurs. "laddr" is any
address that can be referred to in an LA (load address)
instruction. The error return is taken if there is a macro
ceding error or if there is not enough free storage available
to fill the request. If the asterisk (*) is specified for the
return address, the error return is the same as a normal
return. There is no default for this operand. If it is
omitted and an error occurs, the system will abend. CMS Introduction 2-17
Previous Page Next Page