home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / BC_DICE2.DMS / in.adf / INCLUDE / exec / memory.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-01-10  |  1.2 KB  |  87 lines

  1. #ifndef EXEC_MEMORY_H
  2. #define EXEC_MEMORY_H
  3. /*
  4. ** $Filename: exec/memory.h $
  5. ** $Release: 2.04 Includes, V37.4 $
  6. ** $Revision: 36.12 $
  7. ** $Date: 91/03/15 $
  8. **
  9. ** Definitions and structures used by the memory allocation system
  10. **
  11. ** (C) Copyright 1985-1991 Commodore-Amiga, Inc.
  12. ** All Rights Reserved
  13. */
  14.  
  15. #ifndef EXEC_NODES_H
  16. #include "exec/nodes.h"
  17. #endif 
  18.  
  19.  
  20.  
  21.  
  22. struct MemChunk {
  23.  struct MemChunk *mc_Next; 
  24.  ULONG mc_Bytes; 
  25. };
  26.  
  27.  
  28.  
  29.  
  30. struct MemHeader {
  31.  struct Node mh_Node;
  32.  UWORD mh_Attributes; 
  33.  struct MemChunk *mh_First; 
  34.  APTR mh_Lower; 
  35.  APTR mh_Upper; 
  36.  ULONG mh_Free; 
  37. };
  38.  
  39.  
  40.  
  41.  
  42. struct MemEntry {
  43. union {
  44.  ULONG meu_Reqs; 
  45.  APTR meu_Addr; 
  46.  } me_Un;
  47.  ULONG me_Length; 
  48. };
  49.  
  50. #define me_un me_Un 
  51. #define me_Reqs me_Un.meu_Reqs
  52. #define me_Addr me_Un.meu_Addr
  53.  
  54.  
  55.  
  56.  
  57.  
  58. struct MemList {
  59.  struct Node ml_Node;
  60.  UWORD ml_NumEntries; 
  61.  struct MemEntry ml_ME[1]; 
  62. };
  63.  
  64. #define ml_me ml_ME 
  65.  
  66.  
  67.  
  68.  
  69.  
  70. #define MEMF_ANY (0L) 
  71. #define MEMF_PUBLIC (1L<<0)
  72. #define MEMF_CHIP (1L<<1)
  73. #define MEMF_FAST (1L<<2)
  74. #define MEMF_LOCAL (1L<<8) 
  75. #define MEMF_24BITDMA (1L<<9) 
  76.  
  77. #define MEMF_CLEAR (1L<<16) 
  78. #define MEMF_LARGEST (1L<<17) 
  79. #define MEMF_REVERSE (1L<<18) 
  80. #define MEMF_TOTAL (1L<<19) 
  81.  
  82.  
  83. #define MEM_BLOCKSIZE 8L
  84. #define MEM_BLOCKMASK (MEM_BLOCKSIZE-1)
  85.  
  86. #endif 
  87.