home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 032.lha / include / exec / memory.g < prev    next >
Text File  |  1987-05-16  |  1KB  |  59 lines

  1. type
  2.     Node_t = unknown 14,
  3.  
  4.     MemChunk_t = struct {
  5.     *MemChunk_t mc_Next;
  6.     ulong mc_Bytes;
  7.     },
  8.  
  9.     MemHeader_t = struct {
  10.     Node_t mh_Node;
  11.     uint mh_Attributes;
  12.     *MemChunk_t mh_First;
  13.     *byte mh_Lower;
  14.     *byte mh_Upper;
  15.     ulong mh_Free;
  16.     },
  17.  
  18.     MemEntry_t = struct {
  19.     union {
  20.         ulong meu_Reqs;
  21.         *byte meu_Addr;
  22.     } me_Un;
  23.     ulong me_Length;
  24.     },
  25.  
  26.     MemList_t = struct {
  27.     Node_t ml_Node;
  28.     uint ml_NumEntries;
  29.     [1]MemEntry_t ml_ME;
  30.     };
  31.  
  32. uint
  33.     MEMF_PUBLIC     = 1 << 0,
  34.     MEMF_CHIP        = 1 << 1,
  35.     MEMF_FAST        = 1 << 2;
  36.  
  37. ulong
  38.     MEMF_CLEAR        = 1 << 16,
  39.     MEMF_LARGEST    = 1 << 17;
  40.  
  41. uint
  42.     MEM_BLOCKSIZE   = 8,
  43.     MEM_BLOCKMASK   = 7;
  44.  
  45. extern
  46.     AddMemList(ulong size, attributes; long pri; *byte base; *char name)bool,
  47.     AllocAbs(ulong byteSize, location)*byte,
  48.     Allocate(*MemHeader_t freeList; ulong byteSize)*byte,
  49.     AllocEntry(*MemList_t needed)*MemList_t,
  50.     AllocMem(ulong byteSize, requirements)*byte,
  51.     AvailMem(ulong requirements)ulong,
  52.     CopyMem(*byte source, dest; ulong size)void,
  53.     CopyMemQuick(*ulong source, dest; ulong byteSize)void,
  54.     Deallocate(*MemHeader_t freeList; *byte memoryBlock; ulong byteSize)void,
  55.     FreeEntry(*MemList_t memList)void,
  56.     FreeMem(*byte memoryBlock; ulong byteSize)void,
  57.     InitStruct(*byte initTable, memory; ulong size)void,
  58.     TypeOfMem(*byte address)uint;
  59.