#ifndef EXEC_MEMORY_H
#define EXEC_MEMORY_H
/*
** $Filename: exec/memory.h $
** $Release: 1.3 $
**
** definitions for use with the memory allocator
**
** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
** All Rights Reserved
*/

#ifndef EXEC_NODES_H
#include "exec/nodes.h"
#endif !EXEC_NODES_H




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;  
};




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

#define me_un me_Un 
#define me_Reqs me_Un.meu_Reqs
#define me_Addr me_Un.meu_Addr




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

#define ml_me ml_ME 




#define MEMF_PUBLIC (1<<0)
#define MEMF_CHIP (1<<1)
#define MEMF_FAST (1<<2)

#define MEMF_CLEAR (1<<16)
#define MEMF_LARGEST (1<<17)

#define MEM_BLOCKSIZE 8
#define MEM_BLOCKMASK 7

#endif 
