/*

File: memory.c
Author: Neil Cafferkey
Copyright (C) 1999-2001 Neil Cafferkey

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston,
MA 02111-1307, USA.

*/

#if 0

#include "memory_protos.h"
#include <clib/exec_protos.h>


/* Function: Malloc
 * ================
 * Initialises a memory pool when first called. Returns a block of memory
 * from that pool with the requested size.
 */

void *Malloc(ULONG size)
{
   void *memory;

   if(pool==NULL)
   {
      if((pool=CreatePool(0,0x8000,0x400))==NULL)
      {
         printf("Not enough memory. Exiting...\n");
         exit(EXIT_FAILURE);
      }
   }

   memory=AllocPooled(pool,size);
   if(memory==NULL)
   {
      printf("Not enough memory. Exiting...\n");
      DeletePool(pool);
      exit(EXIT_FAILURE);
   }

   return memory;
}


/* Function: Free
 * ==============
 * Frees a block of memory in the memory pool.
 */

VOID Free(APTR memory,ULONG size)
{
   FreePooled(pool,memory,size);

   return;
}


/* Function: NoMoreMem
 * ===================
 * Deallocates the entire memory pool and sets the pool pointer to NULL.
 */

VOID NoMoreMem(VOID)
{
   DeletePool(pool);
   pool=NULL;

   return;
}

#endif

