/**************************************
 *                                    *
 * Memory management  : MemoryEntries *
 * ================================== *
 *                                    *
 * Author:  Date:      Comments:      *
 * ------  ----------  ----------     *
 * Wgb     10/16/1987  only for test  *
 *                     purposes       *
 *                                    *
 **************************************/


#include <exec/types.h>
#include <exec/memory.h>

#define MemoryType MEMF_FAST | MEMF_CLEAR


struct MemList *MemoryPtr, *AllocEntry();
APTR UndoData, FileData, DiskData, SuffData;

struct Memoryneeds
   {
   struct MemList Head;
   struct MemEntry UndoBuffer;
   struct MemEntry FileBuffer;
   struct MemEntry DiskBuffer;
   struct MemEntry SuffBuffer;
   } Memory;


main()
   {
   Memory.Head.ml_NumEntries   = 5;
   
   Memory.Head.ml_me[0].me_Length = 0;
   Memory.UndoBuffer.me_Reqs   = MemoryType;
   Memory.UndoBuffer.me_Length = 512L;
   Memory.FileBuffer.me_Reqs   = MemoryType;
   Memory.FileBuffer.me_Length = 30L;
   Memory.DiskBuffer.me_Reqs   = MemoryType;
   Memory.DiskBuffer.me_Length = 512L;
   Memory.SuffBuffer.me_Reqs   = MemoryType;
   Memory.SuffBuffer.me_Length = 10L;
   
   MemoryPtr = (struct MemList *)AllocEntry(&Memory);
   
   if ((ULONG)MemoryPtr & (1<<31))
      {
      printf("The list cannot be posted!\n");
      exit(FALSE);
      }
   else
      {
      UndoData = MemoryPtr->ml_me[1].me_Addr;
      FileData = MemoryPtr->ml_me[2].me_Addr;
      DiskData = MemoryPtr->ml_me[3].me_Addr;
      SuffData = MemoryPtr->ml_me[4].me_Addr;
      }
   
   printf("Memory allocated!\n");
   
   FreeEntry(MemoryPtr);
   printf("Memory is free again!\n");
   exit(TRUE);
   }

