home *** CD-ROM | disk | FTP | other *** search
/ Aminet 18 / aminetcdnumber181997.iso / Aminet / misc / emu / AROSdev.lha / AROS / rom / exec / freeentry.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-01-09  |  1.7 KB  |  83 lines

  1. /*
  2.     (C) 1995-96 AROS - The Amiga Replacement OS
  3.     $Id: freeentry.c,v 1.7 1997/01/01 03:46:10 ldp Exp $
  4.     $Log: freeentry.c,v $
  5.     Revision 1.7  1997/01/01 03:46:10  ldp
  6.     Committed Amiga native (support) code
  7.  
  8.     Changed clib to proto
  9.  
  10.     Revision 1.6  1996/12/10 13:51:45  aros
  11.     Moved all #include's in the first column so makedepend can see it.
  12.  
  13.     Revision 1.5  1996/10/24 15:50:49  aros
  14.     Use the official AROS macros over the __AROS versions.
  15.  
  16.     Revision 1.4  1996/08/13 13:56:02  digulla
  17.     Replaced AROS_LA by AROS_LHA
  18.     Replaced some AROS_LH*I by AROS_LH*
  19.     Sorted and added includes
  20.  
  21.     Revision 1.3  1996/08/01 17:41:11  digulla
  22.     Added standard header for all files
  23.  
  24.     Desc:
  25.     Lang:
  26. */
  27. #include "exec_intern.h"
  28. #include <aros/libcall.h>
  29. #include <exec/memory.h>
  30. #include <proto/exec.h>
  31.  
  32. /*****************************************************************************
  33.  
  34.     NAME */
  35.  
  36.     AROS_LH1(void, FreeEntry,
  37.  
  38. /*  SYNOPSIS */
  39.     AROS_LHA(struct MemList *, entry,A0),
  40.  
  41. /*  LOCATION */
  42.     struct ExecBase *, SysBase, 38, Exec)
  43.  
  44.  
  45. /*  FUNCTION
  46.     Free some memory allocated with AllocEntry().
  47.  
  48.     INPUTS
  49.     entry - The MemList you got from AllocEntry().
  50.  
  51.     RESULT
  52.  
  53.     NOTES
  54.  
  55.     EXAMPLE
  56.  
  57.     BUGS
  58.  
  59.     SEE ALSO
  60.     AllocEntry()
  61.  
  62.     INTERNALS
  63.  
  64.     HISTORY
  65.     18-10-95    created by m. fleischer
  66.  
  67. ******************************************************************************/
  68. {
  69.     AROS_LIBFUNC_INIT
  70.     ULONG i;
  71.  
  72.     /* First free all blocks in the MemList */
  73.     for(i=0;i<entry->ml_NumEntries;i++)
  74.     FreeMem(entry->ml_ME[i].me_Addr,entry->ml_ME[i].me_Length);
  75.  
  76.     /* Then free the MemList itself */
  77.     FreeMem(entry,sizeof(struct MemList)-sizeof(struct MemEntry)+
  78.           sizeof(struct MemEntry)*entry->ml_NumEntries);
  79.     AROS_LIBFUNC_EXIT
  80. } /* FreeEntry */
  81.  
  82.  
  83.