#ifndef EXEC_MEMORY_H
#define EXEC_MEMORY_H

/*******************************************************************
 pOS / Amiga adapt
*******************************************************************/

#ifndef EXEC_TYPES_H
#include <exec/types.h>
#endif

#ifndef __INC_POS_PEXEC_MEMORY_H
#include "p:pExec/Memory.h"
#endif
#ifndef EXEC_NODES_H
#include "exec/nodes.h"
#endif



struct MemChunk
{
  struct MemChunk *mc_Next;
  ULONG            mc_Bytes;
};


struct MemHeader
{
  struct Node      mh_Node;
  UWORD            mh_Attributes;
  struct MemChunk *mh_First;
  APTR             mh_Lower;
  APTR             mh_Upper;
  ULONG            mh_Free;

  UBYTE   mh_Reserved[16];
};


struct MemEntry
{
  union {
    ULONG meu_Reqs;
    APTR  meu_Addr;
  } me_Un;
  ULONG   me_Length;
};


struct MemList
{
  struct Node     ml_Node;
  UWORD           ml_NumEntries;
  struct MemEntry ml_ME[1];
};

#define ml_me   ml_ME


#endif  /* EXEC_MEMORY_H */
