The  DMSFRET   macro  releases  free  storage  previously  allocated  with  the  DMSFREE   macro.   The  format   of  the  DMSFRET   macro   is:  
[label]DMSFRET   I   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 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.
 
             
            




















































































































































































































































































