#ifndef EXEC_MEMORY_H #define EXEC_MEMORY_H /* ** $Filename: exec/memory.h $ ** $Release: 2.04 Includes, V37.4 $ ** $Revision: 36.12 $ ** $Date: 91/03/15 $ ** ** Definitions and structures used by the memory allocation system ** ** (C) Copyright 1985-1991 Commodore-Amiga, Inc. ** All Rights Reserved */ #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; }; 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_ANY (0L) #define MEMF_PUBLIC (1L<<0) #define MEMF_CHIP (1L<<1) #define MEMF_FAST (1L<<2) #define MEMF_LOCAL (1L<<8) #define MEMF_24BITDMA (1L<<9) #define MEMF_CLEAR (1L<<16) #define MEMF_LARGEST (1L<<17) #define MEMF_REVERSE (1L<<18) #define MEMF_TOTAL (1L<<19) #define MEM_BLOCKSIZE 8L #define MEM_BLOCKMASK (MEM_BLOCKSIZE-1) #endif