Releasing Allocated Storage DWORDS= n t ((0) \ is the number of doublewords of storage to be released. DWORDS=n specifies the number of doublewords directly and DWORDS=(O) indicates
that register0 contains the number of doublewords being released. Do not
specify any register other than registerO. 1 (1) \ is the address of the block of storage being released. "laddr" is any
address that can be referred to in an LA (load address) instruction.
LOC=laddr specifies the address directly whileLOC= (1) indicates the
address is in register 1. Do not specify any register other than register 1.
ERR= 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 coding 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 abends.
TYPCALL=[SVC ]
BALR
indicates how control is passed to DMSFRET.Since DMSFRET is a
nucleus-resident routine, other nucleus-resident routines can branch directÂ
ly to it (TYPCALL=BALR), while routines that are not nucleus-resident
must useSVC 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
advance FREELOWE, or to move pages from the nucleus chain to the correspondÂ
ing user chain.Similar update operations are performed, when necessary, after calls to
DMSFREE, as well.Storage allocated by the GETMAIN macro instruction may be released in either of
the following ways:
1. A specific block of such storage may be released by means of the FREEMAIN
macro instruction.
2. Whenever any user routine orCMS command abends (so that the routine DMSABN is entered), and the ABEND recovery facility of the system is
invoked, all GETMAIN storage pointers are reset.
Functional Information 329
that register
specify any register other than register
address that can be referred to in an LA (load address) instruction.
LOC=laddr specifies the address directly while
address is in register 1. Do not specify any register other than register 1.
ERR=
referred to in an LA (load address) instruction. The error return is taken if
there is a macro coding 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 abends.
TYPCALL=
BALR
indicates how control is passed to DMSFRET.
nucleus-resident routine, other nucleus-resident routines can branch directÂ
ly to it (TYPCALL=BALR), while routines that are not nucleus-resident
must use
chain. At that point, the final update operation is performed, if necessary, to
advance FREELOWE, or to move pages from the nucleus chain to the correspondÂ
ing user chain.
DMSFREE, as well.
the following ways:
1. A specific block of such storage may be released by means of the FREEMAIN
macro instruction.
2. Whenever any user routine or
invoked, all GETMAIN storage pointers are reset.
Functional Information 329