The DMSFRET macro releases free storage previously allocated with the DMSFREE macro. The format of the DMSFRET macro is:
[label]DMSFRET I label DiORDS={ n } (0) LOC={laddr} (1) r ,
ERR=lladdrl1*' L r , I I r r " r r " I I,ERR=lladdrl I II I I I * II I IBALRII I L L JJ L L JJ J is any valid Assembler language label.
is the number of doublewords of storage to be released.DWORDS=n specifies the number of doublewords directly and DWORDS=(O) indicates that register 0 contains the number of doublewords being released.
is the address
"laddr" is any
(load address)
address directly
in register 1.
of the block of storage being released.
address that can be referred to in anLA instruction. LOC=laddr specifies the
whileLOC=(1) indicates the address is
is the return address if an error occurs. "laddr" is any
address that can be referred toty an LA (load address)
instruction. The error return is taken if there is amacro coding error or if there is a problem returning the
storage. If an asterisk (*) is specified, the error
return address is the same as the normal return address.
There is no default for this operand. If it isoaitted and an error occurs, the system will abend. I indicates how control is passed to Since DMSFRET IBALRI is a nucleus-resident routine, otner nucleus-resident
L routines can branch directly to it while
routines that are not nucleus-residentmust use SVC linkage (TYPCALL=SVC). When DMSFRET is called, the block being released is placed on the
appropriate chain. At that point, the final update operation is
performed, if necessary, to advanceFREELOWE, or to move pages from the
nucleus chain to the corresponding user chain.Similar update operations will be performed, when necessary, after
calls toDMSFREE, as well. RELEASING ALLOCATED STORAGE Storage allocated by the GETMAIN macro instruction may be released in
any of the following ways:
1.A specific block of such storage may be released by means of the FREEMAIN macro instruction. CMS Introduction 2-21
[label]
ERR=lladdrl
is the number of doublewords of storage to be released.
is the address
"laddr" is any
(load address)
address directly
in register 1.
of the block of storage being released.
address that can be referred to in an
while
is the return address if an error occurs. "laddr" is any
address that can be referred to
instruction. The error return is taken if there is a
storage. If an asterisk (*) is specified, the error
return address is the same as the normal return address.
There is no default for this operand. If it is
L
routines that are not nucleus-resident
appropriate chain. At that point, the final update operation is
performed, if necessary, to advance
nucleus chain to the corresponding user chain.
calls to
any of the following ways:
1.