/*
        Frank Lyonnet 1993
        Module FYEO memory 
*/

#include <stdlib.h>
#include "RISC_OSLib:flex.h"
#include "RISC_OSLib:wimp.h"
#include "Erreur.h"
#include "C:kernel.h"
#include "MyThread.h"

#define MAX_ALLOC 64

static void * FlexPtr[MAX_ALLOC];
static int PtrCtr;

void * FYEO_alloc(int Size)
{      
   if (flex_alloc(&FlexPtr[PtrCtr],Size))
      return (FlexPtr[PtrCtr++]);
   else
      return(NULL);
}

void FYEO_free(void * Objet)
{
}

int FYEO_mem_available(void)
{
int Current, Next, Free;

   Current = -1;
   Next = -1;
   Free = -1;
   wimp_slotsize(&Current, &Next, &Free);
   return (Free);
}

void FYEO_mem_init(void)
{
   PtrCtr = 0;
}

void FYEO_mem_term(void)
{         
   for (; PtrCtr > 0; PtrCtr--)
   {
      flex_free(&FlexPtr[PtrCtr - 1]);
   };
}
